* completely new automation-system with automation-tracks and automation-patterns as well as song-global automation

* made modelView take a QWidget-pointer argument
* trackContentObject-ctor now calls track::addTCO() directly
* optimize various loops to use iterators/const_iterators instead of a running index variable
* drag'n'drop doesn't fool around with pointers anymore - instead use unique journalling-IDs
* moved drag'n'drop handling code from knob to automatableModelView so that all controls can benefit from that



git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1164 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
Tobias Doerffel
2008-06-23 22:36:33 +00:00
parent 81ec8833f5
commit 9bebe4325b
98 changed files with 1321 additions and 1088 deletions

View File

@@ -86,11 +86,6 @@ audioFileProcessor::audioFileProcessor( instrumentTrack * _instrument_track ) :
this, SLOT( startPointModelChanged() ) );
connect( &m_endPointModel, SIGNAL( dataChanged() ),
this, SLOT( endPointModelChanged() ) );
m_ampModel.setTrack( _instrument_track );
m_startPointModel.setTrack( _instrument_track );
m_endPointModel.setTrack( _instrument_track );
m_reverseModel.setTrack( _instrument_track );
m_loopModel.setTrack( _instrument_track );
}

View File

@@ -64,11 +64,6 @@ kickerInstrument::kickerInstrument( instrumentTrack * _instrument_track ) :
m_distModel( 0.8f, 0.0f, 100.0f, 0.1f, this, tr( "Distortion" ) ),
m_gainModel( 1.0f, 0.1f, 5.0f, 0.05f, this, tr( "Gain" ) )
{
m_startFreqModel.setTrack( _instrument_track );
m_endFreqModel.setTrack( _instrument_track );
m_decayModel.setTrack( _instrument_track );
m_distModel.setTrack( _instrument_track );
m_gainModel.setTrack( _instrument_track );
}

View File

