Browse Source

Fix bug in plugin input configuration.

tags/non-daw-v1.1.0
Jonathan Moore Liles 15 years ago
parent
commit
5b8040b165
1 changed files with 36 additions and 32 deletions
  1. +36
    -32
      Mixer/Plugin_Module.C

+ 36
- 32
Mixer/Plugin_Module.C View File

@@ -229,46 +229,50 @@ Plugin_Module::can_support_inputs ( int n )
bool
Plugin_Module::configure_inputs( int n )
{
if ( ninputs() == n )
return true;
int inst = _idata->handle.size();

int inst = 1;
_crosswire = false;

if ( 1 == n && plugin_ins() > 1 )
if ( ninputs() != n )
{
DMESSAGE( "Cross-wiring plugin inputs" );
_crosswire = true;
_crosswire = false;

audio_input.clear();
if ( n != ninputs() )
{
if ( 1 == n && plugin_ins() > 1 )
{
DMESSAGE( "Cross-wiring plugin inputs" );
_crosswire = true;

for ( int i = n; i--; )
audio_input.push_back( Port( this, Port::INPUT, Port::AUDIO ) );
}
else if ( n >= plugin_ins() &&
( plugin_ins() == 1 && plugin_outs() == 1 ) )
{
DMESSAGE( "Running multiple instances of plugin" );
audio_input.clear();

audio_input.clear();
audio_output.clear();
for ( int i = n; i--; )
audio_input.push_back( Port( this, Port::INPUT, Port::AUDIO ) );
}
else if ( n >= plugin_ins() &&
( plugin_ins() == 1 && plugin_outs() == 1 ) )
{
DMESSAGE( "Running multiple instances of plugin" );

for ( int i = n; i--; )
{
add_port( Port( this, Port::INPUT, Port::AUDIO ) );
add_port( Port( this, Port::OUTPUT, Port::AUDIO ) );
}
audio_input.clear();
audio_output.clear();

inst = n;
}
if ( n == plugin_ins() )
{
for ( int i = n; i--; )
{
add_port( Port( this, Port::INPUT, Port::AUDIO ) );
add_port( Port( this, Port::OUTPUT, Port::AUDIO ) );
}

}
else
{
// unsupported configuration
return false;
inst = n;
}
else if ( n == plugin_ins() )
{
DMESSAGE( "Plugin input configuration is a perfect match" );
}
else
{
DMESSAGE( "Unsupported input configuration" );
return false;
}
}
}

if ( _active )


Loading…
Cancel
Save