8 #ifndef __VRV_SETSCOREDEFFUNCTOR_H__
9 #define __VRV_SETSCOREDEFFUNCTOR_H__
42 FunctorCode VisitStaffDef(
StaffDef *staffDef)
override;
90 FunctorCode VisitPageEnd(
Page *page)
override;
91 FunctorCode VisitScore(
Score *score)
override;
102 std::list<Score *> m_scores;
132 bool HasOssia()
const {
return m_hasOssia; }
138 FunctorCode VisitClef(Clef *clef)
override;
139 FunctorCode VisitKeySig(KeySig *keySig)
override;
140 FunctorCode VisitLayer(Layer *layer)
override;
141 FunctorCode VisitMeasure(Measure *measure)
override;
142 FunctorCode VisitMensur(Mensur *mensur)
override;
143 FunctorCode VisitOssia(Ossia *ossia)
override;
144 FunctorCode VisitPage(Page *page)
override;
145 FunctorCode VisitProport(Proport *proport)
override;
146 FunctorCode VisitScore(Score *score)
override;
147 FunctorCode VisitScoreDef(ScoreDef *scoreDef)
override;
148 FunctorCode VisitStaff(Staff *staff)
override;
149 FunctorCode VisitStaffDef(StaffDef *staffDef)
override;
150 FunctorCode VisitStaffGrp(StaffGrp *staffGrp)
override;
151 FunctorCode VisitSystem(System *system)
override;
152 FunctorCode VisitSystemEnd(System *system)
override;
163 Score *m_currentScore;
165 ScoreDef *m_currentScoreDef;
167 StaffDef *m_currentStaffDef;
169 ScoreDef m_upcomingScoreDef;
171 Measure *m_previousMeasure;
173 System *m_currentSystem;
181 MapOfOssiaStaffNs m_ossiasAbove;
183 MapOfOssiaStaffNs m_ossiasBelow;
215 FunctorCode VisitMeasure(
Measure *measure)
override;
216 FunctorCode VisitScore(
Score *score)
override;
217 FunctorCode VisitStaff(
Staff *staff)
override;
218 FunctorCode VisitStaffGrpEnd(
StaffGrp *staffGrp)
override;
219 FunctorCode VisitSystem(
System *system)
override;
220 FunctorCode VisitSystemEnd(
System *system)
override;
235 bool m_firstScoreDef;
268 FunctorCode VisitLayer(
Layer *layer)
override;
269 FunctorCode VisitStaff(
Staff *staff)
override;
311 FunctorCode VisitGrpSym(
GrpSym *grpSym)
override;
312 FunctorCode VisitSystem(
System *system)
override;
351 FunctorCode VisitClef(
Clef *clef)
override;
352 FunctorCode VisitLayer(
Layer *layer)
override;
353 FunctorCode VisitMeasure(
Measure *measure)
override;
354 FunctorCode VisitMeasureEnd(
Measure *measure)
override;
355 FunctorCode VisitOssia(
Ossia *ossia)
override;
356 FunctorCode VisitStaff(
Staff *staff)
override;
357 FunctorCode VisitStaffEnd(
Staff *staff)
override;
358 FunctorCode VisitSystem(
System *system)
override;
367 const StaffDef *GetPreviousStaffDef(
Ossia *ossia,
int staffN);
375 Ossia *m_ossia = NULL;
376 std::map<int, StaffDef> m_staffDefs;
383 std::list<CurrentOssia> m_currentOssias;
385 std::list<CurrentOssia> m_previousOssias;
387 StaffDef m_upcomingStaffDef;
389 ScoreDef *m_currentScoreDef;
391 StaffDef *m_currentStaffDef;
393 bool m_layerOssiaStaffDef;
395 bool m_isFirstMeasure;
425 FunctorCode VisitKeySig(
KeySig *keySig)
override;
426 FunctorCode VisitLayer(
Layer *layer)
override;
427 FunctorCode VisitMeasure(
Measure *measure)
override;
428 FunctorCode VisitOssia(
Ossia *ossia)
override;
429 FunctorCode VisitPage(
Page *page)
override;
430 FunctorCode VisitStaff(
Staff *staff)
override;
431 FunctorCode VisitSystem(
System *system)
override;
448 enum StaffDefRedrawFlags {
452 REDRAW_METERSIG = 0x8,
453 REDRAW_METERSIGGRP = 0x10,
455 REDRAW_ALL = REDRAW_CLEF | REDRAW_KEYSIG | REDRAW_MENSUR | REDRAW_METERSIG | REDRAW_METERSIGGRP,
483 FunctorCode VisitStaffDef(
StaffDef *staffDef)
override;
This class stores a references of LayerElements for a staff.
Definition: horizontalaligner.h:292
This class models the MEI <clef> element.
Definition: clef.h:41
This abstract class is the base class for all mutable functors that need access to the document.
Definition: functor.h:151
This class is a hold the data and corresponds to the model of a MVC design pattern.
Definition: doc.h:41
This abstract class is the base class for all mutable functors.
Definition: functor.h:101
This class represents a MEI grpSym.
Definition: grpsym.h:30
This class models the MEI <keySig> element.
Definition: keysig.h:52
This class represents a layer in a laid-out score (Doc).
Definition: layer.h:39
This class represents a measure in a page-based score (Doc).
Definition: measure.h:46
This class models the MEI <mensur> element.
Definition: mensur.h:34
This class represents a MEI meterSigGrp.
Definition: metersiggrp.h:32
This class models the MEI <meterSig> element.
Definition: metersig.h:34
This class represents an ossia.
Definition: ossia.h:28
This class represents a page in a laid-out score (Doc).
Definition: page.h:31
This class sets the current drawing clef, key signature, etc.
Definition: setscoredeffunctor.h:22
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:36
This class represents a MEI scoreDef.
Definition: scoredef.h:135
This class optimizes the scoreDef for each system.
Definition: setscoredeffunctor.h:196
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:209
This class sets the current scoreDef wherever needed.
Definition: setscoredeffunctor.h:114
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:127
This class sets the Page::m_score and Page::m_scoreEnd pointers.
Definition: setscoredeffunctor.h:71
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:84
This class prepares the group symbol starting and ending staffDefs for drawing.
Definition: setscoredeffunctor.h:292
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:305
This class prepares the ossia staffDefs for drawing.
Definition: setscoredeffunctor.h:332
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:345
This class unsets the initial scoreDef for each system and measure.
Definition: setscoredeffunctor.h:405
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:418
This class represent a <score> in MEI.
Definition: score.h:30
This class sets the cautionary scoreDef wherever needed.
Definition: setscoredeffunctor.h:249
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:262
This class sets drawing flags for the StaffDef for indicating whether clefs, keysigs,...
Definition: setscoredeffunctor.h:464
bool ImplementsEndInterface() const override
Return true if the functor implements the end interface.
Definition: setscoredeffunctor.h:477
This class represents a MEI staffDef.
Definition: staffdef.h:37
This class represents a MEI staffGrp.
Definition: staffgrp.h:39
This class represents a staff in a laid-out score (Doc).
Definition: staff.h:110
This class represents a system in a laid-out score (Doc).
Definition: system.h:36