Commit graph

189 commits

Author SHA1 Message Date
Robin Gareus
203c6546c1 GUI tweaks for unset midi banks.
Some MIDNAM files use Patch-Banks that do *not* have a common midi bank
(CC0, CC32) but the Patchbank is instead just a collection of patches.
There may be more than 127 patches in a patch-bank and each of those
may be in a different midi-bank (e.g. Roland SC-88 Pro).

Midnams like these are now properly supported via dropdowns (in the
patch add/modify dialog and timeline), but ignored by the grid
(patch-widget). More work is needed.
2018-07-24 23:22:21 +02:00
Johannes Mueller
e6a6778466 Revert frame -> sample changes where it's a frame as in Gtk::Frame 2018-06-19 20:17:40 +02:00
Robin Gareus
7e78d1c786 Display profile-data in generic plugin-UI. 2018-05-17 22:15:07 +02:00
Robin Gareus
afb5d8cc24 Fix some GUI typos (thanks to IOhannes/debian for reporting) 2018-02-28 20:40:38 +01:00
Robin Gareus
fe964ccfdf Remove unused ClickBox 2017-09-25 15:45:23 +02:00
Robin Gareus
d931f4f69d The beginning of the end for ClickBox
This fixes various issues with integer controls (some values are not
reachable due to incorrect rounding in AutoSpin) and also pulls
in the various benefits of BarController:
  * mouse-drags
  * numeric entry
  * alternative entry modes (piano-keyboard, tempo-based values)

If this style remains, ClickBox & AutoSpin should be removed from
the codebase.
2017-09-23 19:42:04 +02:00
Julien "_FrnchFrgg_" RIVAUD
a42f6ff828 Don't try to limit the UI width if no screen is found 2017-09-20 18:00:27 +02:00
Julien "_FrnchFrgg_" RIVAUD
9fbcecf2f5 Bail out early if a screen isn't found 2017-09-20 08:56:44 +02:00
Paul Davis
cb71d49dc6 fix GTK+ warnings when trying to determine maximum screen size without a Gdk::Window 2017-09-19 18:38:55 -04: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
Robin Gareus
9e256b044d GUI support for Latch 2017-09-18 11:40:52 -04:00
Robin Gareus
d11f43eeb5 GenericPluginUI: tweak MIDI patch select layout 2017-09-09 13:29:28 +02:00
Robin Gareus
ec6a85f921 GenericUI: subscribe to property changes before querying values
Fixes displaying the initial/current filename/path for plugins that have
a LV2:Patch path property.
2017-09-09 04:39:10 +02:00
Robin Gareus
2513343204 GUI part of LV2 midnam race condition fix
..and support for midnam patches on MIDI Busses.
2017-09-09 03:08:46 +02:00
Robin Gareus
b43fd4ad0e GenericPluginUI: send MIDI to plugin if it's not on a MIDI track 2017-09-09 03:08:46 +02:00
Robin Gareus
746665e89c Add a PianoKeyboard to GenericUI (on a MIDI track) 2017-09-08 23:35:00 +02:00
Robin Gareus
64be124fe0 PluginUI: only show "Reset" & Automation buttons if there are any controls 2017-09-08 23:35:00 +02:00
Robin Gareus
aa11cb96b3 Experimental GenericPluginUI MIDI patch select. 2017-09-08 23:35:00 +02:00
Robin Gareus
e10c162efb Fix C++11'ism 2017-08-30 23:10:26 +02:00
Julien "_FrnchFrgg_" RIVAUD
7033b34a65 Ensure a plugin generic UI doesn't exceed screen width
Do that by wrapping the packed controls box in a ScrolledWindow and
making it request the same width than the box but capped to 90% of the
screen width.

Also, when the box width exceeds the maximum value, try again with
one-letter automation buttons in case the reduced width avoids showing a
scroll bar.
2017-08-30 20:11:17 +02:00
Julien "_FrnchFrgg_" RIVAUD
86222360a3 Change the autostate button width of all controls 2017-08-30 16:09:19 +02:00
Julien "_FrnchFrgg_" RIVAUD
f72c819035 Use small Astate buttons for plugins with many controls
The generic plugin UI uses spelled-out automation state buttons for
controls, which is good for readability and usability, but some plugins
have a very big amount of controls which means we need a lot of columns.

