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:
BaraMGB
2017-01-05 22:31:52 +01:00
committed by Umcaruje
parent 6137fcc5a5
commit 43a77a0219
12 changed files with 208 additions and 21 deletions

View File

@@ -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);

View File

@@ -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;

View File

@@ -381,6 +381,7 @@ signals:
void timeSignatureChanged( int oldTicksPerTact, int ticksPerTact );
void controllerAdded( Controller * );
void controllerRemoved( Controller * );
void updateSampleTracks();
} ;

View File

@@ -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;

View File

@@ -241,6 +241,7 @@ private:
signals:
void positionChanged( const MidiTime & _t );
void loopPointStateLoaded( int _n );
void positionMarkerMoved();
} ;

View File

@@ -577,6 +577,8 @@ public:
return m_processingLock.tryLock();
}
BoolModel* getMutedModel();
public slots:
virtual void setName( const QString & newName )
{