dd57a83793
add Stripable analogs for Route signals and methods in ControlProtocol
...
These will go away once all surfaces have migrated to Stripables
2016-05-31 15:30:42 -04:00
96faa622ee
fwd declaration of Stripable and associated lists
2016-05-31 15:30:42 -04:00
534b2de35b
Add PanControllable::get_user_string() (provide indirect access to Panner::value_as_string(); make ::get_user_string() use a const arg everywhere
2016-05-31 15:30:42 -04:00
8346fab567
remove irrelevant, out of date and incorrect comment
2016-05-31 15:30:42 -04:00
d5127001bb
move ControllableDescriptor from libpbd to libardour; add support for describing VCAs
2016-05-31 15:30:42 -04:00
e0ff70cf86
first vaguely working version using PresentationInfo
...
remote control ID and "order keys" have been removed.
2016-05-31 15:30:42 -04:00
0ab10bf8e3
API and implementation tweaks for destroying VCAs
2016-05-31 15:30:42 -04:00
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
eee3837245
remove explicit setting of Toggle flag for AutomationControls
...
Make it be based on the ParameterDescriptor, which indicates toggle status anyway
2016-05-31 15:30:41 -04:00
52b150ba5d
generalize VCA assign/unassign code.
...
Need to share this approach across Slavables
2016-05-31 15:30:41 -04:00
f2984260d4
add rec-enable and monitor controls to VCAs
2016-05-31 15:30:41 -04:00
1e9b2abe73
save and restore vca assignments
2016-05-31 15:30:41 -04:00
83e51ee69b
add Slavable API for VCA assign/unassign
2016-05-31 15:30:41 -04:00
84a0386f9c
new files
2016-05-31 15:30:41 -04:00
be4e898996
improve cleanup of VCA related objects
2016-05-31 15:30:41 -04:00
51064f77a8
fix compiler issues with pair<T1,T2> construction
2016-05-31 15:30:41 -04:00
d0f5958542
fix chaining of masters for boolean controls
2016-05-31 15:30:41 -04:00
a48fada3c7
move new fractional pane utility functions into libs/gtkmm2ext
2016-05-31 15:30:41 -04:00
b9ba91ac1d
fix solo isolate controls
2016-05-31 15:30:41 -04:00
a89b3f5687
clear all solo state should affect VCAs too
2016-05-31 15:30:41 -04:00
5b5e64d860
remove Route::listening_via_monitor()
...
This is better tested with direct use of the solo_control and
Config->get_solo_controls_are_listen_controls()
2016-05-31 15:30:41 -04:00
01bba9f910
fix backend logic for PFL/AFL when mastered
2016-05-31 15:30:41 -04:00
69250b64ea
move ever close to working master/slave logic, this time with audio testing
2016-05-31 15:30:41 -04:00
bce617375e
fix return type of SlavableAutomationControl::get_boolean_masters() to make it usefl
2016-05-31 15:30:41 -04:00
9e70384ccf
fix solo control to use VCA logic as worked out for mute
2016-05-31 15:30:41 -04:00
0ef0492cbb
remove debug output
2016-05-31 15:30:41 -04:00
3fe50951e4
fix call to base class
2016-05-31 15:30:41 -04:00
8ee6603561
design changes to various SlavableAutomationControls to make it possible to get the logic right for boolean controls
2016-05-31 15:30:41 -04:00
01aefd236a
move SlavableAutomationControl into its own header
2016-05-31 15:30:41 -04:00
6de4953be8
a variety of changes that get closer to correctly functioning behaviour for VCA solo+mute (BUT ARE NOT DONE YET)
2016-05-31 15:30:41 -04:00
7d493b091a
do not route AutomationControl changes to an RT thread if we are loading a session
2016-05-31 15:30:40 -04:00
4a30e1f4c8
add Session::loading() to allow easy detection of "session is being loaded" condition
2016-05-31 15:30:40 -04:00
e1bcd70712
a slew of as-yet incomplete work to get VCA solo+mute closer to working
2016-05-31 15:30:40 -04:00
86a9fb2844
stop crash caused by missing conditional
2016-05-31 15:30:40 -04:00
cba56ade87
fix logic for Session::solo_control_mode_changed()
2016-05-31 15:30:40 -04:00
b042072df4
fix logic for removing an AutomationControl from a ControlGroup
2016-05-31 15:30:40 -04:00
b2b5c965c8
some tweaks for solo logic to get things working as they were before (correctly)
2016-05-31 15:30:40 -04:00
5499bad836
add back some amount of XML save/restore for route controls
2016-05-31 15:30:40 -04:00
0cf89e76ef
add new enums
2016-05-31 15:30:40 -04:00
e9d72383c7
extend function of Automatable::control_factory() [ this may be the wrong design ... review coming ]
2016-05-31 15:30:40 -04:00
2ca819c00b
add track controls to its Automatable self
2016-05-31 15:30:40 -04:00
8fc1876626
do not non-automable controls to an Automatable's list of what can be automated
2016-05-31 15:30:40 -04:00
2c6d595614
add a new Controllable::NotAutomable flag
2016-05-31 15:30:40 -04:00
4aa1c242ab
add new files to source tree
2016-05-31 15:30:40 -04:00
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
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
5531c83496
change API of Controllable::Changed signal to include (from_self, GroupControlDisposition)
...
This allows the signal to convey more information, which may be required by some handlers of a control's Changed signal
2016-05-31 15:30:40 -04:00
4b36593106
fix faderport and mackie to use route AutomationControls to be notified about solo/mute changes
2016-05-31 15:30:40 -04:00
1c0c9b40b7
new API for route solo/mute state mgmt
...
Route now calls back into Session when solo/mute/listen state changes. All other interested
parties must use the Route::{solo,mute,...}_control()->Changed() to be notified of changes.
The Session requires more information than the Changed signal can provide, in order to
propagate solo/mute changes across the entire Session correctly.
Note that this uses an experimental use of CRTP to isolate a public API within Session
2016-05-31 15:30:40 -04:00
8eb45c518d
rearrange AutomationControl and RouteAutomationControl to get more shared logic and consistent master/slave behaviour
2016-05-31 15:30:40 -04:00