|
LibMusicXML 3.22
|
An xml tree browser that "unroll" the score. More...
#include <unrolled_xml_tree_browser.h>
Protected Attributes | |
| basevisitor * | fVisitor |
| ctree< xmlelement >::literator | fFirstMeasure |
| the first measure iterator | |
| ctree< xmlelement >::literator | fForwardRepeat |
| the forward repeat location | |
| ctree< xmlelement >::literator | fEndIterator |
| indicates the end of to visit | |
| ctree< xmlelement >::literator | fNextIterator |
| indicates the next elt to visit | |
| ctree< xmlelement >::literator | fSegnoIterator |
| the segno location | |
| ctree< xmlelement >::literator | fCodaIterator |
| the segno location | |
| ctree< xmlelement >::literator * | fStoreIterator |
| a pointer to store the current iterator | |
| int | fStoreDelay |
| an iterations counter for delayed store | |
To "unroll" the score, structural information denoted by repeat, ending, coda and segno signs is interpreted and the score is visited similarly to a musician that would play the score ie: for example a section repeated twice is visited twice.
The unrolled_xml_tree_browser makes use of iterators collected along the visit and makes arbitrary jumps to these iterators to modify the tree visit. These iterators are expected to contains S_measure iterators only. This is ensured by the visit(S_part) method.
When visiting measures, forwarding the visit to the embedded visitor depends on the current state. In particular, it is verified that the current time a given measure is played corresponds to the expected time (if any), and that we're not currently jumping to a coda, which location could be unknown at the time of the jump.
|
virtual |
Implements browser< xmlelement >.
Reimplemented from visitor< S_ending >.
Reimplemented from visitor< S_measure >.
Reimplemented from visitor< S_part >.
Reimplemented from visitor< S_repeat >.
Reimplemented from visitor< S_sound >.
|
virtual |
Reimplemented from visitor< Sxmlelement >.