13
0
Commit Graph

202 Commits

Author SHA1 Message Date
07fa803aa1 fix a-eq grid layout 2016-08-26 01:10:38 +02:00
2e7e2d2658 Fix astate setting for combo parameters when setting all astate
Don't try to be smart when chosing which parameters need their
automation updated but rather trust the list that was populated at
creation time when all relevant information had been gathered.
2016-08-25 19:23:49 +02:00
cbc5ec764f fix generic GUI layout for no-control UIs 2016-08-24 03:18:28 +02:00
fcadcac7e7 Make knobs size requests dynamic
At the point of creation, the automate_button size request is wrong
since it has not the correct style yet. Instead of trying ugly hacks to
fix that, connect to the knob's size_request signal and get the button's
requisition only when needed. If the system font changes to one that has
different extents (even if the point size is the same), the UI will thus
correctly update.
2016-08-20 18:12:49 +02:00
aed07c4998 Do not constrain vertical size without need
A value of -1 means "let the widget use its natural size in that
direction".
2016-08-20 18:12:07 +02:00
ed723ca2c3 Use ArdourButton::Square mode instead of ad-hoc sizing 2016-08-20 18:11:13 +02:00
00e081024b Use set_sizing_text in generic plugin ui 2016-08-20 16:05:18 +02:00
5cc97f55f2 Avoid CamelCase in color names 2016-08-19 14:57:07 +02:00
d599be115d Make automation state buttons active when not on Manual
With the same color code as the fader automation button on mixer strips.
This is especially usefull when use_knob is true (e.g. for a-EQ) because
the automation only shows one letter and a "Write" state can thus be
easy to miss.
2016-08-19 02:53:39 +02:00
606ffe6a35 Align the currently selected automation state on dropdown
By passing the current text of the automation button we can make the
dropdown menu align with the current mode. This will only work for
full-size automation buttons, not when use-knob is true, but in that
case it feels wrong to popup on top of the button anyway.

Also make the menu show on mouse down like a real dropdown.
2016-08-17 23:56:31 +02:00
6a985df81e Replace positioning function with popup helper
Because all uses of the function positioning menus anchored to a widget
were as callback argument to Gtk::Menu::popup() where the caller needed
to correctly bind arguments, this led to repeated and a bit obscure code.

Wrap the logic into an helper function that takes care of all that, and
update the callers.
2016-08-17 01:45:47 +02:00
653df3ca4f GenericUI: better popup placement for automation mode 2016-08-08 16:44:40 +02:00
836f48457d add a "Pin Management" button to the plugin UI-header 2016-08-05 02:35:51 +02:00
67cbdc6cf2 GenericUI: Update all input controls on preset load
The existing code relies on AutomationControls for getting parameter
changes and update the UI accordingly. One case where this doesn't yet
work is preset loading, where ARDOUR::Plugin is responsible for actually
loading the preset but doesn't notify the changes to AutomationControls.

Since the input_controls vector now contains all ControlUI's that rely on
AutomationControls to get updates, just listen to Plugin::PresetLoaded()
and trigger an update of all elements in input_controls.

This is temporary until a better solution is devised to make
AutomationControls aware of preset loading.
2016-07-29 02:06:55 +02:00
7e30161dc0 GenericUI: Show automation UI for dropdowns
Also merge the ControlUI local layout of dropdows with the local layout
of other control types (except FileButton).
2016-07-29 00:54:25 +02:00
5c5b7746a2 GenericUI: disable super rapid timer for input controls
The super rapid timer was disconnected by GenericPluginUI::stop_updating
but never connected again, so the generic UI worked often without
getting periodic update triggers anyway.

Try to disable the mechanism altogether, and see if there are updating
glitches.
2016-07-29 00:14:20 +02:00
a7b29d7966 GenericUI: replace if() by assert()
It makes no sense to check for the validity of mcontrol only for
controller creation, since the remainder of the code assumes that the
controller will have been created correctly.

