Commit Graph

534 Commits

Author SHA1 Message Date
Robin Gareus 76f9764a44
Use central method to check for engine for processor operations 2018-11-28 00:02:57 +01:00
Robin Gareus f150f6c074
Use central method to check for engine where required
These are generally places where tracks/busses are created or port
connections change.
2018-11-28 00:01:50 +01:00
Len Ovens 9b2612f686 Make foldback bus match foldback sends namewise
to avoid confusion with listener sends or monitor bus
2018-11-12 22:30:32 -08:00
Len Ovens f27ca29d6c Changed send/deliver role "Personal" to "Foldback" so bus type can match 2018-11-12 22:30:32 -08:00
Len Ovens c04fc2efe2 Allow strips to add or remove personal sends
in processor box context menu
2018-11-01 17:43:35 -07:00
Len Ovens 06ffebca76 A listen route has no aux sends 2018-11-01 17:43:35 -07:00
Robin Gareus a79fe23935 Allow to limit strip-inline controls (GUI optimization) 2018-10-31 23:44:04 +01:00
Robin Gareus 20fb871d5a Processor-box control context menu update 2018-10-28 21:03:43 +01:00
Robin Gareus ebcabf59da Don't show hidden controls inline in the mixer-strip 2018-10-28 20:37:20 +01:00
Robin Gareus fe4df1bee3 Prevent adding aux-sends to master or monitor 2018-10-03 18:16:42 +02:00
Johannes Mueller f647ac7dae Allow plugin inline displays to shrink
Plugin inline displays were forbidden to shrink as this might cause a deadlock
when the shrinkage causes the scrollbar to disappear.

display shrink → scrollbar unneeded → scrollbar disappears →
more horizontal space -> display grows -> scrollbar appears →
less horizontal space -> display shrink and so forth

This was formerly avoided by not allowing display shrinkage.

The solution proposed here sets the maximum height of the display to the
current height, if a scrollbar is present during resizing and has not been
present during the last resizing. So if this scrollbar disappears (after
resizing it might no longer be needed), the display would have the possibility
to grow, but it does not grow vertically as the maximum height is limited to
the current height.
2018-06-20 21:06:16 +02:00
Robin Gareus dc88471695 Don't automatically open plugin-GUI if there are no controls 2018-01-30 12:40:22 +01:00
Robin Gareus 4c7664e3f8 Fix UI for Sends & Inserts (regression was in 0c59ba649e) 2017-12-16 16:53:05 +01:00
Robin Gareus 0c59ba649e Save <UI> state for plugins only.
Only PluginInserts have UIs and PinMgs and unique IDs.
Other processors  may not be saved explicitly, [re-]created
dynamically, change ID (eg. capturing processor) and clutter up
the list.

TODO: removing a processor should also remove its UI state.
2017-10-18 04:15:15 +02:00
Paul Davis 30b087ab3d globally change all use of "frame" to refer to audio into "sample".
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
2017-09-18 12:39:17 -04:00
Paul Davis a2fefe68db use modified API name in GUI 2017-09-18 11:40:53 -04:00
Paul Davis e6064b286e basic GUI framework for setting Disk I/O options 2017-09-18 11:40:53 -04:00
Robin Gareus ae0dcdc0c5 Fix various tooltip markup (ampersand) entity-escape:
* track/port names
* plugin-names
* MIDI patch-names
2017-09-14 19:23:37 +02:00
Robin Gareus 0034f246cb Fix some GUI side XML node mem-leaks 2017-08-20 22:26:54 +02:00
Robin Gareus 2cc32456ab Lua may call C++ functions with throw. Catch them 2017-08-19 01:06:44 +02:00
Johannes Mueller 4a60c277db Some abstractions to make the display look good in the plugin gui 2017-07-31 21:31:22 +02:00
Johannes Mueller 37b03e353a Put plugin inline display into a freely available class ...
... and let ProcessorBox::PluginInlineDisplay inherit from it.
2017-07-31 21:31:22 +02:00
Robin Gareus fde0e293a3 Remove unused "mark" parameter from stop_touch() API 2017-07-24 01:59:18 +02:00
Robin Gareus 25df9f1ba5 Start/end touch for generic-UI knob and proc-box inline ctrls 2017-07-24 01:59:03 +02:00
Robin Gareus 601c317d70 Clean up library inheritance (colors.h, utils.h)
make libwidget independent of libcanvas.
Confine basics to pbd and gtkmm2ext.
2017-07-17 21:06:04 +02:00
Robin Gareus 1f5ebc5485 Remove ArdourPrompter wrapper 2017-07-17 21:06:04 +02:00
Robin Gareus f9e5e4360e Move more Gtkmm2ext widgets into libwidget 2017-07-17 21:06:04 +02:00
Robin Gareus 5c92613698 Separate Ardour UI widgets into dedicated library 2017-07-17 21:06:04 +02:00
Robin Gareus 5aecfc5acb Remove Timers to watch Controllable values
Depend on Changed() signals alone, which are usually much less frequent
than rapid-timer events.

