Canorus 0.0
playable.h
Go to the documentation of this file.
1
8#ifndef PLAYABLE_H_
9#define PLAYABLE_H_
10
11#include "score/muselement.h"
12#include "score/staff.h"
14#include "score/tuplet.h"
15
16class CAVoice;
17
18class CAPlayable : public CAMusElement {
19public:
21 virtual ~CAPlayable();
22
25 virtual CAPlayable* clone(CAContext* context) { CAPlayable* pl = clone(); pl->setContext(context); return pl; }
26 virtual CAPlayable* clone(CAVoice* voice=0)=0;
27
28 CATuplet *tuplet() { return _tuplet; }
29 void setTuplet( CATuplet *t ) { _tuplet = t; }
30
31 inline CAVoice *voice() { return _voice; }
32 void setVoice(CAVoice *v);
33 inline CAStaff* staff() { return static_cast<CAStaff*>(_context); }
34
35 inline bool isFirstInTuplet() { return ( _tuplet && _tuplet->firstNote()==this); }
36 inline bool isLastInTuplet() { return ( _tuplet && _tuplet->lastNote()==this); }
37
38 void resetTime();
40
41protected:
45};
46#endif /* PLAYABLE_H_ */
Line of music elements in the sheet.
Definition: context.h:16
An abstract class which represents every music element in the score.
Definition: muselement.h:21
virtual int timeStart() const
Definition: muselement.h:51
CAContext * context()
Definition: muselement.h:48
CAContext * _context
Definition: muselement.h:90
void setContext(CAContext *context)
Definition: muselement.h:49
virtual int timeLength() const
Definition: muselement.h:53
Musical length of notes and rests.
Definition: playablelength.h:16
Playable instances of music elements.
Definition: playable.h:18
void setVoice(CAVoice *v)
Definition: playable.cpp:58
virtual CAPlayable * clone(CAVoice *voice=0)=0
virtual CAPlayable * clone(CAContext *context)
Definition: playable.h:25
CAPlayable(CAPlayableLength length, CAVoice *voice, int timeStart, int timeLength=-1)
Definition: playable.cpp:32
bool isLastInTuplet()
Definition: playable.h:36
void resetTime()
Definition: playable.cpp:83
CAStaff * staff()
Definition: playable.h:33
CAVoice * voice()
Definition: playable.h:31
CATuplet * tuplet()
Definition: playable.h:28
CATuplet * _tuplet
Definition: playable.h:44
virtual ~CAPlayable()
Definition: playable.cpp:50
bool isFirstInTuplet()
Definition: playable.h:35
void setTuplet(CATuplet *t)
Definition: playable.h:29
CAPlayableLength _playableLength
Definition: playable.h:42
void setPlayableLength(CAPlayableLength &l)
Definition: playable.h:24
void calculateTimeLength()
Definition: playable.cpp:69
CAVoice * _voice
Definition: playable.h:43
CAPlayableLength & playableLength()
Definition: playable.h:23
Represents a staff in the sheet.
Definition: staff.h:25
Class used for tuplets (triplets, duols etc.)
Definition: tuplet.h:17
CAPlayable * lastNote()
Definition: tuplet.cpp:315
CAPlayable * firstNote()
Definition: tuplet.cpp:301
Class which represents a voice in the staff.
Definition: voice.h:23