For those plugins, prefer one-letter automation states, to save width.
2017-08-29 12:06:33 +02:00
Julien "_FrnchFrgg_" RIVAUD
1b561446b8 GenericUI: rationalize Autostate button sizing
When there was a knobtable in the ControlUI, the behavior of the
automation state button changed by displaying one-char state as in track
headers. Factor out that logic to depend on a new boolean property of
the ControlUI, which should be set with set_short_autostate().

This regroups sizing logic in a single place and avoids future
discrepancies between the actual caption and the size allocated for it,
when several use-cases for smaller buttons are added.
2017-08-29 12:06:33 +02:00
Johannes Mueller
2716ce41e0 Indicate whether to show plugin's inline display in GUI
This is currently done by an extension data similarly to
LV2_INLINEDISPLAY__interface.
2017-07-31 21:31:23 +02:00
Johannes Mueller
a61ae46c82 Display the inline display in the generic plugin gui 2017-07-31 21:31:22 +02:00
Robin Gareus
1f5ebc5485 Remove ArdourPrompter wrapper 2017-07-17 21:06:04 +02:00
Robin Gareus
eb1e423b75 Remove <gtkmm.h> include from header files. 2017-07-17 21:06:04 +02:00
Robin Gareus
f6e182b937 Move 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
ef8756a83a Allow to bind generic plugin-ui dropdown + clickboxes 2017-07-02 22:53:28 +02:00
Robin Gareus
1db9ce4c90 update GUI to use new APIs 2017-06-21 18:13:01 +02:00
Robin Gareus
555fcb89e5 GUI: prepare for API changes
remove use of
- unbound_min/max
- list->default_value and min/max_y
2017-06-21 18:12:16 +02:00
Robin Gareus
99b064274f Update GUI, drop Automatable::value_as_string() API 2017-06-09 16:54:21 +02:00
Robin Gareus
a48f0cfd63 Pretty print control-outputs in generic-UI 2017-05-25 13:49:18 +02:00
Paul Davis
8b5533478f This commit breaks generic GUIs for many LV2 plugins.
Revert "Add checks for supported variant types"

This reverts commit 00ed7c81d3.
2016-12-20 11:33:30 +00:00
Hanspeter Portner
00ed7c81d3 Add checks for supported variant types
Add checks for supported variant types in 'build_control_ui'.
2016-12-20 09:07:50 +00:00
Robin Gareus
c2f4399b3d fix generic plugins for toggle with 2 scalepoints (enum)
Signed-off-by: Robin Gareus <robin@gareus.org>
2016-12-16 01:55:28 +01:00
Robin Gareus
07fa803aa1 fix a-eq grid layout 2016-08-26 01:10:38 +02:00
Julien "_FrnchFrgg_" RIVAUD
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
Robin Gareus
cbc5ec764f fix generic GUI layout for no-control UIs 2016-08-24 03:18:28 +02:00
Julien "_FrnchFrgg_" RIVAUD
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
Julien "_FrnchFrgg_" RIVAUD
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
Julien "_FrnchFrgg_" RIVAUD
ed723ca2c3 Use ArdourButton::Square mode instead of ad-hoc sizing 2016-08-20 18:11:13 +02:00
Julien "_FrnchFrgg_" RIVAUD
00e081024b Use set_sizing_text in generic plugin ui 2016-08-20 16:05:18 +02:00
Julien "_FrnchFrgg_" RIVAUD
5cc97f55f2 Avoid CamelCase in color names 2016-08-19 14:57:07 +02:00
Julien "_FrnchFrgg_" RIVAUD
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
Julien "_FrnchFrgg_" RIVAUD
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
Julien "_FrnchFrgg_" RIVAUD
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
Julien "_FrnchFrgg_" RIVAUD
653df3ca4f GenericUI: better popup placement for automation mode 2016-08-08 16:44:40 +02:00
Robin Gareus
836f48457d add a "Pin Management" button to the plugin UI-header 2016-08-05 02:35:51 +02:00