Commit Graph

493 Commits

Author SHA1 Message Date
657e32290e Use XMLNode::get/set_property API in ProcessorBox class 2017-04-19 09:36:56 +10:00
a8858ad311 Fix toggle-processors: operate on plugins only 2017-04-14 00:53:45 +02:00
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
b3722f7063 consistent use of context-menu popups 2017-03-16 02:36:48 +01:00
96b3f8ec92 Don't automatically open generic UIs for plugins w/o controls 2017-03-01 17:17:27 +01:00
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
c6a7c9417e Plug some mixer memory leaks 2017-01-20 13:53:45 +01:00
e07f465516 fix default output map display for no plugin processors
(eg. mono->stereo deliveries)
2016-11-25 13:03:25 +01:00
e6ff4d8455 Add tooltip info for inline-display 2016-10-18 23:40:14 +02:00
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
a4ad0a90d1 GUI to allow aux-send feedback loops 2016-10-14 16:07:30 +02:00
b339cde446 remove debug output from last commit 2016-08-21 21:44:33 -04:00
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
ba815a903b add a ToDo note for after string-freeze 2016-07-24 13:33:09 +02:00
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
a450024c56 add some strategic lua gc steps. 2016-07-18 23:52:40 +02:00
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
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
c49ac91b01 add mouse interaction to inline display 2016-07-12 14:38:28 +02:00
412fcafda0 Plugin GUI activate/enable update (prefer enable) 2016-07-05 23:30:21 +02:00
08d7485e85 fix inline display when cairo_surface_has_snapshots 2016-07-02 23:36:34 +02:00
843b6b90b0 fix switching from generic to custom plugin UI 2016-06-05 23:55:08 +02:00
301000c94e make new action to bind BackSpace to in processors box 2016-06-02 14:46:35 -04:00
cfee8ac852 fix UI wire display to not coalesce views for non-linear i/o. 2016-05-24 18:18:26 +02:00
725665ac46 lua inline display error reporting 2016-05-20 23:15:58 +02:00
f108664785 remove wrongly copy/pasted code 2016-05-10 20:54:11 +02:00
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
17ace643e4 OMNIBUS COMMIT: prefer const XMLNode::property method (and provide a real one) 2016-05-04 23:09:45 -04:00
a725fde23d enable luaproc presets 2016-04-29 18:34:41 +02:00
1888104f8d remove "Lua DSP Proc" context meuu 2016-04-29 02:57:51 +02:00
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
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
c9dedc567d fix midi-bypass drawing. 2016-04-19 17:31:00 +02:00
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
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
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
d3acba6be4 fix initial panner control for new Sends 2016-04-18 00:52:24 +02:00
64fdadecb6 fix port icon visibility for coalesced wire view 2016-04-17 21:50:29 +02:00
ccbf56827d pretty send and sidechain names 2016-04-17 21:50:26 +02:00
8fc19d6c67 use temporary sends for sidechain inputs 2016-04-17 14:10:13 +02:00
ddc4824d92 fix logic error for output routing wire display 2016-04-16 22:15:34 +02:00
9ad98885cb another take on mixer strip wire drawing
mini modulars are fun.
2016-04-16 21:28:37 +02:00
ec09c1ad63 shorten and clarify context-menu entry. 2016-04-15 23:09:14 +02:00
7cbf7f370b special case side-chain when copying plugin-state (fix crash, dup IO) 2016-04-13 18:53:54 +02:00
da6aae826d somewhat improved "thru" and sidechain routing display 2016-04-12 18:38:28 +02:00
1bf84f3ca3 fix editor/mixer initial display (show_all) 2016-04-09 00:33:56 +02:00
8c81808db7 GUI part of count/n_total API rename 2016-04-08 18:16:23 +02:00
3868c5b4a4 GUI support for plugin port bypass connections 2016-04-07 18:36:04 +02:00
ffbcd9d9ec lexical NO-OP 2016-04-04 15:14:41 +02:00
90c8fdb12f mixer-strip wires: take midi-bypass/trhu into account 2016-04-04 14:58:46 +02:00
e087237f3c s/Management/Connections/ 2016-04-04 13:56:34 +02:00
1feb50b2b2 Display output mapping (last processor before pan) in mixerstrip 2016-04-04 01:27:33 +02:00
4cedc07b3e add GUI to configure/connect sidechain 2016-04-03 05:21:40 +02:00
f827168b67 update mixer-strip display - indicate sidechain 2016-04-03 05:16:59 +02:00
d1580ba924 update mixer-strip routing display 2016-04-02 14:51:32 +02:00
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
fa79e9a616 interactive GUI to manage plugins pins 2016-04-01 22:57:56 +02:00
ee4e3e7737 update mixer-strip routing display 2016-03-31 20:44:39 +02:00
8acf782bd2 reduce header dependencies (part 2/2) 2016-03-28 19:14:56 +02:00
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
62d2d22b44 get started with Pin Manager - currently display-only. 2016-03-27 21:35:42 +02:00
a8943538ea Hide lua script selector before showing lua parameter dialog. 2016-03-23 17:00:10 +01:00
ea354226c1 catch lua exceptions. 2016-03-21 21:39:11 +01:00
877325ea6e special case LuaProc Inline Display UI: direct cairo context 2016-03-18 21:33:45 +01:00
c07bca3a62 fix capitalization of sections of key editor 2016-03-15 21:25:07 -04:00
fed51adfa0 relax inline display height constraint 2016-03-16 01:24:32 +01:00
09e193c097 give ProcessorBox its own bindings 2016-03-15 12:41:22 -04:00
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
204e50bf89 migrate plugin-ui settings to ui-config 2016-03-15 15:15:23 +01:00
c8d25f37bc remove superfluous ceil() 2016-03-15 11:55:44 +01:00
76df2d6e36 fix a Wsign-compare 2016-03-15 00:27:13 +01:00
cb4f15ff43 implementation for "prefer inline over GUI" 2016-03-15 00:27:03 +01:00
7539bab670 inline-display, scrollbars and fixed aspect ratio = fun 2016-03-14 22:32:21 +01:00
594d0d8672 GUI update for non-cairo Plugin Inline Display 2016-03-14 16:45:27 +01:00
9af5d17708 add GUI support for Plugin Mixer Inline Display 2016-03-14 11:48:22 +01:00
db333a1eed allow to copy processor state (drag processor on another of same type) 2016-03-11 22:00:12 +01:00
28017b4751 Add GUI to instantiate Lua DSP Processors 2016-02-23 15:41:41 +01:00
56770ff0af change GTKOSX macro constant to use __APPLE__ instead 2016-02-22 15:31:25 -05:00
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
bc487bb4b0 replicate the remove-all-trailing whitespace commit(s) in master 2016-02-22 15:31:24 -05:00
09f9020897 action maps now have names 2016-02-22 15:31:24 -05:00
f6721344bd merge once again with master 2016-02-22 15:31:24 -05:00
949163f806 more changes to Bindings, Keyboard APIs 2016-02-22 15:31:24 -05:00
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
00933950b7 small rationalization of naming and code for managing plugin GUI visibility 2016-02-22 15:31:23 -05:00
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
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
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
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
38f199e355 Processors: separate drag-sources and drop-targets 2016-01-01 13:28:47 +01:00
bcaae13e3e set DnD targets per processor
This prevents DnD of non-processors to the sidebar
2015-12-30 12:25:09 +01:00
9283e97435 refine add preset/favorite dialog
dedicated "Add to Favorites only" mode.
2015-12-28 17:23:45 +01:00
4758de37cd allow creating plugin-presets by dragging a plugin to the sidebar 2015-12-28 04:11:45 +01:00
e762fe36be refactor Processor-Box plugin drag/drop: allow presets 2015-12-25 17:13:00 +01:00
80028d7c82 don't automatically open plugin-GUI when using drag/drop 2015-12-24 01:45:16 +01:00
a7b236561c ProcessorBox: allow to receive PluginInfoPtr drops 2015-12-22 04:24:20 +01:00
d5c275e78e update ProcessorBox API for new DnDVbox constructor. 2015-12-22 04:15:04 +01:00
0d9f15dd80 GUI part of monitor-section constraints. 2015-12-21 14:38:28 +01:00
4dca26a6e7 use new open-gui-after-adding-plugin config variable 2015-12-08 13:44:20 +01:00
602839ffea use platform-specific modifier name for tooltip 2015-11-20 15:24:47 -06:00
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
696b89b71a rework 8b80fe0, use std::string, not char* 2015-10-15 11:24:15 +02:00
22b07e0233 NOOP, remove trailing tabs/whitespace. 2015-10-05 16:17:49 +02:00
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
d25e1cb635 add a hidden option to show hidden processors
simplify debugging solo, monitor-processors, etc
2015-10-04 19:40:46 +02:00
cba31db6fe processor-box: explicitly check for "Amp" (Fader) 2015-09-21 13:14:29 +02:00
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
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
45d487f16e Move ARDOUR_UI::ui_scale into UIConfiguration class 2015-09-16 16:55:17 -04:00
53d51ac406 fix processor paste location - fixes #6536 2015-08-25 01:09:41 +02:00
11f51497f3 provisional processor control-box tweaks - possible fix for #6519
ControlBoxes are created/destroyed regularly (plugin re-order,
track selection -> Editor Mixer,...).

