Browse Source

Mixer: Fix plugin bypass and plugin insertion broken by 8b9ef85.

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

+ 2
- 2
mixer/src/Module.H View File

@@ -351,8 +351,8 @@ public:
return control_output.size();
}

bool bypass ( void ) const { return _bypass; }
void bypass ( bool v ) { _bypass = v; redraw(); }
virtual bool bypass ( void ) const { return _bypass; }
virtual void bypass ( bool v ) { _bypass = v; redraw(); }

int control_input_port_index ( Port *p )
{


+ 12
- 4
mixer/src/Plugin_Module.C View File

@@ -669,10 +669,13 @@ Plugin_Module::set_output_buffer ( int n, void *buf )
void
Plugin_Module::activate ( void )
{
DMESSAGE( "Activating plugin \"%s\"", label() );

if ( _active )
FATAL( "Attempt to activate already active plugin" );

chain()->engine()->lock();
if ( chain() )
chain()->engine()->lock();

if ( _idata->descriptor->activate )
for ( unsigned int i = 0; i < _idata->handle.size(); ++i )
@@ -680,13 +683,17 @@ Plugin_Module::activate ( void )

_active = true;

chain()->engine()->unlock();
if ( chain() )
chain()->engine()->unlock();
}

void
Plugin_Module::deactivate( void )
{
chain()->engine()->lock();
DMESSAGE( "Deactivating plugin \"%s\"", label() );

if ( chain() )
chain()->engine()->lock();

_active = false;
@@ -694,7 +701,8 @@ Plugin_Module::deactivate( void )
for ( unsigned int i = 0; i < _idata->handle.size(); ++i )
_idata->descriptor->deactivate( _idata->handle[i] );

chain()->engine()->unlock();
if ( chain() )
chain()->engine()->unlock();
}

void


+ 1
- 1
mixer/src/Plugin_Module.H View File

@@ -66,7 +66,7 @@ private:

ImplementationData *_idata;

bool _active;
volatile bool _active;
int _plugin_ins;
int _plugin_outs;
bool _crosswire;


Loading…
Cancel
Save