Canorus  0.7
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
playable.h
Go to the documentation of this file.
1 
8 #ifndef PLAYABLE_H_
9 #define PLAYABLE_H_
10 
11 #include "core/muselement.h"
12 #include "core/staff.h"
13 #include "core/playablelength.h"
14 #include "core/tuplet.h"
15 
16 class CAVoice;
17 
18 class CAPlayable : public CAMusElement {
19 public:
21  virtual ~CAPlayable();
22 
25  virtual CAPlayable* clone(CAContext* context) { CAPlayable* pl = clone(); pl->setContext(context); }
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();
39  void calculateTimeLength();
40 
41 protected:
45 };
46 #endif /* PLAYABLE_H_ */
CATuplet * tuplet()
Definition: playable.h:28
CAContext * _context
Definition: muselement.h:78
virtual ~CAPlayable()
Definition: playable.cpp:50
Class used for tuplets (triplets, duols etc.)
Definition: tuplet.h:16
void resetTime()
Definition: playable.cpp:83
CAContext * setContext(CAContext *context)
Definition: muselement.h:46
CAPlayableLength _playableLength
Definition: playable.h:42
bool isFirstInTuplet()
Definition: playable.h:35
Class which represents a voice in the staff.
Definition: voice.h:22
void calculateTimeLength()
Definition: playable.cpp:69
virtual CAPlayable * clone(CAContext *context)
Definition: playable.h:25
CAVoice * voice()
Definition: playable.h:31
virtual int timeStart()
Definition: muselement.h:48
CAPlayableLength & playableLength()
Definition: playable.h:23
Musical length of notes and rests.
Definition: playablelength.h:16
CAPlayable * lastNote()
Definition: tuplet.h:37
virtual int timeLength()
Definition: muselement.h:50
CAPlayable(CAPlayableLength length, CAVoice *voice, int timeStart, int timeLength=-1)
Definition: playable.cpp:32
An abstract class which represents every music element in the score.
Definition: muselement.h:20
CAStaff * staff()
Definition: playable.h:33
Playable instances of music elements.
Definition: playable.h:18
void setVoice(CAVoice *v)
Definition: playable.cpp:58
Represents a staff in the sheet.
Definition: staff.h:24
bool isLastInTuplet()
Definition: playable.h:36
void setTuplet(CATuplet *t)
Definition: playable.h:29
CAContext * context()
Definition: muselement.h:45
CATuplet * _tuplet
Definition: playable.h:44
CAVoice * _voice
Definition: playable.h:43
CAPlayable * firstNote()
Definition: tuplet.h:36
Line of music elements in the sheet.
Definition: context.h:16
void setPlayableLength(CAPlayableLength &l)
Definition: playable.h:24