Properly disconnect the timer signal in the dtor and skip updateing the
tooltip unnecessarily (duplicate calls, Changed & Timer).

This should really be undone, the timer needs to be removed and Changed() used throughout.
2015-08-19 14:27:14 +02:00
9f3bf09a7c rework processor box: handle n/a plugins 2015-08-16 00:03:39 +02:00
eddf50185b prepare UI for missing plugins 2015-08-15 23:29:53 +02:00
29b06768d5 handle some wire edge-cases & explanation 2015-08-09 08:37:28 +02:00
2e8e23fac3 update routing wires display 2015-08-04 18:42:27 +02:00
a021da9a9d oops. 2015-07-29 03:34:27 +02:00
36f6aa9356 work-around OSX loadlocale thread safety.
This is not a real fix; just a stop-gap for the worst offender.

iostream on OSX is not thread safe.
Sadly no crash report so far managed to catch the 2nd thread in action.
looks like the GUI thread is preempted, 2nd thread succeeds, and the 
crash occurs later).

see also https://discussions.apple.com/thread/3479591

crash in
   s << c->internal_to_user (c->get_value ());

ardour-4.1.335(5000,0x7fff777f5300) malloc: *** error for object 0x7fe2f3e06170: pointer being freed was not allocated
1   libsystem_c.dylib       abort + 129
2   libsystem_malloc.dylib  free + 428
3   libsystem_c.dylib       __numeric_load_locale + 544
4   libsystem_c.dylib       loadlocale + 216
5   libstdc++.6.dylib       std::__convert_from_v(int* const&, char*, int, char const*, ...) + 193
6   libstdc++.6.dylib       std::ostreambuf_iterator<char, std::char_traits<char> > std::num_put<char, std::ostreambuf_iterator<char, std::char_traits<char> > >::_M_insert_float<double>(std::ostreambuf_iterator<char, std::char_traits<char> >, std::ios_base&, char, char, double) const + 193
7   libstdc++.6.dylib       std::ostream& std::ostream::_M_insert<double>(double) + 221
8   ardour-4.1.335          ProcessorEntry::Control::set_tooltip() + 854 (processor_box.cc:578)
9   ardour-4.1.335          ProcessorEntry::Control::control_changed() + 446 (processor_box.cc:637)
10  ibpbd.dylib             PBD::StandardTimer::on_elapsed()
2015-07-28 20:54:43 +02:00
4c608b6e04 assign new IDs to plugin copies on paste.
when copying a plugin the state is transferred by serializing
XML and setting state from XML. This state includes the unique ID.

