ardour.git
7 years agorearrange inheritance so that Automatable IS-A Slavable
Paul Davis [Mon, 25 Apr 2016 17:41:38 +0000 (13:41 -0400)]
rearrange inheritance so that Automatable IS-A Slavable

Share assign code via Slavable; add visibility tags to Slavable+SlavableAutomationControl

7 years agoremove explicit setting of Toggle flag for AutomationControls
Paul Davis [Mon, 25 Apr 2016 16:31:50 +0000 (12:31 -0400)]
remove explicit setting of Toggle flag for AutomationControls

Make it be based on the ParameterDescriptor, which indicates toggle status anyway

7 years agogeneralize VCA assign/unassign code.
Paul Davis [Mon, 25 Apr 2016 16:31:18 +0000 (12:31 -0400)]
generalize VCA assign/unassign code.

Need to share this approach across Slavables

7 years agoadd rec-enable and monitor controls to VCAs
Paul Davis [Mon, 25 Apr 2016 16:30:34 +0000 (12:30 -0400)]
add rec-enable and monitor controls to VCAs

7 years agosave and restore vca assignments
Paul Davis [Mon, 25 Apr 2016 15:03:08 +0000 (11:03 -0400)]
save and restore vca assignments

7 years agouse Slavable API in GUI
Paul Davis [Mon, 25 Apr 2016 01:48:05 +0000 (21:48 -0400)]
use Slavable API in GUI

7 years agoadd Slavable API for VCA assign/unassign
Paul Davis [Mon, 25 Apr 2016 01:47:52 +0000 (21:47 -0400)]
add Slavable API for VCA assign/unassign

7 years agouse setlocale() in preference to gtk_set_locale()
Paul Davis [Mon, 25 Apr 2016 01:46:39 +0000 (21:46 -0400)]
use setlocale() in preference to gtk_set_locale()

7 years agonew files
Paul Davis [Mon, 25 Apr 2016 01:46:14 +0000 (21:46 -0400)]
new files

7 years agoimprove clean-up of GUI VCA-related objects
Paul Davis [Sat, 23 Apr 2016 22:25:49 +0000 (18:25 -0400)]
improve clean-up of GUI VCA-related objects

7 years agoimprove cleanup of VCA related objects
Paul Davis [Sat, 23 Apr 2016 22:25:32 +0000 (18:25 -0400)]
improve cleanup of VCA related objects

7 years agofix compiler issues with pair<T1,T2> construction
Paul Davis [Sat, 23 Apr 2016 17:16:53 +0000 (13:16 -0400)]
fix compiler issues with pair<T1,T2> construction

7 years agofix chaining of masters for boolean controls
Paul Davis [Sat, 23 Apr 2016 17:04:08 +0000 (13:04 -0400)]
fix chaining of masters for boolean controls

7 years agorestore right-click in track/bus scroller to drive add route
Paul Davis [Sat, 23 Apr 2016 15:56:22 +0000 (11:56 -0400)]
restore right-click in track/bus scroller to drive add route

7 years agochange API for ARDOUR_UI::add_route() to no longer require a float window
Paul Davis [Sat, 23 Apr 2016 15:55:58 +0000 (11:55 -0400)]
change API for ARDOUR_UI::add_route() to no longer require a float window

7 years agouse new paned-sizing strategy in editor
Paul Davis [Sat, 23 Apr 2016 03:02:39 +0000 (23:02 -0400)]
use new paned-sizing strategy in editor

7 years agono-op: comment
Paul Davis [Sat, 23 Apr 2016 03:02:21 +0000 (23:02 -0400)]
no-op: comment

7 years agomove new fractional pane utility functions into libs/gtkmm2ext
Paul Davis [Sat, 23 Apr 2016 02:53:39 +0000 (22:53 -0400)]
move new fractional pane utility functions into libs/gtkmm2ext

7 years agoa big fat comment
Paul Davis [Sat, 23 Apr 2016 02:45:51 +0000 (22:45 -0400)]
a big fat comment

7 years agoredesign pane-sizing mechanism for mixer
Paul Davis [Sat, 23 Apr 2016 02:17:55 +0000 (22:17 -0400)]
redesign pane-sizing mechanism for mixer

This needs more comments to explain what is going on. It also needs to be applied to the editor

