polyb302 instrument, detuning without signals
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@466 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
@@ -66,11 +66,8 @@ notePlayHandle::notePlayHandle( instrumentTrack * _it,
|
||||
setDetuning( _n.detuning() );
|
||||
if( detuning() )
|
||||
{
|
||||
connect( m_instrumentTrack,
|
||||
SIGNAL( sentMidiTime( const midiTime & ) ),
|
||||
this,
|
||||
SLOT( processMidiTime( const midiTime & ) ) );
|
||||
processMidiTime( pos() );
|
||||
m_instrumentTrack->m_processHandles.push_back( this );
|
||||
connect( detuning(), SIGNAL( valueChanged( float ) ),
|
||||
this, SLOT( updateFrequency() ) );
|
||||
}
|
||||
@@ -106,9 +103,16 @@ notePlayHandle::~notePlayHandle()
|
||||
noteOff( 0 );
|
||||
}
|
||||
|
||||
if( m_instrumentTrack != NULL && m_pluginData != NULL )
|
||||
if( m_instrumentTrack != NULL )
|
||||
{
|
||||
m_instrumentTrack->deleteNotePluginData( this );
|
||||
if( detuning() )
|
||||
{
|
||||
m_instrumentTrack->m_processHandles.remove( this );
|
||||
}
|
||||
if( m_pluginData != NULL )
|
||||
{
|
||||
m_instrumentTrack->deleteNotePluginData( this );
|
||||
}
|
||||
}
|
||||
|
||||
for( notePlayHandleVector::iterator it = m_subNotes.begin();
|
||||
|
||||
@@ -972,7 +972,13 @@ bool FASTCALL instrumentTrack::play( const midiTime & _start,
|
||||
bb_track = NULL;
|
||||
sendMidiTime( _start );
|
||||
}
|
||||
emit sentMidiTime( _start );
|
||||
|
||||
// Handle automation: detuning
|
||||
for( vlist<notePlayHandle *>::iterator it = m_processHandles.begin();
|
||||
it != m_processHandles.end(); ++it )
|
||||
{
|
||||
( *it )->processMidiTime( _start );
|
||||
}
|
||||
|
||||
if ( tcos.size() == 0 )
|
||||
{
|
||||
@@ -1349,6 +1355,7 @@ void instrumentTrack::invalidateAllMyNPH( void )
|
||||
m_notesMutex.unlock();
|
||||
|
||||
// invalidate all note-play-handles linked to this channel
|
||||
m_processHandles.clear();
|
||||
eng()->getMixer()->checkValidityOfPlayHandles();
|
||||
|
||||
m_trackType = INSTRUMENT_TRACK;
|
||||
|
||||
Reference in New Issue
Block a user