LibMusicXML 3.18
musicxmlquery.h
1//
2// musicxmlquery.hpp
3// GuidoKit
4//
5// Created by Arshia Cont on 23/12/16.
6// Copyright © 2016 Antescofo SAS. All rights reserved.
7//
8
9#ifndef musicxmlquery_hpp
10#define musicxmlquery_hpp
11
12#include <stdio.h>
13#include <map>
14#include <vector>
15#include <set>
16
17#include "exports.h"
18#include "typedefs.h"
19#include "notevisitor.h"
20#include "transposevisitor.h"
21#include "partlistvisitor.h"
22#include "partsummary.h"
23#include "clefvisitor.h"
24
25namespace MusicXML2
26{
27
40 class EXP musicxmlQuery :
41 public notevisitor,
42 public transposevisitor,
43 public visitor<S_rehearsal>, // for rehearsal marks
44 public visitor<S_part>,
45 public visitor<S_staves>,
46 public partlistvisitor,
47 public clefvisitor
48 {
49 public:
51 virtual ~musicxmlQuery();
52
53 void init();
54
56
66 std::string getTransposeInstrumentName ();
67
68
73
77 std::vector<std::string> getAllClefsOfFirstPart();
78
83
84 protected:
85
86 float beatCum;
87
88 // virtual void visitStart ( S_note& elt );
89 // virtual void visitStart ( S_rehearsal& elt );
90
91 virtual void visitEnd ( S_note& elt );
92 virtual void visitEnd ( S_rehearsal& elt );
93
94 virtual void visitStart ( S_part& elt);
95 virtual void visitStart ( S_staves& elt);
96
97 void visitEnd ( S_clef& elt );
98
99 std::map<std::string, int> stavesInPart;
100 std::map<std::string, std::set<std::string> > clefsInPart;
101 std::string currentPart;
102 };
103
104
105}
106
107
108#endif /* musicxmlquery_hpp */
key element data
Definition: clefvisitor.h:35
A general musicXML visitor to access properties through a class.
Definition: musicxmlquery.h:48
A note visitor.
Definition: notevisitor.h:86
Produces a summary of a MusicXML parts for groupings.
Definition: partlistvisitor.h:72
a musicxml transpose element visitor
Definition: transposevisitor.h:36
Definition: visitor.h:27
std::vector< std::string > getAllClefsOfFirstPart()
int getTransposeInstrumentChromatic()
Query methods.