Browse Source

Mixer: Don't die when spatialization plugin is removed.

tags/non-daw-v1.2.0
Jonathan Moore Liles 12 years ago
parent
commit
f5eaf5bc2d
2 changed files with 17 additions and 7 deletions
  1. +2
    -3
      mixer/src/Mixer_Strip.C
  2. +15
    -4
      mixer/src/Module.C

+ 2
- 3
mixer/src/Mixer_Strip.C View File

@@ -351,12 +351,11 @@ Mixer_Strip::handle_module_added ( Module *m )
void
Mixer_Strip::handle_module_removed ( Module *m )
{

if ( spatialization_controller->control_output[0].connected() &&
spatialization_controller->control_output[0].connected_port()->module() == m )
{
spatialization_controller->hide();
DMESSAGE( "Module \"%s\" disconnected from spatialization controller", m->name() );
set_spatializer_visibility();
DMESSAGE( "Module \"%s\" disconnected from spatialization controller", m->label() );
}
}



+ 15
- 4
mixer/src/Module.C View File

@@ -58,9 +58,9 @@ Module::Module ( int W, int H, const char *L ) : Fl_Group( 0, 0, W, H, L )

Module::Module ( bool is_default, int W, int H, const char *L ) : Fl_Group( 0, 0, W, H, L ), Loggable( !is_default )
{
this->is_default( is_default );

init();

this->is_default( is_default );
}

Module::Module ( ) : Fl_Group( 0, 0, 50, 50, "Unnamed" )
@@ -88,9 +88,20 @@ Module::~Module ( )
if ( control_input[i].connected() )
{
Module *o = (Module*)control_input[i].connected_port()->module();
if ( ! o->is_default() )
{
control_input[i].disconnect();

DMESSAGE( "Deleting connected module %s", o->label() );
delete o;
}
else
{
control_input[i].disconnect();
}

control_input[i].disconnect();
delete o;
}

control_input[i].destroy_osc_port();


Loading…
Cancel
Save