Let sample tracks play from any song position (#3133)
* play sampletracks from any song position * take care of TCO length * TCOs shouldn't be updated when SE window is resized * take care of zooming level * takes care on all song position changes and mute/solo tracks now * playes the sample only within the buffer limits * takes care of time signature changes * some minor code improvements (zapashcanon) * loopback one tick earlier * minor code changes * get rid off clicks by resize and scrolling song editor * removes playhandle by remove TCO * minor bugs on manipulating TCOs in Song Editor * update on add sample by playing * white spaces 1
This commit is contained in:
@@ -43,7 +43,7 @@ class Editor : public QMainWindow
|
||||
Q_OBJECT
|
||||
public:
|
||||
void setPauseIcon(bool displayPauseIcon=true);
|
||||
|
||||
QAction *playAction() const;
|
||||
protected:
|
||||
DropToolBar * addDropToolBarToTop(QString const & windowTitle);
|
||||
DropToolBar * addDropToolBar(Qt::ToolBarArea whereToAdd, QString const & windowTitle);
|
||||
|
||||
@@ -59,20 +59,27 @@ public:
|
||||
}
|
||||
|
||||
MidiTime sampleLength() const;
|
||||
|
||||
void setSampleStartFrame( f_cnt_t startFrame );
|
||||
void setSamplePlayLength( f_cnt_t length );
|
||||
virtual TrackContentObjectView * createView( TrackView * _tv );
|
||||
|
||||
|
||||
bool isPlaying() const;
|
||||
void setIsPlaying(bool isPlaying);
|
||||
|
||||
public slots:
|
||||
void setSampleBuffer( SampleBuffer* sb );
|
||||
void setSampleFile( const QString & _sf );
|
||||
void updateLength( bpm_t = 0 );
|
||||
void updateLength();
|
||||
void toggleRecord();
|
||||
void playbackPositionChanged();
|
||||
void updateTrackTcos();
|
||||
|
||||
|
||||
private:
|
||||
SampleBuffer* m_sampleBuffer;
|
||||
BoolModel m_recordModel;
|
||||
bool m_isPlaying;
|
||||
|
||||
|
||||
friend class SampleTCOView;
|
||||
@@ -102,6 +109,7 @@ public slots:
|
||||
protected:
|
||||
virtual void contextMenuEvent( QContextMenuEvent * _cme );
|
||||
virtual void mousePressEvent( QMouseEvent * _me );
|
||||
virtual void mouseReleaseEvent( QMouseEvent * _me );
|
||||
virtual void dragEnterEvent( QDragEnterEvent * _dee );
|
||||
virtual void dropEvent( QDropEvent * _de );
|
||||
virtual void mouseDoubleClickEvent( QMouseEvent * );
|
||||
@@ -143,6 +151,8 @@ public:
|
||||
return "sampletrack";
|
||||
}
|
||||
|
||||
public slots:
|
||||
void updateTcos();
|
||||
|
||||
private:
|
||||
FloatModel m_volumeModel;
|
||||
|
||||
@@ -381,6 +381,7 @@ signals:
|
||||
void timeSignatureChanged( int oldTicksPerTact, int ticksPerTact );
|
||||
void controllerAdded( Controller * );
|
||||
void controllerRemoved( Controller * );
|
||||
void updateSampleTracks();
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -71,6 +71,8 @@ public:
|
||||
void saveSettings( QDomDocument& doc, QDomElement& element );
|
||||
void loadSettings( const QDomElement& element );
|
||||
|
||||
ComboBoxModel *zoomingModel() const;
|
||||
|
||||
public slots:
|
||||
void scrolled( int new_pos );
|
||||
|
||||
@@ -158,6 +160,9 @@ protected slots:
|
||||
|
||||
void adjustUiAfterProjectLoad();
|
||||
|
||||
signals:
|
||||
void playTriggered();
|
||||
|
||||
private:
|
||||
QAction* m_addBBTrackAction;
|
||||
QAction* m_addSampleTrackAction;
|
||||
|
||||
@@ -241,6 +241,7 @@ private:
|
||||
signals:
|
||||
void positionChanged( const MidiTime & _t );
|
||||
void loopPointStateLoaded( int _n );
|
||||
void positionMarkerMoved();
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -577,6 +577,8 @@ public:
|
||||
return m_processingLock.tryLock();
|
||||
}
|
||||
|
||||
BoolModel* getMutedModel();
|
||||
|
||||
public slots:
|
||||
virtual void setName( const QString & newName )
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user