From 7cd212a335b8ada1ba25010f0ea0360556153488 Mon Sep 17 00:00:00 2001 From: Paul Giblock Date: Fri, 6 Jun 2008 09:39:56 +0000 Subject: [PATCH] Last commit for a few hours. Demonstrate new midi portnames - beta git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1083 0778d3d1-df1d-0410-868b-ea421aaaa00d --- ChangeLog | 8 ++++++++ include/automatable_model.h | 7 ++++++- include/controller_connection_dialog.h | 2 +- include/instrument_track.h | 1 + src/gui/controller_connection_dialog.cpp | 19 ++++++++++++++++--- src/tracks/instrument_track.cpp | 15 +++++++++++---- 6 files changed, 43 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 535f6bb44..703e882af 100644 --- a/ChangeLog +++ b/ChangeLog @@ -52,6 +52,14 @@ * include/effect_lib.h: * src/core/lfo_controller.cpp: Fix compile time warnings + + * include/automatable_model.h: + * include/instrument_track.h: + * include/controller_connection_dialog.h: + * src/gui/controller_connection_dialog.cpp: + * src/tracks/instrument_track.cpp: + Test to see if we can now generate reasonable midi-port names. We can, + the feature is very beta right now (no screenupdating, loading, etc..) 2008-06-05 Tobias Doerffel diff --git a/include/automatable_model.h b/include/automatable_model.h index 689200d33..62c63f94d 100644 --- a/include/automatable_model.h +++ b/include/automatable_model.h @@ -103,11 +103,16 @@ public: m_track = _track; } - inline bool nullTrack( void ) + inline bool nullTrack( void ) const { return( m_track == NULL ); } + inline track * getTrack( void ) const + { + return( m_track ); + } + void initAutomationPattern( void ); inline controllerConnection * getControllerConnection( void ) const diff --git a/include/controller_connection_dialog.h b/include/controller_connection_dialog.h index 2990f11b0..d032177bc 100644 --- a/include/controller_connection_dialog.h +++ b/include/controller_connection_dialog.h @@ -78,8 +78,8 @@ private: lcdSpinBox * m_midiChannelSpinBox; lcdSpinBox * m_midiControllerSpinBox; ledCheckBox * m_midiAutoDetectCheckBox; - boolModel m_midiAutoDetect; QMenu * m_readablePorts; + boolModel m_midiAutoDetect; groupBox * m_userGroupBox; comboBox * m_userController; diff --git a/include/instrument_track.h b/include/instrument_track.h index c4ca6992c..c76ce8aa2 100644 --- a/include/instrument_track.h +++ b/include/instrument_track.h @@ -144,6 +144,7 @@ public: return( m_arpeggiator.m_arpEnabledModel.value() ); } + virtual QString displayName( void ) const; signals: void instrumentChanged( void ); diff --git a/src/gui/controller_connection_dialog.cpp b/src/gui/controller_connection_dialog.cpp index 1e2021770..9d9144fdd 100644 --- a/src/gui/controller_connection_dialog.cpp +++ b/src/gui/controller_connection_dialog.cpp @@ -121,8 +121,8 @@ controllerConnectionDialog::controllerConnectionDialog( QWidget * _parent, m_readablePorts( NULL ), m_midiAutoDetect( FALSE ), m_controller( NULL ), - m_targetModel( _target_model ) - m_midiController( NULL ), + m_targetModel( _target_model ), + m_midiController( NULL ) { setWindowIcon( embed::getIconPixmap( "setup_audio" ) ); setWindowTitle( tr( "Connection Settings" ) ); @@ -295,6 +295,7 @@ controllerConnectionDialog::~controllerConnectionDialog() void controllerConnectionDialog::selectController( void ) { + // Midi if( m_midiGroupBox->model()->value() > 0 ) { if( m_midiControllerSpinBox->model()->value() > 0 ) @@ -302,10 +303,22 @@ void controllerConnectionDialog::selectController( void ) midiController * mc; mc = m_midiController->copyToMidiController( engine::getSong() ); - mc->getMidiPort()->setName( m_targetModel->displayName() ); + + if( m_targetModel->getTrack() && + !m_targetModel->getTrack()->displayName().isEmpty() ) + { + mc->getMidiPort()->setName( QString( "%1 (%2)" ). + arg( m_targetModel->getTrack()->displayName() ). + arg( m_targetModel->displayName() ) ); + } + else + { + mc->getMidiPort()->setName( m_targetModel->displayName() ); + } m_controller = mc; } } + // User else { if( m_userGroupBox->model()->value() > 0 && diff --git a/src/tracks/instrument_track.cpp b/src/tracks/instrument_track.cpp index 6cae21694..c9effab04 100644 --- a/src/tracks/instrument_track.cpp +++ b/src/tracks/instrument_track.cpp @@ -109,8 +109,8 @@ instrumentTrack::instrumentTrack( trackContainer * _tc ) : m_audioPort( tr( "unnamed_channel" ), this ), m_notes(), m_baseNoteModel( 0, 0, KeysPerOctave * NumOctaves - 1, this ), - m_volumeModel( DefaultVolume, MinVolume, MaxVolume, 1.0f, this ), - m_panningModel( DefaultPanning, PanningLeft, PanningRight, 1.0f, this ), + m_volumeModel( DefaultVolume, MinVolume, MaxVolume, 1.0f, this, tr( "Volume" ) ), + m_panningModel( DefaultPanning, PanningLeft, PanningRight, 1.0f, this, tr( "Panning" ) ), m_effectChannelModel( 0, 0, NumFxChannels, this ), m_instrument( NULL ), m_soundShaping( this ), @@ -501,6 +501,14 @@ int instrumentTrack::masterKey( notePlayHandle * _n ) const +QString instrumentTrack::displayName( void ) const +{ + return instrumentName() + ":" + name(); +} + + + + bool FASTCALL instrumentTrack::play( const midiTime & _start, const fpp_t _frames, const f_cnt_t _offset, @@ -829,8 +837,7 @@ instrumentTrackView::instrumentTrackView( instrumentTrack * _it, // creation of widgets for track-settings-widget m_tswVolumeKnob = new volumeKnob( knobSmall_17, - getTrackSettingsWidget(), - tr( "Volume" ) ); + getTrackSettingsWidget() ); m_tswVolumeKnob->setModel( &_it->m_volumeModel ); m_tswVolumeKnob->setHintText( tr( "Volume:" ) + " ", "%" ); m_tswVolumeKnob->move( 4, 4 );