7 years agofix solo isolate controls
Paul Davis [Thu, 21 Apr 2016 16:32:35 +0000 (12:32 -0400)]
fix solo isolate controls

7 years agoclear all solo state should affect VCAs too
Paul Davis [Thu, 21 Apr 2016 15:08:47 +0000 (11:08 -0400)]
clear all solo state should affect VCAs too

7 years agoget VCA status correct in strips on first load
Paul Davis [Thu, 21 Apr 2016 06:58:25 +0000 (02:58 -0400)]
get VCA status correct in strips on first load

7 years agofix implicit active display in VCA strips for solo
Paul Davis [Thu, 21 Apr 2016 06:06:01 +0000 (02:06 -0400)]
fix implicit active display in VCA strips for solo

7 years agoremove Route::listening_via_monitor()
Paul Davis [Thu, 21 Apr 2016 06:02:13 +0000 (02:02 -0400)]
remove Route::listening_via_monitor()

This is better tested with direct use of the solo_control and
Config->get_solo_controls_are_listen_controls()

7 years agofix backend logic for PFL/AFL when mastered
Paul Davis [Thu, 21 Apr 2016 05:45:09 +0000 (01:45 -0400)]
fix backend logic for PFL/AFL when mastered

7 years agomove ever close to working master/slave logic, this time with audio testing
Paul Davis [Thu, 21 Apr 2016 03:22:29 +0000 (23:22 -0400)]
move ever close to working master/slave logic, this time with audio testing

7 years agoremove more debug output
Paul Davis [Tue, 19 Apr 2016 20:07:00 +0000 (16:07 -0400)]
remove more debug output

7 years agofix return type of SlavableAutomationControl::get_boolean_masters() to make it usefl
Paul Davis [Tue, 19 Apr 2016 19:43:17 +0000 (15:43 -0400)]
fix return type of SlavableAutomationControl::get_boolean_masters() to make it usefl

7 years agofix solo control to use VCA logic as worked out for mute
Paul Davis [Tue, 19 Apr 2016 19:42:50 +0000 (15:42 -0400)]
fix solo control to use VCA logic as worked out for mute

7 years agoremove debug output
Paul Davis [Tue, 19 Apr 2016 19:42:00 +0000 (15:42 -0400)]
remove debug output

7 years agofix call to base class
Paul Davis [Tue, 19 Apr 2016 19:41:50 +0000 (15:41 -0400)]
fix call to base class

7 years agodesign changes to various SlavableAutomationControls to make it possible to get the...
Paul Davis [Tue, 19 Apr 2016 17:02:40 +0000 (13:02 -0400)]
design changes to various SlavableAutomationControls to make it possible to get the logic right for boolean controls

7 years agomove SlavableAutomationControl into its own header
Paul Davis [Tue, 19 Apr 2016 17:01:57 +0000 (13:01 -0400)]
move SlavableAutomationControl into its own header

7 years agoa variety of changes that get closer to correctly functioning behaviour for VCA solo...
Paul Davis [Fri, 15 Apr 2016 04:38:03 +0000 (00:38 -0400)]
a variety of changes that get closer to correctly functioning behaviour for VCA solo+mute (BUT ARE NOT DONE YET)

7 years agodo not route AutomationControl changes to an RT thread if we are loading a session
Paul Davis [Wed, 13 Apr 2016 21:42:07 +0000 (17:42 -0400)]
do not route AutomationControl changes to an RT thread if we are loading a session

7 years agoadd Session::loading() to allow easy detection of "session is being loaded" condition
Paul Davis [Wed, 13 Apr 2016 21:41:39 +0000 (17:41 -0400)]
add Session::loading() to allow easy detection of "session is being loaded" condition

7 years agoremove some debug output
Paul Davis [Mon, 11 Apr 2016 20:46:28 +0000 (16:46 -0400)]
remove some debug output

7 years agoa slew of as-yet incomplete work to get VCA solo+mute closer to working
Paul Davis [Mon, 11 Apr 2016 20:37:51 +0000 (16:37 -0400)]
a slew of as-yet incomplete work to get VCA solo+mute closer to working

7 years agostop crash caused by missing conditional
Paul Davis [Mon, 11 Apr 2016 13:47:36 +0000 (09:47 -0400)]
stop crash caused by missing conditional

7 years agofix logic for Session::solo_control_mode_changed()
Paul Davis [Mon, 11 Apr 2016 13:47:13 +0000 (09:47 -0400)]
fix logic for Session::solo_control_mode_changed()

