Browse Source

Mixer: Destroy instances of Controller_Module when the connected modules are removed.

tags/non-daw-v1.1.0
Jonathan Moore Liles 13 years ago
parent
commit
31f0d6b311
1 changed files with 12 additions and 2 deletions
  1. +12
    -2
      mixer/src/Module.C

+ 12
- 2
mixer/src/Module.C View File

@@ -71,7 +71,6 @@ Module::Module ( ) : Fl_Group( 0, 0, 50, 50, "Unnamed" )


Module::~Module ( ) Module::~Module ( )
{ {

if ( _editor ) if ( _editor )
{ {
delete _editor; delete _editor;
@@ -84,7 +83,15 @@ Module::~Module ( )
audio_output[i].disconnect(); audio_output[i].disconnect();
for ( unsigned int i = 0; i < control_input.size(); ++i ) for ( unsigned int i = 0; i < control_input.size(); ++i )
{ {
control_input[i].disconnect();
/* destroy connected Controller_Module */
if ( control_input[i].connected() )
{
Module *o = (Module*)control_input[i].connected_port()->module();

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

control_input[i].destroy_osc_port(); control_input[i].destroy_osc_port();
} }
for ( unsigned int i = 0; i < control_output.size(); ++i ) for ( unsigned int i = 0; i < control_output.size(); ++i )
@@ -95,6 +102,9 @@ Module::~Module ( )


control_input.clear(); control_input.clear();
control_output.clear(); control_output.clear();

if ( parent() )
parent()->remove( this );
} }




Loading…
Cancel
Save