Canorus 0.0
playback.h
Go to the documentation of this file.
1
8#ifndef PLAYBACK_H_
9#define PLAYBACK_H_
10
11#include <QThread>
12#include <QList>
13
14class CAMidiDevice;
15class CASheet;
16class CAMusElement;
17class CAPlayable;
18class CANote;
19class CATempo;
20
21class CAPlayback : public QThread {
22#ifndef SWIG
23Q_OBJECT
24#endif
25public:
29
30 void run();
31 void stop();
32
33 void playImmediately( QList<CAMusElement*> elts, int port );
34
35 inline const int getInitTimeStart() { return _initTimeStart; }
36 inline void setInitTimeStart(int t) { _initTimeStart = t; }
37 inline CAMidiDevice *midiDevice() { return _midiDevice; }
38 inline CASheet *sheet() { return _sheet; }
39 inline void setSheet( CASheet *s ) { _sheet = s; }
40 inline QList<CAPlayable*>& curPlaying() { return _curPlaying; }
41
42#ifndef SWIG
43public slots:
44#else
45public:
46#endif
47 void stopNow();
48
49#ifndef SWIG
50signals:
52#endif
53
54private:
55 void initPlayback();
56 void initStreams( CASheet *sheet );
57 void loopUntilPlayable( int i, bool ignoreRepeats=false );
58 void playSelectionImpl();
59 void updateSleepFactor( CATempo *t );
60
61 inline QList<CAMusElement*>& streamAt(int idx) { return _streamList[idx]; }
62 inline const QList< QList<CAMusElement*> >& streamList() { return _streamList; }
63 inline int& streamIdx( int i ) { return _streamIdx[i]; }
64 inline int& lastRepeatOpenIdx( int i ) { return _lastRepeatOpenIdx[i]; }
65
66 inline bool stopLock() { return _stopLock; }
67 inline void setStopLock(bool lock) { _stopLock = lock; }
68
70
72 inline void setMidiDevice( CAMidiDevice *d ) { _midiDevice = d; }
73
74 inline void setStop(bool stop) { _stop = stop; }
75 bool _stop;
77
79 QList<CAMusElement*> _selection;
80
83
84 QList< QList<CAMusElement*> > _streamList;
85 QList<CAPlayable*> _curPlaying; // list of currently playing notes and rests
90};
91
92#endif /* PLAYBACK_H_ */
Canorus<->Midi bridge.
Definition: mididevice.h:22
An abstract class which represents every music element in the score.
Definition: muselement.h:21
Represents a note in the score.
Definition: note.h:18
Playable instances of music elements.
Definition: playable.h:18
Audio playback of the score. This class creates playback events (usually MIDI events) for the music e...
Definition: playback.h:21
QList< CAMusElement * > _selection
Definition: playback.h:79
int & streamIdx(int i)
Definition: playback.h:63
void playImmediately(QList< CAMusElement * > elts, int port)
Definition: playback.cpp:110
int * _lastRepeatOpenIdx
Definition: playback.h:88
void setInitTimeStart(int t)
Definition: playback.h:36
void stop()
Definition: playback.cpp:352
void setStop(bool stop)
Definition: playback.h:74
bool _repeating
Definition: playback.h:87
void stopNow()
Definition: playback.cpp:362
void setStopLock(bool lock)
Definition: playback.h:67
int _initTimeStart
Definition: playback.h:81
CAPlayback(CASheet *, CAMidiDevice *)
Definition: playback.cpp:50
void initStreams(CASheet *sheet)
Definition: playback.cpp:379
void setSheet(CASheet *s)
Definition: playback.h:39
bool _stopLock
Definition: playback.h:76
bool _stop
Definition: playback.h:75
CASheet * _sheet
Definition: playback.h:69
CAMidiDevice * _midiDevice
Definition: playback.h:71
float _sleepFactor
Definition: playback.h:82
int * _streamIdx
Definition: playback.h:86
const int getInitTimeStart()
Definition: playback.h:35
QList< CAMusElement * > & streamAt(int idx)
Definition: playback.h:61
CAMidiDevice * midiDevice()
Definition: playback.h:37
bool _playSelectionOnly
Definition: playback.h:78
void setMidiDevice(CAMidiDevice *d)
Definition: playback.h:72
void updateSleepFactor(CATempo *t)
Definition: playback.cpp:267
bool stopLock()
Definition: playback.h:66
void loopUntilPlayable(int i, bool ignoreRepeats=false)
Definition: playback.cpp:423
void run()
Definition: playback.cpp:120
CASheet * sheet()
Definition: playback.h:38
void initPlayback()
Definition: playback.cpp:73
QList< CAPlayable * > _curPlaying
Definition: playback.h:85
const QList< QList< CAMusElement * > > & streamList()
Definition: playback.h:62
int & lastRepeatOpenIdx(int i)
Definition: playback.h:64
int _curTime
Definition: playback.h:89
void playSelectionImpl()
Definition: playback.cpp:282
void playbackFinished()
~CAPlayback()
Definition: playback.cpp:94
QList< CAPlayable * > & curPlaying()
Definition: playback.h:40
QList< QList< CAMusElement * > > _streamList
Definition: playback.h:84
Represents a single sheet of paper in the document.
Definition: sheet.h:22
Tempo mark.
Definition: tempo.h:14