Commit Graph

34187 Commits

Author SHA1 Message Date
Ben Loftis 7a53c4140d trigger_ui: add a color-picker button 2021-12-30 21:25:39 -06:00
Ben Loftis d87b1053df ArdourButton: ColorBox flag is for color-picker buttons 2021-12-30 21:25:39 -06:00
Ben Loftis 5e76c32e96 trigger_ui: add a button to load a sample (TODO: refactor with triggerbox) 2021-12-30 21:25:39 -06:00
Ben Loftis 8997a247d4 trigger_ui: add a name widget and the ability to rename a slot 2021-12-30 21:25:39 -06:00
Robin Gareus c29f5471b2
Handle all enum cases, prevent accessing unintialized ptr object 2021-12-31 02:47:50 +01:00
Robin Gareus 1f5649ef28
Fix vfork edge-case
Calling c_str() after vfork is prohibited after a successful vfork.
Also the string needs to remain in scope until exec() completed.
2021-12-31 01:39:39 +01:00
Robin Gareus 658d8c512e
Trigger clip picker: add apple loop paths 2021-12-30 21:23:05 +01:00
Robin Gareus d06a70a10a
Trigger clip picker: constrain browsing to parent folders.
Allow to move up to the highest common path, but not further.
2021-12-30 21:22:52 +01:00
Robin Gareus 96c80e88ac
Lua binding for MidiTrack::set_input_active 2021-12-30 19:00:14 +01:00
Florian Walpen 10d367fdae
Fix plugin manager build with VST3 disabled.
ARDOUR::SystemExec is also used for scanning VST2 and AU plugins, yet
the corresponding header ardour/system_exec.h is not included when VST3
support is disabled in the build configuration.
2021-12-29 23:33:39 +01:00
Paul Davis 24269acb97 triggerbox: update relevant comment 2021-12-29 09:37:43 -07:00
Paul Davis 645262c26a triggerbox: fix incorrect behavior in MIDITrigger::run() caused by taking dest_offset into account twice 2021-12-29 08:58:55 -07:00
Paul Davis 87974562d3 triggerbox: add TriggerBox::active_scene() 2021-12-28 18:02:13 -07:00
Paul Davis 2c00379220 triggerbox: continuing fixups for MIDITrigger 2021-12-28 18:01:41 -07:00
Ben Loftis be7e9df8e3 trigger_ui: fix render-gltches in Cue buttons 2021-12-28 08:37:08 -06:00
Ben Loftis c97a28015e triggerbox: default probability should be 0 (100% left) 2021-12-28 08:37:08 -06:00
Ben Loftis 4736b8338c trigger_ui: convenience functions to set Color for a column or row 2021-12-27 18:03:14 -06:00
Ben Loftis 414f3611ee trigger_ui: reverse the probability display logic (again) 2021-12-27 18:03:13 -06:00
Ben Loftis e609c9f417 trigger_ui: implement menu option for quantization=None 2021-12-27 18:03:13 -06:00
Ben Loftis bad4fdc48a trigger_ui: better display+handling of FA enable and probability 2021-12-27 18:03:13 -06:00
Ben Loftis f5c2697f4f trigger_ui: trigger-master button should follow conventions of other Stop buttons
Normally the Stop occurs quantized (on bar ending). Primary-modifier means 'stop now'
2021-12-27 18:03:13 -06:00
Ben Loftis a43e3d88e5 triggerbox: notify the UI when we Clear a trigger 2021-12-27 18:03:13 -06:00
Ben Loftis 3a506ac7a1 triggerbox: mark session dirty when a Trigger's properties are changed
also make an effort to damp callbacks that are prone to gui feedback loops
 i.e.  CheckMenu Items and Adjustments
