Commit graph

20648 commits

Author SHA1 Message Date
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
406e9d05ce 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
a03d969a97 update VCA assign buttons to show status for VCA strips 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
cd6a88d0d4 fix incorrect selection of all strips/tracks at opening.
Old code was counting how many child nodes where in the MixerUI, assuming they
were all routes, and using that to decide if this was a from_scratch setup.
The addition of VCAs to the track_model changes that, so now we have to actually
check there are no existing Routes before doing the from_scratch setup
2016-05-31 15:30:39 -04:00
Paul Davis
6f9beb1e33 no self-assign for VCA masters 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
dc9f579a8b add GUI support for slaving VCAs to other VCAs 2016-05-31 15:30:39 -04:00
Paul Davis
9339a7b997 add solo/mute controls to VCAMasterStrip 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
a38aabfce3 revert GainMeter back to simpler code now that VCA model appears correct 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
c572d4ed9e add VCAMasterStrip::set_selected() 2016-05-31 15:30:39 -04:00
Paul Davis
4d87503863 fix restoration of editor pane positions 2016-05-31 15:30:39 -04:00
Paul Davis
419c7e95f3 GUI modifications to improve VCA strips and their placement in the mixer
Note that this includes some changes that actually make mixer pane settings get restored,
which has been broken for some time. Of course, they are not restored perfectly, yet.
2016-05-31 15:30:39 -04:00
Paul Davis
c5c6be4170 adjust logic for slaved faders, not necessarily correctly.
More info in the code comments.
2016-05-31 15:30:39 -04:00
Paul Davis
0275582b89 rename GainMeter::gain_adjusted() to GainMeter::fader_moved() to be more clear 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
8e643563e5 make GUI fader positions reflect VCA master values 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
7f244ce14d use VCAUpdateStatus to keep VCA button current 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
3be9d6dccc remove debug output 2016-05-31 15:30:39 -04:00
Paul Davis
8ce39c891b change sort ordering model in mixer and editor
This allows correct reordering of the mixer "track_model" even
when non-route elements are present.

This isn't really utilized in the Editor at present because we do
not show VCAs there at all, but it will become important in the
future when we represent VCA automation there
2016-05-31 15:30:39 -04:00
Paul Davis
75b327964b tweak mixer VCA button appearance and prepare for live updates to VCA state 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
d47dc72595 single button for VCA assignment, plus unassign now works 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
33e56e58d7 initial part of vca assignment via context menu 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
089549acb6 add 4 harrison-style vca assign buttons to the mixer strip 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