Commit graph

214 commits

Author SHA1 Message Date
Robin Gareus
032aceff28
Remove custom generic plugin UIs (a-eq) 1/2
Mostly a failed experiment, that also does not play well with
themes. Superseded by Harrison's ACE-EQ GUI.
2021-06-04 01:43:01 +02:00
Robin Gareus
9b1a2e6dba
Indicate that plugin-window MIDI keyboard is not recorded 2021-01-08 22:50:53 +01:00
Robin Gareus
c5d7ed3015
Update GUI, use new write_immediate_event() API 2020-09-20 19:16:52 +02:00
Robin Gareus
f8ce5ecbc6
Consolidate Plugin-GUI toolbar layout, consistent layout & spacing 2020-09-16 00:02:52 +02:00
Robin Gareus
89904468b3
Fix generic UI crash when plugin has ctrl outputs -- #7937
build_control_ui() special cases `AutomationControl mcontrol = NULL`
to create read-only output display. So Iterating over
Evoral::Control that are not AutomationControl must not crash.

This fixes a bug introduced in a44fecb740.
"Edit with generic controls" caused crashes for plugins with ctrl outs.
2020-03-25 16:36:54 +01:00
Robin Gareus
a44fecb740
Hide hidden Controls in GUI 2020-03-18 18:16:32 +01:00
Robin Gareus
97f3d9496b
Show latency display/config button for in all plugin UIs 2020-03-14 13:25:51 +01:00
Paul Davis
a855119bdd rename all Evoral source from .(hpp|cpp)$ to .(h|cc) 2019-11-02 16:32:18 -06:00
Robin Gareus
fe880d9b57
Consolidate more automation-mode texts 2019-10-31 23:58:05 +01:00
Robin Gareus
ab298f035a
Consolidate automation and meter-point strings
This also properly selects texts in dropdown-menus on the mixer-strip,
panner and plugin-controls, gain-meters.
2019-10-31 16:12:27 +01:00
Robin Gareus
c0c1fd8b60
Rename PianoKeyboard class, avoid ambiguities
A C++ class "PianoKeyboard" in the global namespace may cause
issues with some plugins that export and use an identically
named symbol.
2019-10-25 21:24:25 +02:00
Robin Gareus
3f2f517291
Rough-in gtk-pianokeyboard C -> C++ 2019-10-24 19:59:22 +02:00
Robin Gareus
19e4f47b4b
Cont'd work on Virtual-keyboard
* allow gtk_pianokeyboard to respond to y-axis click position
  and include MIDI velocity with note-on signal
* add configuration settings to virual-keyboard
  min/max velocity, keyboard-layout
* add a CC7 controller knob
2019-10-18 22:56:46 +02:00
Robin Gareus
7a66b22428
Show preset-browser button if annoted presets are available 2019-10-11 00:13:07 +02:00
Robin Gareus
0fa38c0002
Add API to check for plugin-presets with description 2019-10-10 22:31:19 +02:00
Robin Gareus
a5e2012ead
Consistent preset layout
Use the same order as AU, VST, LV2 GUIs. Show the "modified" asterisk
left of the preset-dropdown. This avoids a blank space between the
dropdown and the Add, Save, Delete buttons.
2019-08-20 23:45:49 +02:00
Robin Gareus
4050ca5633
Update GPL boilerplate and (C)
Copyright-holder and year information is extracted from git log.

git history begins in 2005. So (C) from 1998..2005 is lost. Also some
(C) assignment of commits where the committer didn't use --author.
2019-08-03 15:53:15 +02:00
Robin Gareus
31815b5f26
NO-OP: whitespace
This fixes mostly <tab> after <space> and similar <tab> not used
for indenting as well as some related code alignment issues.
2019-04-13 17:57:46 +02:00
Robin Gareus
45805ece02
Remove unused value parameter printers 2019-03-11 01:48:40 +01:00
Robin Gareus
3bc9281c31
Fix some Gtk::Menu related memory leaks
A Gtk::manage()d widget will be deleted when its parent container
is destroyed. Top-level context menus are not inside a container and
hence need to be manually deallocated.

This adds explicit delete calls for menus where there is a
member variable reference to the Menu.
2019-03-07 23:50:32 +01:00
Robin Gareus
6f01598297
Add external drive references for most file-browsers
This fixes an issue on MacOS/X to only show non-root volumes in
the file-open dialog. They're just as valid for save-as, export, video
files etc.

In case of a 2nd internal disk, it is also a valid choice as default
folder for new sessions.
2019-01-02 17:37:36 +01:00
Robin Gareus
9594e12c52
Add a plugin-preset list/selector GUI
This is currently only used for "Preset only" plugins, generic UI.
And also depends on plugin-presets having a description.
2018-12-20 16:56:49 +01:00
Robin Gareus
d6b5c23579
Fix generic plugin UI for plugins with only properties
e.g. reMID.lv2 has only a atom/file-property and no control-inputs.
2018-12-05 20:18:56 +01:00
Robin Gareus
78f749ef65
Don't show DSP stats of inserts that don't collect them. 2018-12-03 22:43:13 +01:00
Robin Gareus
9b3fd34b6b Properly limit generic-UI window size
Initially screen() is not unset, the window only exists after the
scroller has been realized. Also prevent initially over-sized window.
2018-11-15 23:05:22 +01:00
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