2021-12-27 18:03:13 -06:00
Ben Loftis be190f611d cruft removal 2021-12-27 18:03:13 -06:00
Ben Loftis b722a23f39 triggerbox colors (gtk part) 2021-12-27 18:03:13 -06:00
Ben Loftis cc5fb209ab triggerbox: Triggers may be assigned a color
colors can be transmitted to some surfaces (Launchpad et al), so must be store in Trigger::
2021-12-27 18:03:13 -06:00
Ben Loftis 8ac1b40694 pixel-pushing: tweak text position 2021-12-27 18:03:13 -06:00
Ben Loftis 3324882fe0 pixel-pushing: remove horizontal divider lines 2021-12-27 18:03:13 -06:00
Ben Loftis 13b907af5b pixel-pushing: better icons for Any and Other 2021-12-27 18:03:13 -06:00
Paul Davis 12dbcd90bf triggerbox: fix quantized stop via ::unbang() 2021-12-27 16:24:35 -07:00
Paul Davis 163fc541d2 triggerbox: alter MIDITrigger::run() to work like its AudioTrigger counterpart 2021-12-27 15:08:20 -07:00
Paul Davis af37a51b65 triggerbox: triggers estimated to be 1 bar long are not one-shots 2021-12-27 15:07:44 -07:00
Paul Davis f9903a7a8b triggerbox: use custom (threaded) deleter for MIDITriggers just like AudioTriggers 2021-12-27 12:04:39 -07:00
Paul Davis 3755c04786 triggerbox: fix some const qualifier usage 2021-12-27 12:04:21 -07:00
Paul Davis 8e2b36d43d triggerbox: NOOP: add explanatory comment 2021-12-27 11:24:21 -07:00
Paul Davis 610125b87c remove call to #ifdef'ed code 2021-12-27 11:24:03 -07:00
Paul Davis 75d5d54cb6 triggerbox: position triggerbox after disk reader, before polarity, by default 2021-12-27 11:20:40 -07:00
Paul Davis d82d8dd7d4 NO-OP: fix spelling mistake 2021-12-27 11:20:40 -07:00
Robin Gareus 18fe2e2c4e
Fix C++11/14 array initialization (clang < 3.7)
C++11 array initialization won't call copy constructor, leading to
an error: array initializer must be an initializer list.

Specifically this affects the copy c'tor: line 93: peaks (other.peaks)

A workaround is to use a vector instead of a fixed size array.
This fixes macOS builds.
2021-12-27 16:42:26 +01:00
Paul Davis a71ab327a3 triggerbox UI: set ruler metric 2021-12-24 15:34:30 -07:00
Paul Davis b2bd748672 ruler: make ::set_metric() API consistent with constructor by using ptr 2021-12-24 15:34:18 -07:00
Paul Davis 8c2bd1a555 triggerbox: get thread-based deletion system to actually work
Needed to pass custom deleter to the shared_ptr<Trigger>::reset() call where the
trigger is replaced
2021-12-24 15:00:58 -07:00
Paul Davis a5c37e6fd4 fix one remaining trigger lookup in trigger UI 2021-12-24 14:42:52 -07:00
Paul Davis c18823c0e0 triggerbox: change entire UI side to avoid using TriggerPtr
Lifetime management of Triggers is unlike anything(?) we've dealt with in
Ardour so far. The parent object (Triggerbox) has a normal lifetime
pattern, but Triggers can come and go in a way that few other objects
do (although Processors and particularly PluginInsert are somewhat similar).
We do not want the GUI to hold references to the actual Triggers, because the
end of life of a Trigger is not really a signal for the GUI element to go
away (the Trigger will be replaced in the slot). Consequently, we do not
want TriggerPtr used as a member variable anywhere in the UI. Instead we use a
TriggerReference which can "lookup" a Trigger on-demand (by box and slot
number). The (G)UI now uses these exclusively.

Work still needed to pick up trigger swap signals from the boxen.
2021-12-24 14:18:10 -07:00
Paul Davis 401411d5c3 triggerbox: initial implementation of thread-based deleter for Triggers
Uses a custom deleter for the shared_ptr<Trigger>'s that we create. Will
likely evolve to use an allocator so that we can use make_shared's
cousin allocate_shared().
2021-12-24 14:17:23 -07:00
Paul Davis 7afc8f7a31 triggerbox: remove unused local variable 2021-12-24 14:17:23 -07:00
Paul Davis 4d15bf9f18 triggerbox: move TriggerReference object into ARDOUR::Triggerbox
Also, change box handle to a pointer so that we can have a
default (empty) constructor.
2021-12-24 14:17:23 -07:00
Paul Davis ce71ee010e triggerbox: fix API/virtual issue with ::start_offset() method 2021-12-24 14:17:23 -07:00
Paul Davis 753d1c9754 rulers: change API to accept a pointer instead of a reference to a Metric
We need to be able to construct Metrics after the ruler is constructed
in order to deal with Triggers which are potentially short-lived. We
stored the reference as a pointer anyway, so it's not as much of a change
as it appears.
2021-12-24 14:17:23 -07:00
Robin Gareus 7f3681c7ac
Scale export-analysis dataset 2021-12-24 21:59:03 +01:00