Paul Davis
5ea862ccc2
fix several more controls to take a time domain from their owner (Automatable)
2021-08-13 12:51:33 -06:00
Paul Davis
df37c62e37
mute controls starts with its stripable's time domain
2021-08-13 12:51:33 -06:00
Edgar Aichinger
70937dc1f9
Fix typos in preparation for translations
2020-04-13 16:10:13 +02:00
Robin Gareus
a22f918d9d
Update libardour GPL boilerplate and (C) from git log
2019-08-03 15:53:16 +02:00
Robin Gareus
5dc54c91c7
Prevent recursive VCA assignments
...
The GUI so far only prevents direct connections VCA 1 > VCA 2 > VCA 1,
but does not recurse VCA 1 > VCA 2 > VCA 3 > VCA 1
2017-10-20 02:54:28 +02:00
Robin Gareus
9334c99b35
Update Slavable API
...
Do not use AutomationType to identify parameters, use complete
Evoral::Parameter and Automatable.
For "batch connections", a Slavables needs to implement an API to return
the relevant controls.
This is only a first step towards a more generic Master/Slave framework.
2017-06-22 22:04:10 +02:00
Robin Gareus
50c5425004
Restore VCA Automation state
2017-06-10 14:38:21 +02:00
Robin Gareus
a1b4f9b8ab
Fix deletion of VCA with slaved controls.
...
The crashed previously because:
A VCA is-a Automatable is-a Evoral::ControlSet
After VCA's d'tor completes ~Automatable runs and emits signal to
DropReferences of all master-controls.
This in turn calls SlavableAutomationControl::master_going_away()
for slaved parameters for the given master-control
In ::master_going_away() the weak-pointer reference to the master's
AutomationControl (owned by the destroyed VCA) is still valid.
Execution is in the d'tor of Automatable which is-a ControlSet and
the ContolSet keeps a reference to the Control and hence also to the
AutomationControl which is-a Evoral::Control.
So master_going_away() locks a boost::shared_ptr<ARDOUR::AutomationControl>
which is actually the MuteControl owned by the VCA.
It calls SlavableAutomationControl::remove_master() which
in turn calls MuteControl::pre_remove_master() which uses the
MuteMaster API to retrieve the value. The MuteMaster however is the
VCA that has just been destroyed.
The solution is twofold:
1) emit "drop_references" from the VCA d'tor itself,
before the VCA is destroyed.
2) disconnect a slaved control from the master's drop_references signal
when un-assigning a master-control.
2017-06-09 23:25:42 +02:00
Paul Davis
0c035778e1
libardour now has CoreSelection object to manage selection status of Stripables and AutomationControls
2017-05-05 18:56:25 +01:00
Tim Mayberry
161cd4f3cd
Use XMLNode::get/set_property API in ARDOUR::VCA class
2017-04-19 09:36:53 +10:00
Paul Davis
e12e8716ba
add VCA::full_name() which returns "VCA %n" : VCA %n" by default and "VCA %n : user-provided-name" if the name has been set
2017-01-28 16:06:28 +01:00
Paul Davis
cf52d6e4b4
enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.h
2016-07-14 14:45:23 -04:00
Paul Davis
b37ec38d86
change VCA number to signed.
...
Allows for more robust out-of-band (negative) value
2016-07-08 11:46:01 -04:00
Paul Davis
d58cb3daa3
extensive changes to PresentationInfo API
...
Now handles color, partially.
2016-06-05 16:33:01 -04:00
Paul Davis
2ac7108ccb
use new record safe control in libardour
2016-05-31 15:30:45 -04:00
Paul Davis
d09b466f05
VCA: fix numbering scheme to allow contiguous numbers after removing the last VCA; remove unnecessary remote_control_id() method
2016-05-31 15:30:44 -04:00
Paul Davis
a48888e688
add slaved_to() and slaved() methods to VCA
2016-05-31 15:30:43 -04:00
Paul Davis
e0ff70cf86
first vaguely working version using PresentationInfo
...
remote control ID and "order keys" have been removed.
2016-05-31 15:30:42 -04:00
Paul Davis
0ab10bf8e3
API and implementation tweaks for destroying VCAs
2016-05-31 15:30:42 -04:00
Paul Davis
f485cfa324
rearrange inheritance so that Automatable IS-A Slavable
...
Share assign code via Slavable; add visibility tags to Slavable+SlavableAutomationControl
2016-05-31 15:30:41 -04:00
Paul Davis
52b150ba5d
generalize VCA assign/unassign code.
...
Need to share this approach across Slavables
2016-05-31 15:30:41 -04:00
Paul Davis
f2984260d4
add rec-enable and monitor controls to VCAs
2016-05-31 15:30:41 -04:00
Paul Davis
1e9b2abe73
save and restore vca assignments
2016-05-31 15:30:41 -04:00
Paul Davis
83e51ee69b
add Slavable API for VCA assign/unassign
2016-05-31 15:30:41 -04:00
Paul Davis
a89b3f5687
clear all solo state should affect VCAs too
2016-05-31 15:30:41 -04:00
Paul Davis
69250b64ea
move ever close to working master/slave logic, this time with audio testing
2016-05-31 15:30:41 -04:00
Paul Davis
e1bcd70712
a slew of as-yet incomplete work to get VCA solo+mute closer to working
2016-05-31 15:30:40 -04:00
Paul Davis
653ae4acd6
universal change in the design of the way Route/Track controls are designed and used. The controls now own their own state, rather than proxy for state in their owners.
...
Massive changes all over the code to accomodate this. Many things are not finished. Consider this a backup safety commit
2016-05-31 15:30:40 -04:00
Paul Davis
194b213456
add implicit mute state to MuteMaster and use when a master of a mute control is enabled/disabled. Add AutomationControl::master_changed() as a virtual method to handle ... master value changes
2016-05-31 15:30:40 -04:00
Paul Davis
a3c5b81ca1
Session API changes to enable VCAs to set soloed-by-upstream on assigned routes
2016-05-31 15:30:39 -04:00
Paul Davis
9a0f4b1ef3
move vca assignment up to the Route level (from GainControl)
2016-05-31 15:30:39 -04:00
Paul Davis
c3afeab49c
don't increment actual VCA counter when saving session state
2016-05-31 15:30:39 -04:00
Paul Davis
0dca11cb47
save+restore VCA counter value across instances
2016-05-31 15:30:39 -04:00
Paul Davis
1132d3f4c8
VCA solo and mute controls need to call AutomationControl::set_value() to emit a signal
2016-05-31 15:30:39 -04:00
Paul Davis
1f6800d421
redesign Route and VCA objects to inherit from ARDOUR::Stripable
2016-05-31 15:30:39 -04:00
Paul Davis
dd31ef2d1b
fix ambiguity in VCA constructors
2016-05-31 15:30:39 -04:00
Paul Davis
6b7a384e34
add solo/mute logic to VCA masters
2016-05-31 15:30:39 -04:00
Paul Davis
35172bb369
change API for GainControl, VCA and VCAManager
...
This allows sane state save/restore
2016-05-31 15:30:39 -04:00
Paul Davis
4d14ae4e23
mostly restore VCA state on session loading.
...
This does not restore VCA assignments
2016-05-31 15:30:38 -04:00
Paul Davis
4478bdc1d1
add a bit of state to VCAs
2016-05-31 15:30:38 -04:00
Paul Davis
f44cac5cc6
expand and improve VCA API
2016-05-31 15:30:38 -04:00
Paul Davis
405f9fc712
change VCA model to facilitate Harrison *and* SSL designs
2016-05-31 15:30:38 -04:00
Paul Davis
cfc55e392f
add name() method to VCA
2016-05-31 15:30:38 -04:00
Paul Davis
87481a2ee1
initially pass at libardour VCA implementation
2016-05-31 15:30:38 -04:00