LibMusicXML 3.18
bsr2BsrFinalizer.h
1/*
2 MusicXML Library
3 Copyright (C) Grame 2006-2013
4
5 This Source Code Form is subject to the terms of the Mozilla Public
6 License, v. 2.0. If a copy of the MPL was not distributed with this
7 file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
9 Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
10 research@grame.fr
11*/
12
13#ifndef ___bsr2BsrFinalizer___
14#define ___bsr2BsrFinalizer___
15
16#include "bsr.h"
17
18#include "bsrOah.h"
19
20
21namespace MusicXML2
22{
23
24//________________________________________________________________________
26
27 public visitor<S_bsrScore>,
28
29 public visitor<S_bsrSpaces>,
30
31 public visitor<S_bsrBarline>,
32
33 public visitor<S_bsrTranscriptionNotes>,
34 public visitor<S_bsrTranscriptionNotesElement>,
35
36 public visitor<S_bsrPage>,
37
38 public visitor<S_bsrPageHeading>,
39 public visitor<S_bsrMusicHeading>,
40
41 public visitor<S_bsrFootNotes>,
42
43 public visitor<S_bsrLine>,
44 public visitor<S_bsrLineContents>,
45
46 public visitor<S_bsrMeasure>,
47
48 public visitor<S_bsrNumber>,
49 public visitor<S_bsrWords>,
50
51 public visitor<S_bsrClef>,
52 public visitor<S_bsrKey>,
53 public visitor<S_bsrTime>,
54
55 public visitor<S_bsrTempo>,
56
57 public visitor<S_bsrNote>
58
59{
60 public:
61
63 S_bsrOah& bsrOpts,
64 indentedOstream& logOstream,
65 S_bsrScore bScore);
66
67 virtual ~bsr2BsrFinalizer ();
68
69 void generateFinalizedBsrScoreFromBsrScore ();
70
71 S_bsrScore getBsrScore () const
72 { return fBsrScore; }
73
74 protected:
75
76 virtual void visitStart (S_bsrScore& elt);
77 virtual void visitEnd (S_bsrScore& elt);
78
79 virtual void visitStart (S_bsrSpaces& elt);
80 virtual void visitEnd (S_bsrSpaces& elt);
81
82 virtual void visitStart (S_bsrBarline& elt);
83
84 virtual void visitStart (S_bsrTranscriptionNotes& elt);
85 virtual void visitEnd (S_bsrTranscriptionNotes& elt);
86
87 virtual void visitStart (S_bsrTranscriptionNotesElement& elt);
88 virtual void visitEnd (S_bsrTranscriptionNotesElement& elt);
89
90 virtual void visitStart (S_bsrPage& elt);
91 virtual void visitEnd (S_bsrPage& elt);
92
93 virtual void visitStart (S_bsrPageHeading& elt);
94 virtual void visitEnd (S_bsrPageHeading& elt);
95 virtual void visitStart (S_bsrMusicHeading& elt);
96 virtual void visitEnd (S_bsrMusicHeading& elt);
97
98 virtual void visitStart (S_bsrFootNotes& elt);
99 virtual void visitEnd (S_bsrFootNotes& elt);
100
101 virtual void visitStart (S_bsrLine& elt);
102 virtual void visitEnd (S_bsrLine& elt);
103 virtual void visitStart (S_bsrLineContents& elt);
104 virtual void visitEnd (S_bsrLineContents& elt);
105
106 virtual void visitStart (S_bsrMeasure& elt);
107 virtual void visitEnd (S_bsrMeasure& elt);
108
109 virtual void visitStart (S_bsrNumber& elt);
110 virtual void visitEnd (S_bsrNumber& elt);
111
112 virtual void visitStart (S_bsrWords& elt);
113 virtual void visitEnd (S_bsrWords& elt);
114
115 virtual void visitStart (S_bsrClef& elt);
116 virtual void visitEnd (S_bsrClef& elt);
117
118 virtual void visitStart (S_bsrKey& elt);
119 virtual void visitEnd (S_bsrKey& elt);
120
121 virtual void visitStart (S_bsrTime& elt);
122 virtual void visitEnd (S_bsrTime& elt);
123
124 virtual void visitStart (S_bsrTempo& elt);
125 virtual void visitEnd (S_bsrTempo& elt);
126
127 virtual void visitStart (S_bsrNote& elt);
128 virtual void visitEnd (S_bsrNote& elt);
129
130 private:
131
132 // the MSR score we're relying on
133 // ------------------------------------------------------
134 S_msrScore fBaseMsrScore;
135
136 // the BSR score we're visiting
137 // ------------------------------------------------------
138 S_bsrScore fVisitedBsrScore;
139
140 // the BSR score we're building
141 // ------------------------------------------------------
142 S_bsrScore fBsrScore;
143
144 // pages & lines
145 // ------------------------------------------------------
146
147 S_bsrPage fCurrentPage;
148 S_bsrLine fCurrentLine;
149
150 // headings
151 // ------------------------------------------------------
152
153 S_bsrPageHeading fCurrentPageHeading;
154 S_bsrMusicHeading fCurrentMusicHeading;
155
156 // foot notes
157 // ------------------------------------------------------
158
159 S_bsrFootNotes fCurrentFootNotes;
160
161 // measures
162 // ------------------------------------------------------
163
164 S_bsrMeasure fCurrentMeasure;
165
166 // options
167 // ------------------------------------------------------
168
169 S_bsrOah fBsrOah;
170
171 // log output stream
172 // ------------------------------------------------------
173
174 indentedOstream& fLogOutputStream;
175};
176
177
178}
179
180
181#endif
Definition: bsr2BsrFinalizer.h:59
Definition: utilities.h:213
Definition: visitor.h:27