Paul Davis
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
Paul Davis
4b36593106
fix faderport and mackie to use route AutomationControls to be notified about solo/mute changes
2016-05-31 15:30:40 -04:00
Paul Davis
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
Paul Davis
8eb45c518d
rearrange AutomationControl and RouteAutomationControl to get more shared logic and consistent master/slave behaviour
2016-05-31 15:30:40 -04:00
Paul Davis
c660703f95
redesign control slave/master system, move code from GainControl to AutomationControl
2016-05-31 15:30:40 -04:00
Paul Davis
74f8a81276
change master records in GainControl to use AutomationControl
...
The first step of generalizing master/slave to other controls
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
04e26fe7e6
move VCA assignment up to Route level
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
7b62e08233
add required header
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
aee283f056
use redesigned Route and VCA object architecture/API
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
00b7385e4c
correctly restore VCA-VCA slave/master relationships at session load time
2016-05-31 15:30:39 -04:00
Paul Davis
aa80321976
fix deadlock caused by VCA=>VCA slaving and set_state()
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
17853bc472
ensure that GainControl::get_value() never returns > Config->get_max_gain()
2016-05-31 15:30:39 -04:00
Paul Davis
0c5e5f54a0
change master-record management to use std::map to avoid const iterators; drop connection to master Changed signal when unassigning
2016-05-31 15:30:39 -04:00
Paul Davis
562ec7df8f
probably get the design of VCAs basically correct: use a per-master ratio model
...
See comments in the code for a bit more detail
2016-05-31 15:30:39 -04:00
Paul Davis
d07ed3b04f
add GainControl::slaved() predicate
2016-05-31 15:30:39 -04:00
Paul Davis
a4935eca6d
forward-propagate Changed signals through VCA master-slave connections
2016-05-31 15:30:39 -04:00
Paul Davis
a879310349
add VCAStatusChange message to GainControl
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
cab88c6aad
add VCA debug bit
2016-05-31 15:30:38 -04:00
Paul Davis
f5df3c291e
fix VCA name/number
2016-05-31 15:30:38 -04:00
Paul Davis
acaaa98bd0
start shaping up VCA assign process
2016-05-31 15:30:38 -04:00
Paul Davis
984f4487e0
remove debug output
2016-05-31 15:30:38 -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
d2c405416c
save/restore VCAManager state
2016-05-31 15:30:38 -04:00
Paul Davis
0d5705d096
reorder destruction of VCAManager and Routes
2016-05-31 15:30:38 -04:00
Paul Davis
bfd0ba7bf3
add a bit of state to VCAManager
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
8eafe8b804
vca design: gain controls cannot silently "merge" the master(s) value into their own
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
3daad04936
don't force size allocation to recompute pixfader patterns unless size actually changes
2016-05-31 15:30:38 -04:00
Paul Davis
99d251de7d
first pass at making the GUI for a VCA visible
2016-05-31 15:30:38 -04:00
Paul Davis
c61a5cabc7
Session HAS-A VCAManager
2016-05-31 15:30:38 -04:00
Paul Davis
ab9bb49f39
initial implementation of a VCA Manager object
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
5c658db4bf
most of the changes required to add a new master faders tabbable
...
the visibility button isn't actually working correctly
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
nick_m
829c257f45
Make TempoMap::framepos_plus_beats() & TempoMap::framepos_minus_beats() more correct.
2016-05-30 11:03:45 +10:00
Robin Gareus
39e818a03a
prototype lua midi generators & filters and port event-rewrite
2016-05-29 20:36:32 +02:00
Robin Gareus
60200bf923
bump max number of possible ALSA backend channels
2016-05-29 20:36:32 +02:00
nick_m
1316fe6601
Make TempoMap::framewalk_to_beats () more correct.
2016-05-30 01:23:19 +10:00
nick_m
ecd93207ad
Fix bbt dragging wrt audio-locked tempos.
2016-05-29 06:58:24 +10:00