52class EXP xml2guidovisitor :
53public partlistvisitor,
54public transposevisitor,
55public visitor<S_score_partwise>,
56public visitor<S_movement_title>,
65 std::stack<Sguidoelement> fStack;
66 bool fGenerateComments, fGenerateStem, fGenerateBars, fGeneratePositions;
69 std::string fCurrentPartID;
70 int fCurrentStaffIndex;
72 void start (Sguidoelement& elt) { fStack.push(elt); }
73 void add (Sguidoelement& elt) {
if (fStack.size()) fStack.top()->add(elt); }
74 void push (Sguidoelement& elt) { add(elt); fStack.push(elt); }
79 cerr<<
"xml2guido: Pop() called while EMPTY! Please REPORT!"<<endl;
84 void flushPartGroup (std::string partID);
88 virtual void visitStart( S_score_partwise& elt);
89 virtual void visitStart( S_movement_title& elt);
90 virtual void visitStart( S_creator& elt);
92 virtual void visitStart( S_defaults& elt);
93 virtual void visitStart( S_part& elt);
94 virtual void visitStart ( S_staves& elt);
95 virtual void visitEnd ( S_clef& elt );
97 Sguidoelement& current () {
return fStack.top(); }
99 bool previousStaffHasLyrics;
101 int fCurrentAccoladeIndex;
108 int fEndMeasureOffset;
115 static int defaultStaffDistance;
117 std::map<std::string, int> stavesInPart;
118 std::map<std::string, std::set<std::string> > clefsInPart;
119 std::string currentPart;
127 double fTotalDuration;
130 xml2guidovisitor(
bool generateComments,
bool generateStem,
bool generateBar=
true,
int partNum = 0,
int beginMeasure = 0,
int endMeasure = 0,
int endMeasureOffset = 0);
131 virtual ~xml2guidovisitor() {}
133 Sguidoelement convert (
const Sxmlelement& xml);
137 void generatePositions (
bool state) { fGeneratePositions = state; }
141 static void addPosition ( Sxmlelement elt, Sguidoelement& tag,
float yoffset);
142 static void addPosition ( Sxmlelement elt, Sguidoelement& tag,
float yoffset,
float xoffset);
143 static void addPosY ( Sxmlelement elt, Sguidoelement& tag,
float yoffset,
float ymultiplier);
144 static void addPosX ( Sxmlelement elt, Sguidoelement& tag,
float xoffset);
145 static void addRelativeX(Sxmlelement elt, Sguidoelement& tag,
float xoffset);
146 static void addPlacement ( Sxmlelement elt, Sguidoelement& tag);
147 static float getYposition ( Sxmlelement elt,
float yoffset,
bool useDefault);
148 static float getXposition ( Sxmlelement elt,
float xoffset);
150 static void addDirection( Sxmlelement elt, Sguidoelement& tag);
163 std::string getTransposeInstrumentName ();
180 std::pair<long, long> getStartPosition() {
184 std::pair<long, long> getEndPosition() {
185 return std::pair<long, long>(fEndPosition.getNumerator(), fEndPosition.getDenominator());
188 int getTotalMeasures();
193 double getTotalDuration();
std::map< double, int > measurePositionMap
Map containing measure number and Position (double output of Rational)
Definition xml2guidovisitor.h:125