Replace that by an assert.
2016-07-29 00:07:02 +02:00
3365722b8b GenericUI: remove duplicate connection to signal
Now that there isn't an early return anymore for Dropdowns, the common
path takes care of connecting the display update code to the correct
signal.
2016-07-28 23:21:10 +02:00
d26c3d380d GenericUI: replace early return by an else 2016-07-28 23:21:10 +02:00
535814cf98 GenericUI: don't add all inputs to automation vector
That list is used to set the automation state of all automatable
controls when the global automation state is changed with the buttons at
the top of the generic UI window. The controls were added to the list
regardless of the automatable status, and some controls were even added
multiple times: once in build_control_ui() and once in build().

Since changing the state of non-automatable controls is wrong, only add
the control UI in build_control_ui() which already has the knowledge of
automatable or not.
2016-07-28 23:21:09 +02:00
35a20a8bcc GenericUI: add a sanity-check for FileChoosers
Assert that all FileChooserButton created are for properties, because
the remaining code assumes that it should setup things for a property.
2016-07-28 23:20:04 +02:00
0e7b9c6a98 GenericUI: move up filepath property handling
Since it is the only case that's completely different from others in
that it only handles properties, and uses a different signal path for
updates, don't put it in the middle, but as the first case to check for.

Code move only, no behavior change (since it should be exclusive to all
other cases anyway).
2016-07-28 23:20:03 +02:00
63bbcf968a GenericUI: only connect one PropertyChanged callback
The code connected the callback to the PropertyChanged signal from the
plugin once per filepath control created. Should the plugin have several
files to open, this would be at best wasteful and at worst racy.

Connect the callback a single time, since the same callback handles all
property updates that we're interested in. Also rename the methods,
members and typedefs so that it's clear what the code is trying to do.
2016-07-28 23:19:08 +02:00
1d173bc84f GenericUI: replace ComboBoxText by ArdourDropdown 2016-07-28 23:18:47 +02:00
cf52d6e4b4 enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h 2016-07-14 14:45:23 -04:00
3c99ab0fb9 more compact generic knob-ui layout 2016-07-12 04:02:33 +02:00
1a59019d33 tweak generic plugin knob-widgets
remove label, use tooltip (saves space, more compact layout)
2016-07-11 03:46:33 +02:00
b382ad8b22 towards a generic plugin grid layout 2016-07-08 18:19:31 +02:00
77e50f56f9 first step to separate generic-gui layout 2016-07-08 18:19:31 +02:00
412fcafda0 Plugin GUI activate/enable update (prefer enable) 2016-07-05 23:30:21 +02:00
b68d537ded Prepare to use knobs in Generic Plugin UI 2016-07-04 00:20:11 +02:00
ff50b3780a Replace Gtk::ToggleButton with ArdourButton in Generic Plugin GUI 2016-07-04 00:20:11 +02:00
9a7fbd53a2 don't show meter for integer/enum outputs in a generic plugin UI 2016-06-12 16:43:21 +02:00
a0f774025d generic plugin UI: insensitive NotAutomatable 2016-06-05 20:01:17 +02: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
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
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
6129b3492d allow file-browser in generic-plugin-GUI to expand. 2015-08-24 00:29:54 +02:00
401ded3583 always round integer steps (regardless of enum) 2015-06-02 01:01:23 +02:00
d1334074af add plugin parameter reset button - closes #6297 2015-05-04 20:52:48 +02:00
0cb096a978 Use Ardour widgets consistently in plugin UI.
Several reasons:

* This previously looked horribly inconsistent.

* The Gtk selector was broken for plugins with many presets,
  making it impossible to select presets.  For whatever reason,
  the use of a menu fixes this bug.