@@ -27,12 +27,10 @@
#include "ladspa_effect.h"
ladspaControls::ladspaControls( ladspaEffect * _eff,
track * _track ) :
ladspaControls::ladspaControls( ladspaEffect * _eff ) :
effectControls( _eff ),
m_effect( _eff ),
m_processors( _eff->getProcessorCount() ),
m_track( _track ),
m_noLink( FALSE ),
m_stereoLinkModel( TRUE, this )
{
@@ -52,7 +50,6 @@ ladspaControls::ladspaControls( ladspaEffect * _eff,
if( (*it)->proc == proc )
{
(*it)->control = new ladspaControl( this, *it,
m_track,
linked_control );
last_port = (*it)->data_type;

View File

@@ -39,7 +39,7 @@ class ladspaControls : public effectControls
{
Q_OBJECT
public:
ladspaControls( ladspaEffect * _eff, track * _track );
ladspaControls( ladspaEffect * _eff );
virtual ~ladspaControls();
inline int getControlCount( void )
@@ -69,7 +69,6 @@ private:
ladspaEffect * m_effect;
ch_cnt_t m_processors;
ch_cnt_t m_controlCount;
track * m_track;
bool m_noLink;
boolModel m_stereoLinkModel;
QVector<control_list_t> m_controls;

View File

@@ -488,10 +488,7 @@ void ladspaEffect::pluginInstantiation( void )
{
manager->activate( m_key, m_handles[proc] );
}
track * t = dynamic_cast<effectChain *>( parent() ) ?
dynamic_cast<effectChain *>( parent() )->getTrack() :
NULL;
m_controls = new ladspaControls( this, t );
m_controls = new ladspaControls( this );
}

View File

@@ -362,22 +362,6 @@ lb302Synth::lb302Synth( instrumentTrack * _instrumentTrack ) :
connect( &wave_knob, SIGNAL( dataChanged( ) ),
this, SLOT ( waveChanged( )));
vcf_cut_knob.setTrack( _instrumentTrack );
vcf_res_knob.setTrack( _instrumentTrack );
vcf_mod_knob.setTrack( _instrumentTrack );
vcf_dec_knob.setTrack( _instrumentTrack );
vco_fine_detune_knob.setTrack( _instrumentTrack );
dist_knob.setTrack( _instrumentTrack );
wave_knob.setTrack( _instrumentTrack );
slide_dec_knob.setTrack( _instrumentTrack );
slideToggle.setTrack( _instrumentTrack );
accentToggle.setTrack( _instrumentTrack );
deadToggle.setTrack( _instrumentTrack );
db24Toggle.setTrack( _instrumentTrack );
// SYNTH

View File

@@ -182,7 +182,8 @@ invalid_format:
automationPattern * tap = _tc->tempoAutomationPattern();
if( tap != NULL )
{
tap->object()->setValue( 120 );
#warning BLAH
// tap->firstObject()->setValue( 120 );
tap->putValue( 0, 120 );
}

View File

@@ -73,8 +73,8 @@ QPixmap * organicInstrumentView::s_artwork = NULL;
***********************************************************************/
organicInstrument::organicInstrument( instrumentTrack * _channel_track ) :
instrument( _channel_track, &organic_plugin_descriptor ),
organicInstrument::organicInstrument( instrumentTrack * _instrument_track ) :
instrument( _instrument_track, &organic_plugin_descriptor ),
m_modulationAlgo( oscillator::SignalMix ),
m_fx1Model( 0.0f, 0.0f, 0.99f, 0.01f , this, tr( "Distortion" ) ),
m_volModel( 100.0f, 0.0f, 200.0f, 1.0f, this, tr( "Volume" ) )
@@ -84,7 +84,7 @@ organicInstrument::organicInstrument( instrumentTrack * _channel_track ) :
m_osc = new oscillatorObject*[ m_numOscillators ];
for (int i=0; i < m_numOscillators; i++)
{
m_osc[i] = new oscillatorObject( this, _channel_track, i );
m_osc[i] = new oscillatorObject( this, i );
m_osc[i]->m_numOscillators = m_numOscillators;
// Connect events
@@ -97,11 +97,6 @@ organicInstrument::organicInstrument( instrumentTrack * _channel_track ) :
connect( &m_osc[i]->m_detuneModel, SIGNAL( dataChanged() ),
m_osc[i], SLOT( updateDetuning() ) );
m_osc[i]->m_oscModel.setTrack( _channel_track );
m_osc[i]->m_volModel.setTrack( _channel_track );
m_osc[i]->m_panModel.setTrack( _channel_track );
m_osc[i]->m_detuneModel.setTrack( _channel_track );
m_osc[i]->updateVolume();
}
@@ -498,7 +493,7 @@ void organicInstrumentView::modelChanged( void )
oscillatorObject::oscillatorObject( model * _parent, track * _track, int _index ) :
oscillatorObject::oscillatorObject( model * _parent, int _index ) :
model( _parent ),
m_waveShape( oscillator::SineWave, 0, oscillator::NumWaveShapes-1, this ),
m_oscModel( 0.0f, 0.0f, 5.0f, 1.0f,

View File

@@ -60,7 +60,7 @@ private:
float m_phaseOffsetLeft;
float m_phaseOffsetRight;
oscillatorObject( model * _parent, track * _track, int _index );
oscillatorObject( model * _parent, int _index );
virtual ~oscillatorObject();
friend class organicInstrument;
@@ -79,7 +79,7 @@ class organicInstrument : public instrument
{
Q_OBJECT
public:
organicInstrument( instrumentTrack * _channel_track );
organicInstrument( instrumentTrack * _instrument_track );
virtual ~organicInstrument();
virtual void playNote( notePlayHandle * _n, bool _try_parallelizing,

View File

@@ -78,22 +78,6 @@ malletsInstrument::malletsInstrument( instrumentTrack * _instrument_track ):
m_spreadModel(0, 0, 255, 1, this, tr( "Spread" )),
m_filesMissing( FALSE )
{
m_hardnessModel.setTrack( _instrument_track );
m_positionModel.setTrack( _instrument_track );
m_vibratoGainModel.setTrack( _instrument_track );
m_vibratoFreqModel.setTrack( _instrument_track );
m_stickModel.setTrack( _instrument_track );
m_modulatorModel.setTrack( _instrument_track );
m_crossfadeModel.setTrack( _instrument_track );
m_lfoSpeedModel.setTrack( _instrument_track );
m_lfoDepthModel.setTrack( _instrument_track );
m_adsrModel.setTrack( _instrument_track );
m_pressureModel.setTrack( _instrument_track );
m_motionModel.setTrack( _instrument_track );
m_velocityModel.setTrack( _instrument_track );
m_strikeModel.setTrack( _instrument_track );
m_spreadModel.setTrack( _instrument_track );
// ModalBar
m_presetsModel.addItem( tr( "Marimba" ) );
m_scalers.append( 4.0 );

View File

@@ -65,7 +65,7 @@ plugin::descriptor PLUGIN_EXPORT tripleoscillator_plugin_descriptor =
oscillatorObject::oscillatorObject( model * _parent, track * _track, int _idx ) :
oscillatorObject::oscillatorObject( model * _parent, int _idx ) :
model( _parent ),
m_volumeModel( DefaultVolume / NUM_OF_OSCILLATORS, MinVolume,
MaxVolume, 1.0f, this, tr( "Osc %1 volume" ).arg( _idx+1 ) ),
@@ -96,16 +96,6 @@ oscillatorObject::oscillatorObject( model * _parent, track * _track, int _idx )
m_phaseOffsetLeft( 0.0f ),
m_phaseOffsetRight( 0.0f )
{
m_volumeModel.setTrack( _track );
m_panModel.setTrack( _track );
m_coarseModel.setTrack( _track );
m_fineLeftModel.setTrack( _track );
m_fineRightModel.setTrack( _track );
m_phaseOffsetModel.setTrack( _track );
m_stereoPhaseDetuningModel.setTrack( _track );
m_waveShapeModel.setTrack( _track );
m_modulationAlgoModel.setTrack( _track );
// Connect knobs with oscillators' inputs
connect( &m_volumeModel, SIGNAL( dataChanged() ),
this, SLOT( updateVolume() ) );
@@ -225,7 +215,7 @@ tripleOscillator::tripleOscillator( instrumentTrack * _instrument_track ) :
{
for( int i = 0; i < NUM_OF_OSCILLATORS; ++i )
{
m_osc[i] = new oscillatorObject( this, _instrument_track, i );
m_osc[i] = new oscillatorObject( this, i );
}

View File

@@ -46,7 +46,7 @@ class oscillatorObject : public model
{
Q_OBJECT
public:
oscillatorObject( model * _parent, track * _track, int _idx );
oscillatorObject( model * _parent, int _idx );
virtual ~oscillatorObject();

View File

@@ -54,7 +54,7 @@ nineButtonSelector::nineButtonSelector( QPixmap _button0_on,
QWidget * _parent ):
QWidget( _parent ),
intModelView( new nineButtonSelectorModel(0, 8, _default, NULL,
QString::null, TRUE ) )
QString::null, TRUE ), this )
{
setFixedSize( 50, 50 );
m_base = QPixmap::grabWidget( _parent, _x, _y );