Commit graph

13131 commits

Author SHA1 Message Date
Robin Gareus
07aeb12d3a Some notes for later. 2017-07-16 17:09:22 +02:00
Robin Gareus
69ecb0db70 Remove unused API and a never used execution-branch 2017-07-16 16:54:32 +02:00
Robin Gareus
dee990103a Consistent Automation evaluation:
Rule #89: The *owner* of each automation-control is responsible to
evaluate automation of automated automation-controls (and emit Changed()
signals to notify the GUI and slaved controls).

This can happen during run(), when the Processor evaluates automation
(eg. PluginInsert does that), but needs to regardless, every cycle.
Emit Changed signal for GainControl

This follow the same concept as PluginInsert: The Changed signal
is called on demand when evaluating automation.
2017-07-16 16:53:39 +02:00
Robin Gareus
06ca52d5a5 Add API to run automation only (emit Changed signal).
Note: MuteControl already implemented this,
This removes the special case of boolean_automation_run().

Likewise this removes special-cases for actually_set_value() during
automation playback.
2017-07-16 16:52:12 +02:00
Robin Gareus
906cf85982 Rename private method
The same name (automation_run) is used in different context (mute) for
only processing automation.
2017-07-16 16:49:30 +02:00
Robin Gareus
542d021fbc Fix total number of process threads 2017-07-13 17:16:31 +02:00
Johannes Mueller
eb79ae7d41 Don't try to chop of the file name extension from a template dir
Template files reside in
.config/ardour5/templates/$(template_name)/$(template_name).template

We run through .config/ardour5/templates/ and find there the names of the
directories the .template-files are located in. These directory names don't
have a .template extension. So we shouldn't try to chop the non existing
extension of, because then we only modify template names with a '.' in them.
2017-07-12 16:15:03 +02:00
Jelle van der Waa
b1cf27bed4 Fix duplicate ‘const’ declaration specifier 2017-07-12 12:09:59 +02:00
Robin Gareus
fd8053da9e Don't use VST ->user points, prefer host-reserved ptr
Apparently "user" is for plugins (not hosts) to use.
2017-07-08 18:13:42 +02:00
Robin Gareus
82278af424 Add API to expand/flatten AC groups 2017-07-08 15:35:30 +02:00
Robin Gareus
60df2a342c Don't drop processor references with process-lock
_processors = new_list; may drop the last shared-ptr reference.
This may deadlock in ~IO() for I/O processors or plugins with sidechain
inputs. It's been mostly a non-issues since the GUI usually holds a last
shared-ptr reference for a processor to be deleted, but that is
not always the case.
2017-07-07 23:05:59 +02:00
Robin Gareus
deba170d6c Consistent ControlList freezing -- fixes #7419
AudioRegion::set_fade_in() freezes the original ControlList, then
assigns a new one and thaws that.
Frozen state needs to be retained during assignment.

Related: The overloaded assignment operator in AutomationList
performed duplicate signal emission and didn't freeze the list.
2017-07-07 02:35:00 +02:00
Robin Gareus
b732aa2ca1 fix void return with value (amend d5d297c4) 2017-07-06 18:01:49 +02:00
Robin Gareus
d5d297c407 Fix FP8 shutdown sequence (amend d421e56fc) 2017-07-06 16:55:02 +02:00
Robin Gareus
73ad5c97f2 Consistently set parameter steps.
And it's actually mostly moot. interface_to_internal maps
any range to 0..1.
The GUI could just hardcode min/max 0, 1 and steps 1/30, 1/300.
Except for controls that have explicit range-steps & ctrl surfaces.
2017-07-06 16:32:27 +02:00
Len Ovens
2a809dcf70 OSC: add delta controls to master, monitor and select as well 2017-07-05 08:08:57 -07:00
Robin Gareus
cd30a29691 Fix session-event queue (multiple writer, single reader)
The reading is done in rt-process thread, but multiple UIs (surfaces,
GUI) can produce events to be queued.
2017-07-04 20:44:33 +02:00
Robin Gareus
c4578db595 Compatibility with old out-of-range automation-lane data
Ardour may have ignored log-scale for parameters 0..N and allowed
writing '0'. Force those values into the valid range on session load.
Also mark the list as "needs sorting" which removes potential duplicates.
2017-07-04 20:12:51 +02:00
Robin Gareus
135ffdcf6b Work-around for plugins with log-scale parameter 0..SR/2 2017-07-04 20:09:11 +02:00
Robin Gareus
5292a8f4ae Allow DnDVbox to sort the selection, using original order
In preparation for Processors to be copy/pasted in the same order
as they appear on the strip -- not order in which they are selected.
2017-07-04 18:08:35 +02:00
Len Ovens
b11c64ea5b OSC: GUI tweaking 2017-07-03 13:22:56 -07:00
Robin Gareus
b87bec3200 FP8: "Link" mode works with AutomationControl only. 2017-07-03 19:56:16 +02:00
Robin Gareus
d76885e9ef Revert "Prefer Stereo-Balance Panner for stereo tracks"
This reverts commit e9ee454ced.