* Towards a hierarchical menu for banked presets.
2015-03-07 14:04:45 -05:00
40c8c26b79 remove duplicate callback
mcontrol->Changed is [also] subscribed to further below (input & output).
2015-02-04 18:04:33 +01: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
56ca52651e fix up requested color names everywhere.
Thank <deity> for emacs ... space-uncamelcase-word-at-point FTW
2014-12-14 16:15:38 -05:00
48a7a11974 initial pass to replace all UIConfiguration::get_XXXXXX() calls with UIConfiguration::color(name).
IMPORTANT: names have not been downcased and spaced yet, so many colors are not found
2014-12-14 12:27:07 -05:00
e3da7aff8c Remove redundant calls to start/end_touch.
The controllers do this automatically.
2014-11-28 18:31:18 -05:00
Jeremy Carter
fe6e6e3f35 Plugin Automation All: Fix bug where Switches weren't being changed. 2014-11-18 14:26:50 -05:00
251735080d fix up some suboptimal and crash-prone aspects of 7c263f3bc4 from Jeremy Carter 2014-11-14 17:14:48 -05:00
Jeremy Carter
ca249f3e7c fixed automation *_all button crash 2014-11-11 19:33:25 -05:00
Jeremy Carter
7c263f3bc4 Added Write All, Play All, etc. automation buttons to generic plugin UI 2014-11-11 18:05:27 -05:00
21dde8f2a7 Fix crash when showing UI for plugins with output control ports. 2014-11-02 13:02:54 -05:00
47c4929bc2 Display gain and midiNote plugin parameters/properties nicely.
Show fancy values on generic GUI controls, automation lane controls, and automation lane verbose cursor.
Fix text display of midiNote values.
Make bigstep of midiNote parameters 12 (one octave).
Add ARDOUR::value_as_string() as a stateless one-stop-shop for value printing.
2014-11-02 02:10:24 -05:00
8a128b33d3 Automation of LV2 plugin properties.
Work towards ParameterDescriptor being used more universally to describe control characteristics.
2014-11-02 02:10:24 -05:00
6dfb11c2d0 Move ParameterDescriptor from Plugin to its own header.
This fixes circular dependency issues that arise when using ParameterDescriptor more widely.
2014-11-02 02:10:24 -05:00
bd6ba1717e Decouple ControlUI from port index. 2014-11-02 02:10:24 -05:00
0178f85b05 Don't complain about properties with plugins that do not support them. 2014-11-02 02:09:14 -05: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
5de6c21ec1 More generic RT-safe implementation of LV2 properties. 2014-10-31 20:46:43 -04:00
f7ce57e5b2 plug memory leak 2014-10-31 06:02:32 +01:00
b8cea19b95 prototype [LV2]patch-change support for generic plugin UIs. 2014-10-31 03:26:47 +01:00
ba4d1cd1c1 remove "canvasvar_" from all functions related to obtaining values from ARDOUR_UI::config() 2014-10-21 22:58:58 -04:00
ceff2e3a62 plugin widgets were written to use Internal values, so use that for now 2014-09-18 17:25:11 -05:00
4912409a8d gtk style related fixes:
* remove some old/unused styles
* fix plugin-ui button (hover color when active)
* consistent style for route buttons
  (and related ArdourButton updates)
2014-09-06 12:49:57 +02:00
69ac29d375 consolidate some slider styles, and make bg darker 2014-09-03 15:26:33 -05:00
540a12119b prepare Slider API cleanup 2014-09-02 02:53:05 +02:00
a3c378cf62 move utility functions into a dedicated namespace 2014-06-25 21:47:54 +02:00
2708a145af remove debug output 2014-06-15 13:24:40 +02:00
3020b224fa Merge windows+cc branch into cairocanvas branch. Not finished, need to now merge windows branch to get changes from there 2014-01-10 16:07:57 -05:00
664e715a00 merge from master 2013-10-22 15:29:44 -04:00
0029ee40b6 honor LV2 units:midiNote: display Note name instead of integer 2013-10-22 17:28:49 +02:00
d7a16f7de6 'gtk2_ardour' - Use 'std::vector' to implement an array whose size is unknown (required to be buildable with MSVC) 2013-10-03 09:12:02 +01:00
19bb2b33a8 Merge remote-tracking branch 'remotes/origin/cairocanvas' into windows
Conflicts (hopefully resolved):
	gtk2_ardour/marker.cc
	gtk2_ardour/midi_region_view.h
	gtk2_ardour/region_gain_line.h
	gtk2_ardour/utils.cc
	gtk2_ardour/video_image_frame.cc
	gtk2_ardour/wscript
	libs/backends/jack/wscript
