LibMusicXML 3.18
bsrTimes_MUT_DEP.h
1/*
2 This file is to be included only by bsrMutualDependencies.h,
3 to satisfy declarations mutual dependencies.
4*/
5
6//______________________________________________________________________________
7class bsrTimeItem;
8typedef SMARTP<bsrTimeItem> S_bsrTimeItem;
9
10class bsrTime;
11typedef SMARTP<bsrTime> S_bsrTime;
12
13//______________________________________________________________________________
14class bsrTimeItem : public bsrElement
15{
16 public:
17
18 // creation
19 // ------------------------------------------------------
20
21 static SMARTP<bsrTimeItem> create (
22 int inputLineNumber);
23
24 protected:
25
26 // constructors/destructor
27 // ------------------------------------------------------
28
30 int inputLineNumber);
31
32 virtual ~bsrTimeItem ();
33
34 public:
35
36 // set and get
37 // ------------------------------------------------------
38
39 const vector<int>& getTimeBeatsNumbersVector ()
40 { return fTimeBeatsNumbersVector; }
41
42 void setTimeBeatValue (int timeBeatValue);
43
44 int getTimeBeatValue () const
45 { return fTimeBeatValue; }
46
47 // services
48 // ------------------------------------------------------
49
50 bool isEqualTo (S_bsrTimeItem otherTimeItem) const;
51
52 void appendBeatsNumber (int beatsNumber);
53
54 int getTimeBeatsNumber () const;
55
56 public:
57
58 // visitors
59 // ------------------------------------------------------
60
61 virtual void acceptIn (basevisitor* v);
62 virtual void acceptOut (basevisitor* v);
63
64 virtual void browseData (basevisitor* v);
65
66 public:
67
68 // print
69 // ------------------------------------------------------
70
71 string asString () const;
72
73 virtual void print (ostream& os) const;
74
75 private:
76
77 // fields
78 // ------------------------------------------------------
79
80 vector<int> fTimeBeatsNumbersVector; // 5+3+1 is possible
81 int fTimeBeatValue;
82};
83typedef SMARTP<bsrTimeItem> S_bsrTimeItem;
84EXP ostream& operator<< (ostream& os, const S_bsrTimeItem& elt);
85
86//______________________________________________________________________________
87class bsrTime : public bsrLineElement
88{
89 public:
90
91 // data types
92 // ------------------------------------------------------
93
94 enum bsrTimeKind {
95 kTimeNone,
96 kTimeCommon,
97 kTimeCut,
98 kTimeNumerical, // JMI
99 kTimeNote,
100 kTimeDottedNote,
101 kTimeSingleNumber,
102 kTimeSenzaMisura };
103
104 static string timeKindAsString (
105 bsrTimeKind timeKind);
106
107 public:
108
109 // creation
110 // ------------------------------------------------------
111
112 static SMARTP<bsrTime> create (
113 int inputLineNumber,
114 bsrTimeKind timeKind);
115
116 protected:
117
118 // constructors/destructor
119 // ------------------------------------------------------
120
121 bsrTime (
122 int inputLineNumber,
123 bsrTimeKind timeKind);
124
125 virtual ~bsrTime ();
126
127 public:
128
129 // set and get
130 // ------------------------------------------------------
131
132 bsrTimeKind getTimeKind () const
133 { return fTimeKind; }
134
135 const vector<S_bsrTimeItem>&
136 getTimeItemsVector ()
137 { return fTimeItemsVector; }
138
139 public:
140
141 // public services
142 // ------------------------------------------------------
143
144 void appendTimeItem (S_bsrTimeItem timeItem);
145
146 S_bsrCellsList fetchCellsList () const
147 { return buildCellsList (); }
148
149 int fetchCellsNumber () const;
150
151 private:
152
153 // private services
154 // ------------------------------------------------------
155
156 S_bsrCellsList buildCellsList () const;
157
158 public:
159
160 // visitors
161 // ------------------------------------------------------
162
163 virtual void acceptIn (basevisitor* v);
164 virtual void acceptOut (basevisitor* v);
165
166 virtual void browseData (basevisitor* v);
167
168 public:
169
170 // print
171 // ------------------------------------------------------
172
173 string asString () const;
174
175 virtual void print (ostream& os) const;
176
177 private:
178
179 // fields
180 // ------------------------------------------------------
181
182 bsrTimeKind fTimeKind;
183
184 vector<S_bsrTimeItem> fTimeItemsVector;
185};
186typedef SMARTP<bsrTime> S_bsrTime;
187EXP ostream& operator<< (ostream& os, const S_bsrTime& elt);
188
Definition: bsrLineElements_MUT_DEP.h:8
Definition: bsrTimes_MUT_DEP.h:15
Definition: bsrTimes_MUT_DEP.h:88