7 years agofix logic for removing an AutomationControl from a ControlGroup
Paul Davis [Mon, 11 Apr 2016 13:46:45 +0000 (09:46 -0400)]
fix logic for removing an AutomationControl from a ControlGroup

7 years agosome tweaks for solo logic to get things working as they were before (correctly)
Paul Davis [Sun, 10 Apr 2016 22:20:11 +0000 (18:20 -0400)]
some tweaks for solo logic to get things working as they were before (correctly)

7 years agoadd back some amount of XML save/restore for route controls
Paul Davis [Sun, 10 Apr 2016 22:19:54 +0000 (18:19 -0400)]
add back some amount of XML save/restore for route controls

7 years agoadd new enums
Paul Davis [Sun, 10 Apr 2016 22:19:04 +0000 (18:19 -0400)]
add new enums

7 years agoextend function of Automatable::control_factory() [ this may be the wrong design...
Paul Davis [Sat, 9 Apr 2016 20:16:22 +0000 (16:16 -0400)]
extend function of Automatable::control_factory() [ this may be the wrong design ... review coming ]

7 years agoadd track controls to its Automatable self
Paul Davis [Sat, 9 Apr 2016 20:15:54 +0000 (16:15 -0400)]
add track controls to its Automatable self

7 years agodo not non-automable controls to an Automatable's list of what can be automated
Paul Davis [Sat, 9 Apr 2016 20:15:26 +0000 (16:15 -0400)]
do not non-automable controls to an Automatable's list of what can be automated

7 years agoadd a new Controllable::NotAutomable flag
Paul Davis [Sat, 9 Apr 2016 20:14:18 +0000 (16:14 -0400)]
add a new Controllable::NotAutomable flag

7 years agodirect connect monitoring changes to the real RouteUI method (no-op, really)
Paul Davis [Sat, 9 Apr 2016 19:39:39 +0000 (15:39 -0400)]
direct connect monitoring changes to the real RouteUI method (no-op, really)

7 years agoadd new files to source tree
Paul Davis [Fri, 8 Apr 2016 20:51:34 +0000 (16:51 -0400)]
add new files to source tree

7 years agouniversal change in the design of the way Route/Track controls are designed and used...
Paul Davis [Fri, 8 Apr 2016 20:49:47 +0000 (16:49 -0400)]
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

7 years agoshow VCA master mute state in RouteUI, even if Config->get_show_solo_mutes() is false...
Paul Davis [Sun, 13 Mar 2016 03:59:00 +0000 (22:59 -0500)]
show VCA master mute state in RouteUI, even if Config->get_show_solo_mutes() is false (since it is orthogonal)

7 years agoadd implicit mute state to MuteMaster and use when a master of a mute control is...
Paul Davis [Sun, 13 Mar 2016 03:58:00 +0000 (22:58 -0500)]
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

7 years agochange API of Controllable::Changed signal to include (from_self, GroupControlDisposi...
Paul Davis [Fri, 11 Mar 2016 15:34:51 +0000 (10:34 -0500)]
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

7 years agouse route automation control Changed() signals for solo/mute in GUI
Paul Davis [Wed, 9 Mar 2016 18:12:42 +0000 (13:12 -0500)]
use route automation control Changed() signals for solo/mute in GUI

7 years agofix faderport and mackie to use route AutomationControls to be notified about solo...
Paul Davis [Wed, 9 Mar 2016 18:12:23 +0000 (13:12 -0500)]
fix faderport and mackie to use route AutomationControls to be notified about solo/mute changes

7 years agonew API for route solo/mute state mgmt
Paul Davis [Wed, 9 Mar 2016 18:11:53 +0000 (13:11 -0500)]
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

7 years agorearrange AutomationControl and RouteAutomationControl to get more shared logic and...
Paul Davis [Wed, 9 Mar 2016 15:26:09 +0000 (10:26 -0500)]
rearrange AutomationControl and RouteAutomationControl to get more shared logic and consistent master/slave behaviour

7 years agouse new API for control slave/master relationships
Paul Davis [Wed, 9 Mar 2016 04:29:38 +0000 (23:29 -0500)]
use new API for control slave/master relationships

7 years agoredesign control slave/master system, move code from GainControl to AutomationControl
Paul Davis [Wed, 9 Mar 2016 04:29:17 +0000 (23:29 -0500)]
redesign control slave/master system, move code from GainControl to AutomationControl

7 years agochange master records in GainControl to use AutomationControl
Paul Davis [Wed, 9 Mar 2016 03:09:43 +0000 (22:09 -0500)]
change master records in GainControl to use AutomationControl

The first step of generalizing master/slave to other controls

7 years agostart adding a context menu for VCA strips
Paul Davis [Wed, 9 Mar 2016 03:08:51 +0000 (22:08 -0500)]
start adding a context menu for VCA strips

7 years agoGUI tweaks for VCAMasterStrip, including renaming
Paul Davis [Tue, 8 Mar 2016 19:57:26 +0000 (14:57 -0500)]
GUI tweaks for VCAMasterStrip, including renaming

7 years agofollow session track-number policy in mixer strip, as is done in the editor
Paul Davis [Tue, 8 Mar 2016 19:56:51 +0000 (14:56 -0500)]
follow session track-number policy in mixer strip, as is done in the editor

7 years agotrivially change API of GainMeter but more importantly don't show meter if no Route...
Paul Davis [Tue, 8 Mar 2016 19:56:07 +0000 (14:56 -0500)]
trivially change API of GainMeter but more importantly don't show meter if no Route is set

7 years agoremove VCA active button
Paul Davis [Tue, 8 Mar 2016 16:10:20 +0000 (11:10 -0500)]
remove VCA active button

7 years agoSession API changes to enable VCAs to set soloed-by-upstream on assigned routes
Paul Davis [Tue, 8 Mar 2016 15:42:20 +0000 (10:42 -0500)]
Session API changes to enable VCAs to set soloed-by-upstream on assigned routes

7 years agomove vca assignment up to the Route level (from GainControl)
Paul Davis [Tue, 8 Mar 2016 14:22:22 +0000 (09:22 -0500)]
move vca assignment up to the Route level (from GainControl)

7 years agomove VCA assignment up to Route level
Paul Davis [Tue, 8 Mar 2016 03:20:37 +0000 (22:20 -0500)]
move VCA assignment up to Route level

7 years agodon't increment actual VCA counter when saving session state
Paul Davis [Mon, 7 Mar 2016 21:46:36 +0000 (16:46 -0500)]
don't increment actual VCA counter when saving session state

7 years agoadd required header
Paul Davis [Mon, 7 Mar 2016 21:33:15 +0000 (16:33 -0500)]
add required header

7 years agosave+restore VCA counter value across instances
Paul Davis [Mon, 7 Mar 2016 21:25:50 +0000 (16:25 -0500)]
save+restore VCA counter value across instances

7 years agoVCA solo and mute controls need to call AutomationControl::set_value() to emit a...
Paul Davis [Mon, 7 Mar 2016 20:53:44 +0000 (15:53 -0500)]
VCA solo and mute controls need to call AutomationControl::set_value() to emit a signal

7 years agouse redesigned Route and VCA object architecture/API
Paul Davis [Mon, 7 Mar 2016 20:00:17 +0000 (15:00 -0500)]
use redesigned Route and VCA object architecture/API

7 years agouse redesigned Route and VCA object architecture/API
Paul Davis [Mon, 7 Mar 2016 20:00:12 +0000 (15:00 -0500)]
use redesigned Route and VCA object architecture/API

7 years agoredesign Route and VCA objects to inherit from ARDOUR::Stripable
Paul Davis [Mon, 7 Mar 2016 19:59:40 +0000 (14:59 -0500)]
redesign Route and VCA objects to inherit from ARDOUR::Stripable

7 years agoupdate VCA assign buttons to show status for VCA strips
Paul Davis [Fri, 4 Mar 2016 21:44:46 +0000 (16:44 -0500)]
update VCA assign buttons to show status for VCA strips

7 years agocorrectly restore VCA-VCA slave/master relationships at session load time
Paul Davis [Fri, 4 Mar 2016 21:44:30 +0000 (16:44 -0500)]
correctly restore VCA-VCA slave/master relationships at session load time

7 years agofix deadlock caused by VCA=>VCA slaving and set_state()
Paul Davis [Fri, 4 Mar 2016 21:09:14 +0000 (16:09 -0500)]
fix deadlock caused by VCA=>VCA slaving and set_state()

7 years agofix incorrect selection of all strips/tracks at opening.
Paul Davis [Fri, 4 Mar 2016 20:40:44 +0000 (15:40 -0500)]
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

7 years agono self-assign for VCA masters
Paul Davis [Fri, 4 Mar 2016 20:02:56 +0000 (15:02 -0500)]
no self-assign for VCA masters

7 years agofix ambiguity in VCA constructors
Paul Davis [Fri, 4 Mar 2016 19:56:27 +0000 (14:56 -0500)]
fix ambiguity in VCA constructors

7 years agoadd GUI support for slaving VCAs to other VCAs
Paul Davis [Fri, 4 Mar 2016 19:53:13 +0000 (14:53 -0500)]
add GUI support for slaving VCAs to other VCAs

7 years agoadd solo/mute controls to VCAMasterStrip
Paul Davis [Fri, 4 Mar 2016 19:15:37 +0000 (14:15 -0500)]
add solo/mute controls to VCAMasterStrip

7 years agoadd solo/mute logic to VCA masters
Paul Davis [Fri, 4 Mar 2016 19:15:12 +0000 (14:15 -0500)]
add solo/mute logic to VCA masters

7 years agoensure that GainControl::get_value() never returns > Config->get_max_gain()
Paul Davis [Fri, 4 Mar 2016 16:42:43 +0000 (11:42 -0500)]
ensure that GainControl::get_value() never returns > Config->get_max_gain()

7 years agochange master-record management to use std::map to avoid const iterators; drop connec...
Paul Davis [Fri, 4 Mar 2016 15:06:36 +0000 (10:06 -0500)]
change master-record management to use std::map to avoid const iterators; drop connection to master Changed signal when unassigning

7 years agorevert GainMeter back to simpler code now that VCA model appears correct
Paul Davis [Fri, 4 Mar 2016 03:48:03 +0000 (22:48 -0500)]
revert GainMeter back to simpler code now that VCA model appears correct

7 years agoprobably get the design of VCAs basically correct: use a per-master ratio model
Paul Davis [Fri, 4 Mar 2016 03:47:25 +0000 (22:47 -0500)]
probably get the design of VCAs basically correct: use a per-master ratio model

See comments in the code for a bit more detail

7 years agoadd VCAMasterStrip::set_selected()
Paul Davis [Thu, 3 Mar 2016 18:28:42 +0000 (13:28 -0500)]
add VCAMasterStrip::set_selected()

7 years agofix restoration of editor pane positions
Paul Davis [Thu, 3 Mar 2016 17:02:35 +0000 (12:02 -0500)]
fix restoration of editor pane positions

7 years agoGUI modifications to improve VCA strips and their placement in the mixer
Paul Davis [Thu, 3 Mar 2016 16:47:01 +0000 (11:47 -0500)]
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.

7 years agoadjust logic for slaved faders, not necessarily correctly.
Paul Davis [Thu, 3 Mar 2016 04:46:00 +0000 (23:46 -0500)]
adjust logic for slaved faders, not necessarily correctly.

More info in the code comments.

7 years agorename GainMeter::gain_adjusted() to GainMeter::fader_moved() to be more clear
Paul Davis [Thu, 3 Mar 2016 04:45:32 +0000 (23:45 -0500)]
rename GainMeter::gain_adjusted() to GainMeter::fader_moved() to be more clear

7 years agoadd GainControl::slaved() predicate
Paul Davis [Thu, 3 Mar 2016 04:43:42 +0000 (23:43 -0500)]
add GainControl::slaved() predicate

7 years agomake GUI fader positions reflect VCA master values
Paul Davis [Wed, 2 Mar 2016 22:24:16 +0000 (17:24 -0500)]
make GUI fader positions reflect VCA master values

7 years agoforward-propagate Changed signals through VCA master-slave connections
Paul Davis [Wed, 2 Mar 2016 22:23:55 +0000 (17:23 -0500)]
forward-propagate Changed signals through VCA master-slave connections

7 years agouse VCAUpdateStatus to keep VCA button current
Paul Davis [Wed, 2 Mar 2016 17:47:10 +0000 (12:47 -0500)]
use VCAUpdateStatus to keep VCA button current

7 years agoadd VCAStatusChange message to GainControl
Paul Davis [Wed, 2 Mar 2016 17:41:27 +0000 (12:41 -0500)]
add VCAStatusChange message to GainControl