2013-09-21 09:17:25 +01:00
7a30e63eaa fix merge conflicts with master 2013-09-14 16:42:40 -04:00
bb826f4bee incomplete merge of master into windows (requires upcoming changes to master to be complete) 2013-09-12 11:28:50 -04:00
f7b140b918 final fixes for somewhat botched merge with master 2013-08-08 15:43:32 -04:00
89b0beb2dd clean up plugin-ui meter layout 2013-08-08 15:23:08 -04:00
1648a49868 change default color of plugin-UI gauge/meter 2013-08-08 15:23:08 -04:00
894da52f63 update plugin UIs at reasonable rate (25Hz) 2013-08-08 15:23:08 -04:00
1ab61b8564 major redesign of MIDI port heirarchy and management (part 2) 2013-08-07 22:22:11 -04:00
0aac62e013 Merge branch 'master' into windows 2013-07-14 08:27:22 -04:00
da79e702e4 clean up plugin-ui meter layout 2013-07-12 12:11:26 +02:00
56daf0b54f change default color of plugin-UI gauge/meter 2013-07-11 20:39:24 +02:00
c33cabeb82 update plugin UIs at reasonable rate (25Hz) 2013-07-11 20:39:24 +02:00
742753a996 Don't require liblrdf on windows
This removes dependence on liblrdf, libraptor and libxslt
2013-07-11 14:20:02 -04:00
13f51112c9 skip LV2 ports on GUI according to port-properties: notOnGUI and reportsLatency 2013-05-25 09:06:06 +02:00
Carl Hetherington
688d8cca99 Revert 12596; the string should include a descender.
git-svn-id: svn://localhost/ardour2/branches/3.0@12598 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-07 21:07:02 +00:00
Todd Naugle
c9b16a832c fix typo
git-svn-id: svn://localhost/ardour2/branches/3.0@12596 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-06-06 22:30:21 +00:00
ffe5a6c5c2 Add "Description" pane to generic plugin UI for LV2 plugins with documentation (rdfs:comment property).
A Gtk::Entry might be better here, making Gtk::Label wrap based on size is tedious...


git-svn-id: svn://localhost/ardour2/branches/3.0@12043 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-20 02:12:29 +00:00
8439514ffa Set tooltips on generic UI controls for LV2 plugin controls with documentation (rdfs:comment property).
git-svn-id: svn://localhost/ardour2/branches/3.0@12042 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-04-20 01:24:07 +00:00
Carl Hetherington
e7d2509ad9 Fix warning.
git-svn-id: svn://localhost/ardour2/branches/3.0@11759 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-25 19:45:39 +00:00
Carl Hetherington
21a0b7ace0 Use combo box for plugin controls for ports marked as
lv2:enumeration.


git-svn-id: svn://localhost/ardour2/branches/3.0@11745 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-21 16:43:01 +00:00
Carl Hetherington
0af622521b Use a AutoSpin rather than a combo box for input
parameters marked up as scalePoint with fewer labels
than there are possible values for the parameter
(should fix #2612).


git-svn-id: svn://localhost/ardour2/branches/3.0@11744 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-21 16:39:04 +00:00
Carl Hetherington
05fcf75eaf Use sigc::slot for ClickBox printing function rather
than a function pointer.


git-svn-id: svn://localhost/ardour2/branches/3.0@11743 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-21 16:38:59 +00:00
Carl Hetherington
6238ca5e72 Rename combo_map variable to scale_points.
git-svn-id: svn://localhost/ardour2/branches/3.0@11742 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-03-21 16:38:53 +00:00
b08d13706f remove additional "mid" color from ArdourButton; replace Active/Mid widget state with ExplicitActive/ImplicitActive; represent implicit-active state with colored border around ArdourButton; tune button colors; new rounded_foo() functions, some in use, some not in use right now
git-svn-id: svn://localhost/ardour2/branches/3.0@11466 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-02-07 17:43:55 +00:00
d2428e8510 patch from colinf to fix the width of generic plugin editors
git-svn-id: svn://localhost/ardour2/branches/3.0@11401 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-31 20:48:47 +00:00
Carl Hetherington
4381b590bb Reinstate user Controllable values, as they are needed
for gain (which I forgot about).


git-svn-id: svn://localhost/ardour2/branches/3.0@11293 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-21 16:38:56 +00:00
Carl Hetherington
d03d0363a4 Remove unused concept of user' values. Make user_to_ui
and ui_to_user virtual members of PBD::Controllable.


git-svn-id: svn://localhost/ardour2/branches/3.0@11286 d708f5d6-7413-0410-9779-e7cbd77b26cf
2012-01-20 18:02:36 +00:00