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 //______________________________________________________________________________
7 class bsrTimeItem;
8 typedef SMARTP<bsrTimeItem> S_bsrTimeItem;
9 
10 class bsrTime;
11 typedef SMARTP<bsrTime> S_bsrTime;
12 
13 //______________________________________________________________________________
14 class 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 
29  bsrTimeItem (
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 };
83 typedef SMARTP<bsrTimeItem> S_bsrTimeItem;
84 EXP ostream& operator<< (ostream& os, const S_bsrTimeItem& elt);
85 
86 //______________________________________________________________________________
87 class 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 };
186 typedef SMARTP<bsrTime> S_bsrTime;
187 EXP 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