This ID needs to be identical at first in order to load
the state from <session-dir>/plugins/<ID>/*
2015-07-10 22:09:18 +02:00
03248249c8 remove LED from custom meter point processors
... since they can't be disabled. fixes 6333
2015-05-18 16:30:02 +02:00
8b5474b9e1 For MSVC builds, implement 'rint()' and 'rintf()' to supplement the ones that were already implemented 2015-04-24 19:11:10 +01:00
b38ab89d92 clean up GUI scaling 2015-04-22 21:40:43 +02:00
add248f0cb scale inline slider girth. 2015-04-22 21:40:42 +02:00
8731f9ed8f scaleable routing icons & wires 2015-04-22 21:40:42 +02:00
aab777b490 add braces 2015-04-13 22:25:55 -04:00
9f25af7eec processor control: update control-element tooltip 2015-03-29 17:11:08 +02:00
b34f26a7d0 retain Send control visibility state, fixes #6210 2015-03-25 11:10:58 +01:00
b1f9b644fc desensitize redirect-menu Send and Control items when they are not applicable 2015-02-11 11:13:24 -06:00
b5c9a92a58 Move Timers/Timeouts from ARDOUR_UI into functions in timers.h and use PBD::Timers 2015-01-01 19:04:14 +07:00
52d97c8cfb update interface for processor-box faders step/page
see also 4d4c20b8c
2014-12-01 00:33:11 +01:00
58663db374 change ownership of processor window-proxy
fixes crashes:
* If the Editor-Mixer shows a channel with a plugin that
has been edited in the Mixer, double-clicking the plugin 
will try to bring up a 2nd instance of the plugin-UI.
* When closing Ardour both the Mixer and the Editor-Mixer try to delete the underlying plugin, resulting in a double free.
2014-11-29 10:06:25 +01:00
ea5876b836 Remove dead code. 2014-11-25 02:11:44 -05:00
049c11de58 Slider Controller API Change
Prepare to allow BarController (with Spinbutton) to translate
internal/interface values for the SpinBox.

(The change is irrelevant for the fader/slider itself which
always use the [user-]interface value)
2014-11-01 18:22:29 +01:00
52f44dc4da convert interface <> internal values for all automation
fixes Send-Fader, Gain-Automation and various Plugin-Slider ranges
2014-11-01 07:27:35 +01:00
aac3ca5521 initialize some uninitialized vars - closes #5974 2014-10-08 19:16:21 +02:00
ceff2e3a62 plugin widgets were written to use Internal values, so use that for now 2014-09-18 17:25:11 -05:00
a07dc44b4d remove pixel based Button LED diameter setting
Diameter is calculated depending on font-scaling.
Besides, all explicit calls simply set the default
value, anyway. If some API is needed in the future,
it should set the diameter in [em].
2014-09-06 02:08:59 +02:00
540a12119b prepare Slider API cleanup 2014-09-02 02:53:05 +02:00
39e2223fee yet another ArdourButton action tweak 2014-08-28 15:29:18 -05:00
7306568634 More fixes to ArdourButton actions.
Optionally allow events to fallthrough to parents, in particular for the DnDVBox case.
Also allow the number_label to operate as a track selector.
2014-08-28 14:25:19 -05:00
df2a8fccc7 disallow selection of the fader and meter processor entries 2014-07-28 10:08:26 -05:00
96171ebe83 several fixes to make processor selection and deletion feel right, for both mixer and editor-mixer strips 2014-07-24 22:49:47 -05:00
6bdc976462 Remove "implicit" selection for plugin deletion.
Allow deletions in the mixer strip to fall through to editor if nothing was selected.
2014-07-24 22:49:47 -05:00
a3c378cf62 move utility functions into a dedicated namespace 2014-06-25 21:47:54 +02:00
f6aaa1660b en/disable internal send+returns with tracks en/disable. 2014-06-23 00:48:47 +02:00
bef4483611 Use round() instead of rintf() when building with MSVC 2014-01-30 18:37:36 +00:00
e0b2764b91 Oops - the previous namespace qualifier was also needed in gtk2_ardour/processor_box.cc 2014-01-30 18:28:12 +00:00
2ba58dfe65 Merge branch 'master' into cairocanvas 2014-01-29 16:08:52 -05:00
249ee47296 fix routing display for mono synths and midi-tracks w/o synth 2014-01-26 01:21:28 +01:00
cf806123ca merge (with conflict fixes) with master (even against rgareus' recommendation) 2014-01-14 10:56:17 -05:00