Mixer: Save/load the control mode status of the gain controller as part of the mixer strip's state.
This commit is contained in:
parent
65095d106d
commit
474ad167ed
|
@ -76,8 +76,13 @@ Controller_Module::Controller_Module ( bool is_default ) : Module( is_default, 5
|
|||
Controller_Module::~Controller_Module ( )
|
||||
{
|
||||
Fl::remove_timeout( update_cb, this );
|
||||
|
||||
log_destroy();
|
||||
|
||||
/* shutdown JACK port, if we have one */
|
||||
mode( GUI );
|
||||
}
|
||||
|
||||
|
||||
|
||||
void
|
||||
|
@ -163,6 +168,7 @@ Controller_Module::mode ( Mode m )
|
|||
if ( ! po.activate() )
|
||||
{
|
||||
fl_alert( "Could not activate JACK port \"%s\"", po.name() );
|
||||
chain()->engine()->unlock();
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -94,6 +94,10 @@ Mixer_Strip::~Mixer_Strip ( )
|
|||
{
|
||||
DMESSAGE( "Destroying mixer strip" );
|
||||
|
||||
|
||||
/* make sure this gets destroyed before the chain */
|
||||
fader_tab->clear();
|
||||
|
||||
delete _chain;
|
||||
_chain = NULL;
|
||||
|
||||
|
@ -111,6 +115,10 @@ Mixer_Strip::get ( Log_Entry &e ) const
|
|||
e.add( ":width", width_button->value() ? "wide" : "narrow" );
|
||||
e.add( ":tab", tab_button->value() ? "signal" : "fader" );
|
||||
e.add( ":color", (unsigned long)color());
|
||||
/* since the default controllers aren't logged, we have to store
|
||||
* this setting as part of the mixer strip */
|
||||
e.add( ":gain_mode", gain_controller->mode() );
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -139,6 +147,10 @@ Mixer_Strip::set ( Log_Entry &e )
|
|||
color( (Fl_Color)atoll( v ) );
|
||||
redraw();
|
||||
}
|
||||
else if ( ! strcmp( s, ":gain_mode" ) )
|
||||
{
|
||||
_gain_controller_mode = atoi( v );
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! mixer->contains( this ) )
|
||||
|
@ -286,6 +298,7 @@ Mixer_Strip::handle_module_added ( Module *m )
|
|||
else if ( 0 == strcmp( m->name(), "Gain" ) )
|
||||
{
|
||||
gain_controller->connect_to( &m->control_input[0] );
|
||||
gain_controller->mode( (Controller_Module::Mode)_gain_controller_mode );
|
||||
}
|
||||
else if ( 0 == strcmp( m->name(), "Meter" ) )
|
||||
{
|
||||
|
@ -306,6 +319,7 @@ Mixer_Strip::init ( )
|
|||
{
|
||||
selection_color( FL_RED );
|
||||
|
||||
_gain_controller_mode = 0;
|
||||
_chain = 0;
|
||||
|
||||
// box(FL_THIN_UP_BOX);
|
||||
|
|
|
@ -83,6 +83,11 @@ public:
|
|||
|
||||
private:
|
||||
|
||||
/* used to defer setting the mode of the gain controller until the
|
||||
chain has been added and the controller connected to a default
|
||||
module */
|
||||
int _gain_controller_mode;
|
||||
|
||||
Fl_Flip_Button *width_button;
|
||||
Fl_Flip_Button *tab_button;
|
||||
Fl_Button *close_button;
|
||||
|
|
Loading…
Reference in New Issue