This needs more work to preserve non-customized panners in existing
sessions. "user-panner" is only set if a user explicitly selects a
panner.
2017-07-03 16:21:35 +02:00
Robin Gareus
ddf55c0d88 PBD::init() failing is fatal in main(), don't silently exit. 2017-07-03 14:45:41 +02:00
Robin Gareus
e9ee454ced Prefer Stereo-Balance Panner for stereo tracks 2017-07-03 02:24:53 +02:00
Robin Gareus
ebc8e352bf FP8: toggle editor/mixer (now that "link" button is used)
..and some TODO notes.
2017-07-03 01:42:36 +02:00
Robin Gareus
3a42383975 Add binding-proxy to ClickBox 2017-07-02 22:48:39 +02:00
Robin Gareus
b942c76df9 FP8: properly control enum+integer parameters. 2017-07-02 21:05:42 +02:00
Robin Gareus
7ed775a716 Add API to step though parameter enumerations 2017-07-02 21:04:22 +02:00
Robin Gareus
0310f89971 FP8: Implement "Control-Link" 2017-07-02 18:19:13 +02:00
Robin Gareus
c4fcb12d12 Add control-focus notifications from bindable widgets. 2017-07-02 18:19:13 +02:00
Robin Gareus
6f986173f3 Controllable focus notification API
This allows to inform control-surfaces about the current GUI
control-element. "Link" control-surface interaction to GUI focus.
2017-07-02 18:19:13 +02:00
Len Ovens
ec76d7ce03 OSC: GUI indicate invalid port and set to old port on defocus if not valid 2017-07-02 08:28:34 -07:00
Robin Gareus
34c0e3f1c8 FP8: plugin GUI display options 2017-07-02 02:06:48 +02:00
Robin Gareus
15b6b29112 Prepare x-thread signals plugin-GUI visibility 2017-07-02 01:58:16 +02:00
Robin Gareus
d1d6e696aa FP8: fix 2-line text 2017-07-02 01:57:21 +02:00
Robin Gareus
b2f3523ab6 Remove old libardour API for plugin UIs 2017-07-01 23:42:28 +02:00
Len Ovens
c42db10044 OSC: issue 7176 patch applied. shows plugin descriptors. 2017-07-01 13:13:04 -07:00
Len Ovens
2219021389 OSC: add feedback for solo isolate and solo safe to strips (issue 7161) 2017-07-01 11:49:08 -07:00
Len Ovens
8bc25fb971 OSC: add strip type flag for master and monitor to strip list 2017-07-01 11:14:55 -07:00
Robin Gareus
f413b83cb9 Fix thinko in dd3f922788 2017-07-01 18:31:55 +02:00
Robin Gareus
58beb02024 FP8: Use Mixer-Order 2017-07-01 17:11:55 +02:00
Len Ovens
a967a942d2 OSC: include all of select in feedback[13] 2017-06-30 20:47:42 -07:00
Len Ovens
296c9ae03e OSC: try to prevent race when clearing devices 2017-06-30 20:13:18 -07:00
Len Ovens
41bc5bc116 OSC: test param type in a way that works when optimized too. 2017-06-30 19:05:30 -07:00
Robin Gareus
d421e56fc0 FP8: Clear input port on close. Fixes crash when switching snapshots
The midi_input_handler for the AsyncMIDIPort is connected to the
main event-loop. Events may still be delivered after the surface was
destroyed.

That by itself is not harmful, unless a given message produces a reply:
The _output_port is already gone, FaderPort8::tx_midi crashes.
2017-07-01 02:55:47 +02:00
Johannes Mueller
f7452c2a3a Addressing #7371: don't trigger session->undo() from non-GUI-thread
When triggering Session::undo() or Session::redo() from a
non-GUI-thread (e.g. from a surface protocol) Ardour crashes if setting a
CairoWidget dirty due to a ENSURE_GUI_THREAD assertion. (see #7371)

By triggering undo by BasicUI::access_action() rather than by Session::undo()
we ensure that the GUI thread will finally call Session::undo().

So more like a workaround ... but better than crashing :)
2017-07-01 01:04:44 +02:00
Robin Gareus
1cbc91788f Don't invert azimuth & elevation display value 2017-06-30 20:01:53 +02:00
Robin Gareus
1682368052 NO-OP: whitespace 2017-06-30 19:56:40 +02:00
Robin Gareus
17bcb67af5 Remove cruft (ParameterDescriptor sets this) 2017-06-30 19:56:01 +02:00