diff --git a/ChangeLog b/ChangeLog index bc0fc051c..352fe582f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-01-04 Tobias Doerffel + + * plugins/stk/mallets/mallets.h: + * plugins/stk/mallets/mallets.cpp: + fixed outstanding issues with LED-checkbox and its model + 2008-01-04 Tobias Doerffel * include/group_box.h: diff --git a/plugins/stk/mallets/mallets.cpp b/plugins/stk/mallets/mallets.cpp index b72d27dfe..4d1fb4419 100644 --- a/plugins/stk/mallets/mallets.cpp +++ b/plugins/stk/mallets/mallets.cpp @@ -1,7 +1,7 @@ /* * mallets.cpp - tuned instruments that one would bang upon * - * Copyright (c) 2006-2007 Danny McRae + * Copyright (c) 2006-2008 Danny McRae * * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net * @@ -73,7 +73,7 @@ malletsInstrument::malletsInstrument( instrumentTrack * _channel_track ): m_pressureModel(64.0f, 0.0f, 128.0f, 0.1f, this), m_motionModel(64.0f, 0.0f, 128.0f, 0.1f, this), m_velocityModel(64.0f, 0.0f, 128.0f, 0.1f, this), - m_strike(NULL), + m_strikeModel( FALSE, FALSE, TRUE, boolModel::defaultRelStep(), this ), m_presetsModel(this), m_spreadModel(0, 0, 255, 1, this) { @@ -90,6 +90,7 @@ malletsInstrument::malletsInstrument( instrumentTrack * _channel_track ): m_pressureModel.setTrack( _channel_track ); m_motionModel.setTrack( _channel_track ); m_velocityModel.setTrack( _channel_track ); + m_strikeModel.setTrack( _channel_track ); m_spreadModel.setTrack( _channel_track ); // ModalBar @@ -161,11 +162,8 @@ void malletsInstrument::saveSettings( QDomDocument & _doc, QDomElement & _this ) m_motionModel.saveSettings( _doc, _this, "motion" ); m_vibratoModel.saveSettings( _doc, _this, "vibrato" ); m_velocityModel.saveSettings( _doc, _this, "velocity" ); - if( m_strike != NULL ) - { - m_strike->model()->saveSettings( _doc, _this, "strike" ); - } - + m_strikeModel.saveSettings( _doc, _this, "strike" ); + m_presetsModel.saveSettings( _doc, _this, "preset" ); m_spreadModel.saveSettings( _doc, _this, "spread" ); } @@ -194,11 +192,8 @@ void malletsInstrument::loadSettings( const QDomElement & _this ) m_motionModel.loadSettings( _this, "motion" ); m_vibratoModel.loadSettings( _this, "vibrato" ); m_velocityModel.loadSettings( _this, "velocity" ); - if( m_strike != NULL ) - { - m_strike->model()->loadSettings( _this, "strike" ); - } - + m_strikeModel.loadSettings( _this, "strike" ); + m_presetsModel.loadSettings( _this, "preset" ); m_spreadModel.loadSettings( _this, "spread" ); } @@ -262,7 +257,7 @@ void malletsInstrument::playNote( notePlayHandle * _n, bool ) m_motionModel.value(), m_vibratoModel.value(), p - 10, - m_strike->value() * 128.0, + m_strikeModel.value() * 128.0, m_velocityModel.value(), (Uint8) m_spreadModel.value(), engine::getMixer()->sampleRate() ); @@ -275,7 +270,7 @@ void malletsInstrument::playNote( notePlayHandle * _n, bool ) sample_t add_scale = 0.0f; if( p == 10 ) { - add_scale = static_cast( m_strike->value() ) * freq * 2.5f; + add_scale = static_cast( m_strikeModel.value() ) * freq * 2.5f; } for( fpp_t frame = 0; frame < frames; ++frame ) { @@ -455,9 +450,7 @@ QWidget * malletsInstrumentView::setupBandedWGControls( QWidget * _parent ) m_strikeLED = new ledCheckBox( tr( "Bowed" ), widget, tr( "Bowed" ) ); m_strikeLED->move( 165, 30 ); - m_strikeLED->model()->setTrack( castModel()->getInstrumentTrack() ); - castModel()->m_strike = m_strikeLED; - + m_pressureKnob = new knob( knobBright_26, widget, tr( "Pressure" ) ); m_pressureKnob->setLabel( tr( "Pressure" ) ); m_pressureKnob->move( 56, 86 ); @@ -501,7 +494,7 @@ void malletsInstrumentView::modelChanged( void ) m_motionKnob->setModel( &inst->m_motionModel ); m_vibratoKnob->setModel( &inst->m_vibratoModel ); m_velocityKnob->setModel( &inst->m_velocityModel ); - //m_strikeLED->setModel( &inst->m_strikeModel ); + m_strikeLED->setModel( &inst->m_strikeModel ); m_presetsCombo->setModel( &inst->m_presetsModel ); m_spreadKnob->setModel( &inst->m_spreadModel ); } diff --git a/plugins/stk/mallets/mallets.h b/plugins/stk/mallets/mallets.h index 3ad500da8..31a396642 100644 --- a/plugins/stk/mallets/mallets.h +++ b/plugins/stk/mallets/mallets.h @@ -1,7 +1,7 @@ /* * mallets.h - tuned instruments that one would bang upon * - * Copyright (c) 2006-2007 Danny McRae + * Copyright (c) 2006-2008 Danny McRae * * * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net @@ -107,7 +107,7 @@ public: protected: Instrmnt * m_voice; - + StkFloat * m_delay; Uint8 m_delayRead; Uint8 m_delayWrite; @@ -141,30 +141,31 @@ private: knobModel m_vibratoGainModel; knobModel m_vibratoFreqModel; knobModel m_stickModel; - + knobModel m_modulatorModel; knobModel m_crossfadeModel; knobModel m_lfoSpeedModel; knobModel m_lfoDepthModel; knobModel m_adsrModel; - + knobModel m_pressureModel; knobModel m_motionModel; knobModel m_vibratoModel; knobModel m_velocityModel; - - // FIXME: Can't change the model of a ledCheckBox. - ledCheckBox * m_strike; - + + boolModel m_strikeModel; + comboBoxModel m_presetsModel; knobModel m_spreadModel; - + QVector m_scalers; sampleFrame * m_buffer; - + bool m_filesMissing; - + + friend class malletsInstrumentView; + } ; @@ -175,39 +176,39 @@ public: malletsInstrumentView( malletsInstrument * _instrument, QWidget * _parent ); virtual ~malletsInstrumentView( void ); - + public slots: void changePreset( void ); private: virtual void modelChanged( void ); - + void setWidgetBackground( QWidget * _widget, const QString & _pic ); QWidget * setupModalBarControls( QWidget * _parent ); QWidget * setupTubeBellControls( QWidget * _parent ); QWidget * setupBandedWGControls( QWidget * _parent ); - + QWidget * m_modalBarWidget; knob * m_hardnessKnob; knob * m_positionKnob; knob * m_vibratoGainKnob; knob * m_vibratoFreqKnob; knob * m_stickKnob; - + QWidget * m_tubeBellWidget; knob * m_modulatorKnob; knob * m_crossfadeKnob; knob * m_lfoSpeedKnob; knob * m_lfoDepthKnob; knob * m_adsrKnob; - + QWidget * m_bandedWGWidget; knob * m_pressureKnob; knob * m_motionKnob; knob * m_vibratoKnob; knob * m_velocityKnob; ledCheckBox * m_strikeLED; - + comboBox * m_presetsCombo; knob * m_spreadKnob; };