From 690fb87f5e157569a51adcf1bf0749123eb1eacd Mon Sep 17 00:00:00 2001 From: Javier Serrano Polo Date: Mon, 5 Jun 2006 18:31:51 +0000 Subject: [PATCH] unify method to set a base note git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@147 0778d3d1-df1d-0410-868b-ea421aaaa00d --- include/instrument_track.h | 14 ++++++++++---- plugins/flp_import/flp_import.cpp | 5 +---- src/core/piano_widget.cpp | 12 +++--------- src/tracks/instrument_track.cpp | 13 +++++++++++-- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/include/instrument_track.h b/include/instrument_track.h index cdac1f1a9..00ebfb0fd 100755 --- a/include/instrument_track.h +++ b/include/instrument_track.h @@ -121,10 +121,8 @@ public: volume getVolume( void ) const; void FASTCALL setSurroundAreaPos( const QPoint & _p ); const QPoint & surroundAreaPos( void ) const; - - // base-tone stuff - void FASTCALL setBaseTone( tones _new_tone ); - void FASTCALL setBaseOctave( octaves _new_octave ); + + void FASTCALL setBaseNote( Uint32 _new_note ); inline tones baseTone( void ) const { @@ -176,6 +174,10 @@ public slots: void toggledInstrumentTrackButton( bool _on ); +signals: + void baseNoteChanged( void ); + + protected: // capture close-events for toggling instrument-track-button virtual void closeEvent( QCloseEvent * _ce ); @@ -258,6 +260,10 @@ private: friend class presetPreviewPlayHandle; friend class flpImport; + // base-tone stuff + void FASTCALL setBaseTone( tones _new_tone ); + void FASTCALL setBaseOctave( octaves _new_octave ); + signals: void noteDone( const note & _n ); diff --git a/plugins/flp_import/flp_import.cpp b/plugins/flp_import/flp_import.cpp index a7deef738..aca14421b 100644 --- a/plugins/flp_import/flp_import.cpp +++ b/plugins/flp_import/flp_import.cpp @@ -475,10 +475,7 @@ bool flpImport::tryImport( trackContainer * _tc ) case FLP_MiddleNote: data += 8; - it->setBaseTone( static_cast( data % - NOTES_PER_OCTAVE ) ); - it->setBaseOctave( static_cast( data / - NOTES_PER_OCTAVE ) ); + it->setBaseNote( data ); it->m_pianoWidget->update(); break; diff --git a/src/core/piano_widget.cpp b/src/core/piano_widget.cpp index ebd1fccf5..576f08c80 100644 --- a/src/core/piano_widget.cpp +++ b/src/core/piano_widget.cpp @@ -221,7 +221,7 @@ void pianoWidget::mousePressEvent( QMouseEvent * _me ) if( _me->button() == Qt::LeftButton ) { // get pressed key - int key_num = getKeyFromMouse( _me->pos() ); + Uint32 key_num = getKeyFromMouse( _me->pos() ); if( _me->pos().y() > PIANO_BASE ) { int y_diff = _me->pos().y() - PIANO_BASE; @@ -250,10 +250,7 @@ void pianoWidget::mousePressEvent( QMouseEvent * _me ) } else { - m_instrumentTrack->setBaseTone( static_cast( - key_num % NOTES_PER_OCTAVE ) ); - m_instrumentTrack->setBaseOctave( static_cast( - key_num / NOTES_PER_OCTAVE ) ); + m_instrumentTrack->setBaseNote( key_num ); } // and let the user see that he pressed a key... :) @@ -328,10 +325,7 @@ void pianoWidget::mouseMoveEvent( QMouseEvent * _me ) } else { - m_instrumentTrack->setBaseTone( (tones) - ( key_num % NOTES_PER_OCTAVE ) ); - m_instrumentTrack->setBaseOctave( (octaves) - ( key_num / NOTES_PER_OCTAVE ) ); + m_instrumentTrack->setBaseNote( key_num ); } } // and let the user see that he pressed a key... :) diff --git a/src/tracks/instrument_track.cpp b/src/tracks/instrument_track.cpp index 6bcb2086a..43f014624 100644 --- a/src/tracks/instrument_track.cpp +++ b/src/tracks/instrument_track.cpp @@ -821,13 +821,23 @@ const QPoint & instrumentTrack::surroundAreaPos( void ) const +void instrumentTrack::setBaseNote( Uint32 _new_note ) +{ + setBaseTone( (tones)( _new_note % NOTES_PER_OCTAVE ) ); + setBaseOctave( (octaves)( _new_note / NOTES_PER_OCTAVE ) ); + eng()->getSongEditor()->setModified(); + emit baseNoteChanged(); +} + + + + void instrumentTrack::setBaseTone( tones _new_tone ) { if( _new_tone >= C && _new_tone <= H ) { m_baseTone = _new_tone; } - eng()->getSongEditor()->setModified(); } @@ -839,7 +849,6 @@ void instrumentTrack::setBaseOctave( octaves _new_octave ) { m_baseOctave = _new_octave; } - eng()->getSongEditor()->setModified(); }