summaryrefslogtreecommitdiff
path: root/libs/ardour/vca.cc
AgeCommit message (Collapse)Author
2017-10-20Prevent recursive VCA assignmentsRobin Gareus
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-06-22Update Slavable APIRobin Gareus
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-10Restore VCA Automation stateRobin Gareus
2017-06-09Fix deletion of VCA with slaved controls.Robin Gareus
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-05-05libardour now has CoreSelection object to manage selection status of ↵Paul Davis
Stripables and AutomationControls
2017-04-19Use XMLNode::get/set_property API in ARDOUR::VCA classTim Mayberry
2017-01-28add VCA::full_name() which returns "VCA %n" : VCA %n" by default and "VCA %n ↵Paul Davis
: user-provided-name" if the name has been set
2016-07-14enough with umpteen "i18n.h" files. Consolidate on pbd/i18n.hPaul Davis
2016-07-08change VCA number to signed.Paul Davis
Allows for more robust out-of-band (negative) value
2016-06-05extensive changes to PresentationInfo APIPaul Davis
Now handles color, partially.
2016-05-31use new record safe control in libardourPaul Davis
2016-05-31VCA: fix numbering scheme to allow contiguous numbers after removing the ↵Paul Davis
last VCA; remove unnecessary remote_control_id() method
2016-05-31add slaved_to() and slaved() methods to VCAPaul Davis
2016-05-31first vaguely working version using PresentationInfoPaul Davis
remote control ID and "order keys" have been removed.
2016-05-31API and implementation tweaks for destroying VCAsPaul Davis
2016-05-31rearrange inheritance so that Automatable IS-A SlavablePaul Davis
Share assign code via Slavable; add visibility tags to Slavable+SlavableAutomationControl
2016-05-31generalize VCA assign/unassign code.Paul Davis
Need to share this approach across Slavables
2016-05-31add rec-enable and monitor controls to VCAsPaul Davis
2016-05-31save and restore vca assignmentsPaul Davis
2016-05-31add Slavable API for VCA assign/unassignPaul Davis
2016-05-31clear all solo state should affect VCAs tooPaul Davis
2016-05-31move ever close to working master/slave logic, this time with audio testingPaul Davis
2016-05-31a slew of as-yet incomplete work to get VCA solo+mute closer to workingPaul Davis
2016-05-31universal change in the design of the way Route/Track controls are designed ↵Paul Davis
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-31add implicit mute state to MuteMaster and use when a master of a mute ↵Paul Davis
control is enabled/disabled. Add AutomationControl::master_changed() as a virtual method to handle ... master value changes
2016-05-31Session API changes to enable VCAs to set soloed-by-upstream on assigned routesPaul Davis
2016-05-31move vca assignment up to the Route level (from GainControl)Paul Davis
2016-05-31don't increment actual VCA counter when saving session statePaul Davis
2016-05-31save+restore VCA counter value across instancesPaul Davis
2016-05-31VCA solo and mute controls need to call AutomationControl::set_value() to ↵Paul Davis
emit a signal
2016-05-31redesign Route and VCA objects to inherit from ARDOUR::StripablePaul Davis
2016-05-31fix ambiguity in VCA constructorsPaul Davis
2016-05-31add solo/mute logic to VCA mastersPaul Davis
2016-05-31change API for GainControl, VCA and VCAManagerPaul Davis
This allows sane state save/restore
2016-05-31mostly restore VCA state on session loading.Paul Davis
This does not restore VCA assignments
2016-05-31add a bit of state to VCAsPaul Davis
2016-05-31expand and improve VCA APIPaul Davis
2016-05-31change VCA model to facilitate Harrison *and* SSL designsPaul Davis
2016-05-31add name() method to VCAPaul Davis
2016-05-31initially pass at libardour VCA implementationPaul Davis