As side-effect we now need to make the widgets insensitive when
playing automation. Previously the user could not change the value because
the Timer periodically reset it.
2017-07-16 16:58:00 +02:00
Robin Gareus 7bb48aaa3f Remove cruft, steps cannot be 0. 2017-07-06 16:39:28 +02:00
Robin Gareus 608f99ad1c Fix a plugin-insert position off-by-one and remove cruft.
Route::before_processor_for_index() uses display_to_user() which
includes the Amp.

Insert position is still be wrong with the debug mode
ProcessorBox::show_all_processors == true, but that's not a regression.
2017-07-04 18:08:36 +02:00
Robin Gareus 2fdeb54b78 Always add plugins in the order given by the Manager UI. 2017-07-04 18:08:36 +02:00
Robin Gareus e2d19d1668 Retain plugins order for copy/cut/paste + DnD #7416 2017-07-04 18:08:36 +02:00
Robin Gareus 496f83bf83 Allow ctrl-surfaces to show/hide plugin UIs. 2017-07-02 01:59:24 +02:00
Robin Gareus 3c6ab7aca3 Remove old API to keep track of plugin GUI widgets
This was superseded by WindowProxy and the ARDOUR::Processor
[set_]window_proxy() API
2017-07-01 23:41:25 +02:00
Thomas Brand 63ea7b6516 NO-OP whitespace (updated GH PR #357) 2017-07-01 19:28:26 +02:00
Robin Gareus c3c4efaa09 Use mnemonic-save API for menu-element texts 2017-06-29 00:22:42 +02:00
Robin Gareus 55df5b39bc Prepare removal of redundant get_user/set_user API. 2017-06-21 18:13:41 +02:00
Robin Gareus 789fcff1fe Fix crash when showing plugin-UI in safe-mode 2017-06-08 21:21:41 +02:00
Paul Davis dc0139d4af use CoreSelection for track selection 2017-05-05 18:56:25 +01:00
Tim Mayberry 5b97b1a191 Use XMLNode::get/set_property API in ProcessorBox and ProcessorWindowProxy classes 2017-04-19 09:36:56 +10:00
Tim Mayberry 657e32290e Use XMLNode::get/set_property API in ProcessorBox class 2017-04-19 09:36:56 +10:00
Robin Gareus a8858ad311 Fix toggle-processors: operate on plugins only 2017-04-14 00:53:45 +02:00
Robin Gareus 962e7a214a Revert "consistent use of context-menu popups"
This reverts commit b3722f7063.

In some cases ardour shows context-menu on right-mouse-button
release. In this case selecting a menu-entry should happen
with the left-mouse button (or any button?!)

Using ev->button is only correct if the menu is temporary and only
visible while the button is held, button release then activates the
menu-item.

This needs further work, in some cases allowing any button (0) to work
makes sense and overall consistency needs to be improved.
Different places use different strategies for context-menus which
don't always match the button used in the event-handler.

This is a hotfix (to make TAV context menus work again with left-click)
2017-03-24 14:48:46 +01:00
Robin Gareus b3722f7063 consistent use of context-menu popups 2017-03-16 02:36:48 +01:00
Robin Gareus 96b3f8ec92 Don't automatically open generic UIs for plugins w/o controls 2017-03-01 17:17:27 +01:00
Robin Gareus 7330357e1c Reset window-size when switching between custom and generic plugin UI.
Both views have uncorrelated geometry, apply one size to the other
makes no sense and usually results in odd window sizes, particularly
for custom plugin UIs with aspect-ratio constraints.
2017-02-14 01:05:43 +01:00
Robin Gareus c6a7c9417e Plug some mixer memory leaks 2017-01-20 13:53:45 +01:00
Robin Gareus e07f465516 fix default output map display for no plugin processors
(eg. mono->stereo deliveries)
2016-11-25 13:03:25 +01:00
Robin Gareus e6ff4d8455 Add tooltip info for inline-display 2016-10-18 23:40:14 +02:00
Robin Gareus 389cacab11 Processor box interaction:
Allow to toggle inline display with tertiary + double-click.
also fix tooltip and fix inconsistent modifiers on inline display.
2016-10-18 22:26:23 +02:00
Robin Gareus a4ad0a90d1 GUI to allow aux-send feedback loops 2016-10-14 16:07:30 +02:00
Paul Davis b339cde446 remove debug output from last commit 2016-08-21 21:44:33 -04:00
Paul Davis ed5091d7ae editing plugin with generic GUI has a tooltip saying it uses the primary modifier. Make it so 2016-08-21 21:42:16 -04:00
Robin Gareus ba815a903b add a ToDo note for after string-freeze 2016-07-24 13:33:09 +02:00
Robin Gareus 901f8caf22 add a plugin-death connection
at application exit, there may otherwise be a race condition,
queue draw could be scheduled for a widget that's no longer present.
2016-07-18 23:52:40 +02:00
Robin Gareus a450024c56 add some strategic lua gc steps. 2016-07-18 23:52:40 +02:00
Julien "_FrnchFrgg_" RIVAUD 786cb746d0 Better choice for ports on external send creation
Ardour tried to make an educated guess at the initial number of outputs
for a new send. It used the channel configuration of the master bus, if
it existed, else the channel configuration of the route itself.

That guess is good in most cases, but in the case of a track/bus without
audio channels, creating a send with audio doesn't make sense. In that
case, also use the route outputs as a base for the send configuration.
2016-07-16 02:29:58 +02:00
Paul Davis cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
Robin Gareus c49ac91b01 add mouse interaction to inline display 2016-07-12 14:38:28 +02:00
Robin Gareus 412fcafda0 Plugin GUI activate/enable update (prefer enable) 2016-07-05 23:30:21 +02:00
Robin Gareus 08d7485e85 fix inline display when cairo_surface_has_snapshots 2016-07-02 23:36:34 +02:00
Robin Gareus 843b6b90b0 fix switching from generic to custom plugin UI 2016-06-05 23:55:08 +02:00
Paul Davis 301000c94e make new action to bind BackSpace to in processors box 2016-06-02 14:46:35 -04:00
Robin Gareus cfee8ac852 fix UI wire display to not coalesce views for non-linear i/o. 2016-05-24 18:18:26 +02:00
Robin Gareus 725665ac46 lua inline display error reporting 2016-05-20 23:15:58 +02:00
Robin Gareus f108664785 remove wrongly copy/pasted code 2016-05-10 20:54:11 +02:00
Robin Gareus b15ed28f79 separate Preset + Favorite DnD Targets
Sidebar is a source of "Favorites" and a destination for Presets.
2016-05-06 14:55:36 +02:00
Paul Davis 17ace643e4 OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one) 2016-05-04 23:09:45 -04:00
Robin Gareus a725fde23d enable luaproc presets 2016-04-29 18:34:41 +02:00
Robin Gareus 1888104f8d remove "Lua DSP Proc" context meuu 2016-04-29 02:57:51 +02:00
Robin Gareus 62937ea1a6 special case send panning for MB
since the route does not use Ardour pannersi"link panners" here only
affects send <> send linking.
2016-04-20 21:28:03 +02:00
Robin Gareus 0b4b0b19bc don't show plugin GUI when renaming tracks/busses
ProcessorBox::route_property_changed() iterates over existing windows
and hit a "show_all".
2016-04-19 18:24:35 +02:00
Robin Gareus c9dedc567d fix midi-bypass drawing. 2016-04-19 17:31:00 +02:00
Robin Gareus af733a9a65 small is beautiful
...but I need new glasses
to tweak thru-via drawing for <=100% GUI scaling
2016-04-19 13:31:41 +02:00
Robin Gareus 98ab33e85e more wire drawing..
* use via-style circles for thru
* widen the spacing
* show gnd -> thru connections
2016-04-19 13:21:09 +02:00
Robin Gareus dd750722c5 more sidechain send GUI details:
* don't list exising normal sends (separate mono connections)
* tooltip inidicate autoremoval
2016-04-18 01:01:49 +02:00
Robin Gareus d3acba6be4 fix initial panner control for new Sends 2016-04-18 00:52:24 +02:00
Robin Gareus 64fdadecb6 fix port icon visibility for coalesced wire view 2016-04-17 21:50:29 +02:00
Robin Gareus ccbf56827d pretty send and sidechain names 2016-04-17 21:50:26 +02:00
Robin Gareus 8fc19d6c67 use temporary sends for sidechain inputs 2016-04-17 14:10:13 +02:00
Robin Gareus ddc4824d92 fix logic error for output routing wire display 2016-04-16 22:15:34 +02:00
Robin Gareus 9ad98885cb another take on mixer strip wire drawing
mini modulars are fun.
2016-04-16 21:28:37 +02:00
Robin Gareus ec09c1ad63 shorten and clarify context-menu entry. 2016-04-15 23:09:14 +02:00
Robin Gareus 7cbf7f370b special case side-chain when copying plugin-state (fix crash, dup IO) 2016-04-13 18:53:54 +02:00
Robin Gareus da6aae826d somewhat improved "thru" and sidechain routing display 2016-04-12 18:38:28 +02:00
Robin Gareus 1bf84f3ca3 fix editor/mixer initial display (show_all) 2016-04-09 00:33:56 +02:00
Robin Gareus 8c81808db7 GUI part of count/n_total API rename 2016-04-08 18:16:23 +02:00
Robin Gareus 3868c5b4a4 GUI support for plugin port bypass connections 2016-04-07 18:36:04 +02:00
Robin Gareus ffbcd9d9ec lexical NO-OP 2016-04-04 15:14:41 +02:00
Robin Gareus 90c8fdb12f mixer-strip wires: take midi-bypass/trhu into account 2016-04-04 14:58:46 +02:00
Robin Gareus e087237f3c s/Management/Connections/ 2016-04-04 13:56:34 +02:00
Robin Gareus 1feb50b2b2 Display output mapping (last processor before pan) in mixerstrip 2016-04-04 01:27:33 +02:00
Robin Gareus 4cedc07b3e add GUI to configure/connect sidechain 2016-04-03 05:21:40 +02:00
Robin Gareus f827168b67 update mixer-strip display - indicate sidechain 2016-04-03 05:16:59 +02:00
Robin Gareus d1580ba924 update mixer-strip routing display 2016-04-02 14:51:32 +02:00
Robin Gareus c44fb3e662 fix some thinkos with audio/midi port counting.
(there's more to come w/multiple midi ports grouped left)
2016-04-02 03:20:43 +02:00
Robin Gareus fa79e9a616 interactive GUI to manage plugins pins 2016-04-01 22:57:56 +02:00
Robin Gareus ee4e3e7737 update mixer-strip routing display 2016-03-31 20:44:39 +02:00
Robin Gareus 8acf782bd2 reduce header dependencies (part 2/2) 2016-03-28 19:14:56 +02:00
Robin Gareus 840c0599bf fix empty plugin window when switching generic to custom and back.
possibly since 0106047fd2 - show_all() was removed from show_own_window()
2016-03-27 21:40:57 +02:00
Robin Gareus 62d2d22b44 get started with Pin Manager - currently display-only. 2016-03-27 21:35:42 +02:00
Robin Gareus a8943538ea Hide lua script selector before showing lua parameter dialog. 2016-03-23 17:00:10 +01:00
Robin Gareus ea354226c1 catch lua exceptions. 2016-03-21 21:39:11 +01:00
Robin Gareus 877325ea6e special case LuaProc Inline Display UI: direct cairo context 2016-03-18 21:33:45 +01:00
Paul Davis c07bca3a62 fix capitalization of sections of key editor 2016-03-15 21:25:07 -04:00
Robin Gareus fed51adfa0 relax inline display height constraint 2016-03-16 01:24:32 +01:00
Paul Davis 09e193c097 give ProcessorBox its own bindings 2016-03-15 12:41:22 -04:00
Paul Davis 7460bbefb6 after showing a ProcessorBox context menu, resensitize all actions that it may have made insensitive
This allows them to be invoked via other means (e.g. bindings)
2016-03-15 12:41:21 -04:00
Robin Gareus 204e50bf89 migrate plugin-ui settings to ui-config 2016-03-15 15:15:23 +01:00
Robin Gareus c8d25f37bc remove superfluous ceil() 2016-03-15 11:55:44 +01:00
Robin Gareus 76df2d6e36 fix a Wsign-compare 2016-03-15 00:27:13 +01:00
Robin Gareus cb4f15ff43 implementation for "prefer inline over GUI" 2016-03-15 00:27:03 +01:00
Robin Gareus 7539bab670 inline-display, scrollbars and fixed aspect ratio = fun 2016-03-14 22:32:21 +01:00
Robin Gareus 594d0d8672 GUI update for non-cairo Plugin Inline Display 2016-03-14 16:45:27 +01:00
Robin Gareus 9af5d17708 add GUI support for Plugin Mixer Inline Display 2016-03-14 11:48:22 +01:00
Robin Gareus db333a1eed allow to copy processor state (drag processor on another of same type) 2016-03-11 22:00:12 +01:00
Robin Gareus 28017b4751 Add GUI to instantiate Lua DSP Processors 2016-02-23 15:41:41 +01:00
Paul Davis 56770ff0af change GTKOSX macro constant to use __APPLE__ instead 2016-02-22 15:31:25 -05:00
Paul Davis 6991a07902 remove all trace of SAE from source code.
This had become incoherent over time, and posed a development hazard and burden going forward
2016-02-22 15:31:24 -05:00
Paul Davis bc487bb4b0 replicate the remove-all-trailing whitespace commit(s) in master 2016-02-22 15:31:24 -05:00
Paul Davis 09f9020897 action maps now have names 2016-02-22 15:31:24 -05:00
Paul Davis f6721344bd merge once again with master 2016-02-22 15:31:24 -05:00
Paul Davis 949163f806 more changes to Bindings, Keyboard APIs 2016-02-22 15:31:24 -05:00
Paul Davis 67e19c177f radically change Keyboard/Binding API design to disconnect Gtk::Action lookup from binding definition
We need this because we need binding information/objects before all
Actions have been defined.
2016-02-22 15:31:24 -05:00
Paul Davis 00933950b7 small rationalization of naming and code for managing plugin GUI visibility 2016-02-22 15:31:23 -05:00
Paul Davis a13a8da8ac switch all action registration/binding code over to new API.
This removes the ability to change bindings via menus.

Still to come: saving modified bindings, and reworking the key editor
2016-02-22 15:31:23 -05:00
Paul Davis 9010262bed first compilable version of tabbable design.
I would have loved to split this apart, but there are just so many interrelated changes,
it makes little sense and would be a huge effort that would break future git bisect
use because so many intermediate commits would not compile
2016-02-22 15:31:21 -05:00
Paul Davis d1033819bd change ownership of the AutomationControl used by Amp.
It used to be owned by Amp. Now it is owned by Amp's owner
2016-01-18 12:11:08 -05:00
Paul Davis 9e3299f97d change Controllable::set_value() API to include grouped control consideration.
This also removes Route::group_gain_control() and associated machinery.
Not yet tested with Mackie or other surfaces. More work to done to
start using the group capabilities, and also potentially to add
or derive more controls as RouteAutomationControls
2016-01-02 04:58:30 -05:00
Robin Gareus 38f199e355 Processors: separate drag-sources and drop-targets 2016-01-01 13:28:47 +01:00
Robin Gareus bcaae13e3e set DnD targets per processor
This prevents DnD of non-processors to the sidebar
2015-12-30 12:25:09 +01:00
Robin Gareus 9283e97435 refine add preset/favorite dialog
dedicated "Add to Favorites only" mode.
2015-12-28 17:23:45 +01:00
Robin Gareus 4758de37cd allow creating plugin-presets by dragging a plugin to the sidebar 2015-12-28 04:11:45 +01:00
Robin Gareus e762fe36be refactor Processor-Box plugin drag/drop: allow presets 2015-12-25 17:13:00 +01:00
Robin Gareus 80028d7c82 don't automatically open plugin-GUI when using drag/drop 2015-12-24 01:45:16 +01:00
Robin Gareus a7b236561c ProcessorBox: allow to receive PluginInfoPtr drops 2015-12-22 04:24:20 +01:00
Robin Gareus d5c275e78e update ProcessorBox API for new DnDVbox constructor. 2015-12-22 04:15:04 +01:00
Robin Gareus 0d9f15dd80 GUI part of monitor-section constraints. 2015-12-21 14:38:28 +01:00
Robin Gareus 4dca26a6e7 use new open-gui-after-adding-plugin config variable 2015-12-08 13:44:20 +01:00
Ben Loftis 602839ffea use platform-specific modifier name for tooltip 2015-11-20 15:24:47 -06:00
Robin Gareus 7923a0e679 immediately show plugin GUI if only one plugin is instantiated 2015-11-20 11:14:36 +01:00
André Nusser 83b5bdbe95 Ctrl+shift functionality (toggle all) for plugin leds.
The Fader led has special behavior and is only toggled when clicked
explicitly.
2015-10-19 14:36:06 -04:00
Robin Gareus 696b89b71a rework 8b80fe0, use std::string, not char* 2015-10-15 11:24:15 +02:00
Robin Gareus 22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
Paul Davis 4dc63966f0 globally remove all trailing whitespace from ardour code base.
Paul Davis was responsible for introducing almost all of this.
2015-10-04 14:51:05 -04:00
Robin Gareus d25e1cb635 add a hidden option to show hidden processors
simplify debugging solo, monitor-processors, etc
2015-10-04 19:40:46 +02:00
Robin Gareus cba31db6fe processor-box: explicitly check for "Amp" (Fader) 2015-09-21 13:14:29 +02:00
Tim Mayberry 1d42ed077e Use ARDOUR_UI_UTILS::set_tooltip rather than via ARDOUR_UI::set_tip
This removes the direct dependence on ARDOUR_UI/Gtk_UI for setting
tooltips. Removes inclusion of ardour_ui.h from 16 files.
2015-09-16 16:55:17 -04:00
Tim Mayberry 6b019a4953 Move UIConfiguration Singleton into UIConfiguration header
This removes the direct dependence on ardour_ui.h from 39 files
2015-09-16 16:55:17 -04:00