update note frequency when changing base note in instrument track

git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@146 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
Javier Serrano Polo
2006-06-05 18:28:49 +00:00
parent 49506696a9
commit 5034c4f4d5
2 changed files with 25 additions and 1 deletions

View File

@@ -27,6 +27,8 @@
#ifndef _NOTE_PLAY_HANDLE_H
#define _NOTE_PLAY_HANDLE_H
#include <qobject.h>
#include "play_handle.h"
#include "basic_filters.h"
#include "note.h"
@@ -39,12 +41,15 @@ typedef vvector<notePlayHandle *> notePlayHandleVector;
typedef vvector<const notePlayHandle *> constNotePlayHandleVector;
class notePlayHandle : public playHandle, public note
class notePlayHandle : public QObject, public playHandle, public note
{
Q_OBJECT
public:
void * m_pluginData;
basicFilters<> * m_filter;
float m_frequency;
notePlayHandle( instrumentTrack * _chnl_trk, const f_cnt_t _frames_ahead,
const f_cnt_t _frames, const note & _n,
const bool _arp_note = FALSE );
@@ -191,6 +196,10 @@ private:
// sub-note)
bool m_muted; // indicates whether note is muted
private slots:
void updateFrequency( void );
} ;
#endif

View File

@@ -59,6 +59,10 @@ notePlayHandle::notePlayHandle( instrumentTrack * _it,
m_arpNote( _arp_note ),
m_muted( FALSE )
{
connect( m_instrumentTrack, SIGNAL( baseNoteChanged() ),
this, SLOT( updateFrequency() ) );
updateFrequency();
setFrames( _frames );
if( !configManager::inst()->value( "ui",
"manualchannelpiano" ).toInt() )
@@ -391,4 +395,15 @@ bool notePlayHandle::operator==( const notePlayHandle & _nph ) const
void notePlayHandle::updateFrequency( void )
{
m_frequency = m_instrumentTrack->frequency( this );
}
#include "note_play_handle.moc"
#endif