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