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 
25 namespace 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:
50  musicxmlQuery();
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
int getTransposeInstrumentChromatic()
Query methods.
std::vector< std::string > getAllClefsOfFirstPart()