13
0

clear + re-init faderport at disconnect

This commit is contained in:
Robin Gareus 2017-04-18 03:20:33 +02:00
parent dbb3c47eee
commit 629b5e0446
3 changed files with 16 additions and 6 deletions

View File

@ -136,7 +136,7 @@ FaderPort8::FaderPort8 (Session& s)
FaderPort8::~FaderPort8 ()
{
cerr << "~FP8\n";
stop_midi_handling ();
disconnected ();
close ();
if (_input_port) {
@ -328,8 +328,11 @@ void
FaderPort8::disconnected ()
{
stop_midi_handling ();
for (uint8_t id = 0; id < 8; ++id) {
_ctrls.strip(id).unset_controllables ();
if (_device_active) {
for (uint8_t id = 0; id < 8; ++id) {
_ctrls.strip(id).unset_controllables ();
}
_ctrls.all_lights_off ();
}
}

View File

@ -266,9 +266,7 @@ FP8Controls::initialize ()
}
/* initally turn all lights off */
for (CtrlButtonMap::const_iterator i = _ctrlmap.begin (); i != _ctrlmap.end (); ++i) {
i->second->set_active (false);
}
all_lights_off ();
/* default modes */
button (BtnMaster).set_active (true);
@ -278,6 +276,13 @@ FP8Controls::initialize ()
FP8ButtonInterface::force_change = false;
}
void
FP8Controls::all_lights_off () const
{
for (CtrlButtonMap::const_iterator i = _ctrlmap.begin (); i != _ctrlmap.end (); ++i) {
i->second->set_active (false);
}
}
FP8ButtonInterface&
FP8Controls::button (ButtonId id)

View File

@ -137,7 +137,9 @@ public:
bool midi_event (uint8_t id, uint8_t val);
bool midi_touch (uint8_t id, uint8_t val);
bool midi_fader (uint8_t id, unsigned short val);
void initialize ();
void all_lights_off () const;
void set_fader_mode (FP8Types::FaderMode);
protected: