20 #ifndef BASE_MUSIC_SCORE_H 21 #define BASE_MUSIC_SCORE_H 58 template<
template<
typename>
class MeasureType =
Measure,
typename MeasureElementType =
MeasureElement>
93 const MeasureType<MeasureElementType>*
GetMeasure(
size_t n)
const;
139 csArray<MeasureType<MeasureElementType>> measures;
163 template<
template<
typename>
class MeasureType,
typename MeasureElementType>
183 bool Advance(
bool ignoreEndOfMeasure);
191 MeasureElementType* GetCurrentElement();
196 const MeasureElementType* GetCurrentElement()
const;
204 MeasureType<MeasureElementType>* GetCurrentMeasure();
209 const MeasureType<MeasureElementType>* GetCurrentMeasure()
const;
221 bool HasNext(
bool ignoreEndOfMeasure)
const;
232 void InsertElementAfter(
const MeasureElementType &element);
242 void InsertElementBefore(
const MeasureElementType &element);
252 void InsertMeasureAfter(
const MeasureType<MeasureElementType> &measure);
261 void InsertMeasureBefore(
const MeasureType<MeasureElementType> &measure);
268 bool IsEndOfMeasure()
const;
277 bool IsEndOfScore()
const;
285 bool IsValid()
const;
296 bool RemoveCurrentElement();
308 bool RemoveCurrentMeasure();
323 size_t currElementIdx;
324 size_t currMeasureIdx;
341 typename BaseMusicalScore<MeasureType, MeasureElementType>::ScoreMode mode);
349 bool CheckRepeat()
const;
360 bool HasNextWritten(
bool ignoreEndOfMeasure)
const;
368 #include "basemusicscore.hpp" 370 #endif // BASE_MUSIC_SCORE_H A measure containing measure elements.
Cursor * SetEditMode()
Set the mode to edit.
BaseMusicalScore()
Create an empty score in edit mode.
bool AdvanceCursor(bool ignoreEndOfMeasure)
Move the cursor to the next element.
This is used to keep track of everything needed to play a score and provide some utility functions fo...
Implements a musical score.
const MeasureType< MeasureElementType > * GetMeasure(size_t n) const
Return the n-th measure in the score.
const Cursor * SetPlayMode()
Set the mode to play.
This is part of the BaseMusicalScore API.
const Cursor * GetPlayCursor() const
Return the cursor if the score is in play mode.
size_t GetNMeasures() const
Return the number of measures in the score.
An element of a measure with a given duration.
Cursor * GetEditCursor()
Return the cursor if the score is in edit mode.
~BaseMusicalScore()
Destructor.