summaryrefslogtreecommitdiff
path: root/libs/surfaces/osc/osc_select_observer.cc
diff options
context:
space:
mode:
authorLen Ovens <len@ovenwerks.net>2017-05-10 09:42:48 -0700
committerLen Ovens <len@ovenwerks.net>2017-05-10 09:42:48 -0700
commitc8f805ef7c1c455ddd455ca6afc343afbba19db9 (patch)
treedf87043f62ba120efd68025b5cf234f6d934938c /libs/surfaces/osc/osc_select_observer.cc
parent6c97d7012784170355f5b381b2427bca1f0b90c6 (diff)
OSC: Automation feedback should match command
Diffstat (limited to 'libs/surfaces/osc/osc_select_observer.cc')
-rw-r--r--libs/surfaces/osc/osc_select_observer.cc22
1 files changed, 20 insertions, 2 deletions
diff --git a/libs/surfaces/osc/osc_select_observer.cc b/libs/surfaces/osc/osc_select_observer.cc
index 3c770b9628..35d35841d9 100644
--- a/libs/surfaces/osc/osc_select_observer.cc
+++ b/libs/surfaces/osc/osc_select_observer.cc
@@ -515,11 +515,29 @@ OSCSelectObserver::gain_message ()
void
OSCSelectObserver::gain_automation ()
{
+ float output;
as = _strip->gain_control()->alist()->automation_state();
+ switch (as) {
+ case ARDOUR::Off:
+ output = 0;
+ break;
+ case ARDOUR::Play:
+ output = 1;
+ break;
+ case ARDOUR::Write:
+ output = 2;
+ break;
+ case ARDOUR::Touch:
+ output = 3;
+ break;
+ default:
+ break;
+ }
+
if (gainmode) {
- send_float ("/select/fader/automation", as);
+ send_float ("/select/fader/automation", output);
} else {
- send_float ("/select/gain/automation", as);
+ send_float ("/select/gain/automation", output);
}
gain_message ();