summaryrefslogtreecommitdiff
path: root/libs/surfaces/faderport8/fp8_strip.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-04-18 15:01:54 +0200
committerRobin Gareus <robin@gareus.org>2017-04-18 15:01:54 +0200
commit3243e17c71bea6430826dae7dafc1adf1bf0a8b3 (patch)
tree3377e50d1f57998fd90b93f3bbf99b759a41d7bd /libs/surfaces/faderport8/fp8_strip.cc
parentbce08cf4f37b2bbd33345fb7296a6ced04eb652a (diff)
FP8: allow to re-initialize the Strips w/o restart
Diffstat (limited to 'libs/surfaces/faderport8/fp8_strip.cc')
-rw-r--r--libs/surfaces/faderport8/fp8_strip.cc24
1 files changed, 18 insertions, 6 deletions
diff --git a/libs/surfaces/faderport8/fp8_strip.cc b/libs/surfaces/faderport8/fp8_strip.cc
index 071a6e2cb0..7c4d01165f 100644
--- a/libs/surfaces/faderport8/fp8_strip.cc
+++ b/libs/surfaces/faderport8/fp8_strip.cc
@@ -58,20 +58,30 @@ FP8Strip::FP8Strip (FP8Base& b, uint8_t id)
FP8Strip::~FP8Strip ()
{
+ drop_automation_controls ();
+ _base_connection.disconnect ();
+ _button_connections.drop_connections ();
+}
+
+void
+FP8Strip::drop_automation_controls ()
+{
_fader_connection.disconnect ();
_mute_connection.disconnect ();
_solo_connection.disconnect ();
_rec_connection.disconnect ();
_pan_connection.disconnect ();
+ _x_select_connection.disconnect ();
_fader_ctrl.reset ();
_mute_ctrl.reset ();
_solo_ctrl.reset ();
_rec_ctrl.reset ();
_pan_ctrl.reset ();
-
- _base_connection.disconnect ();
- _button_connections.drop_connections ();
+ _x_select_ctrl.reset ();
+ _peak_meter.reset ();
+ _redux_ctrl.reset ();
+ _select_plugin_functor.clear ();
}
void
@@ -87,9 +97,7 @@ FP8Strip::initialize ()
_mute.reset ();
_solo.reset ();
- /* clear cached values */
- _last_fader = 65535;
- _last_meter = _last_redux = _last_barpos = 0xff;
+ drop_automation_controls ();
select_button ().set_color (0xffffffff);
select_button ().set_active (false);
@@ -116,6 +124,10 @@ FP8Strip::initialize ()
_base.tx_midi2 (0xd8 + _id, 0); // reset redux
_base.tx_midi3 (0xe0 + _id, 0, 0); // fader
+
+ /* clear cached values */
+ _last_fader = 65535;
+ _last_meter = _last_redux = _last_barpos = 0xff;
}