LibMusicXML  3.18
msrSingleTremolos.h
1 /*
2  MusicXML Library
3  Copyright (C) Grame 2006-2013
4 
5  This Source Code Form is subject to the terms of the Mozilla Public
6  License, v. 2.0. If a copy of the MPL was not distributed with this
7  file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 
9  Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
10  research@grame.fr
11 */
12 
13 #ifndef ___msrTremolos___
14 #define ___msrTremolos___
15 
16 #include "msrElements.h"
17 
18 #include "msrBasicTypes.h"
19 
20 
21 namespace MusicXML2
22 {
23 
24 //______________________________________________________________________________
26 {
27  public:
28 
29  // creation from MusicXML
30  // ------------------------------------------------------
31 
32  static SMARTP<msrSingleTremolo> create (
33  int inputLineNumber,
34  int singleTremoloMarksNumber,
35  msrPlacementKind singleTremoloPlacementKind);
36 
37  protected:
38 
39  // constructors/destructor
40  // ------------------------------------------------------
41 
43  int inputLineNumber,
44  int singleTremoloMarksNumber,
45  msrPlacementKind singleTremoloPlacementKind);
46 
47  virtual ~msrSingleTremolo ();
48 
49  public:
50 
51  // set and get
52  // ------------------------------------------------------
53 
54  void setSingleTremoloPlacementKind (
55  msrPlacementKind
56  SingleTremoloPlacementKind)
57  {
58  fSingleTremoloPlacementKind =
59  SingleTremoloPlacementKind;
60  }
61 
62  int getSingleTremoloMarksNumber () const
63  { return fSingleTremoloMarksNumber; }
64 
65  msrPlacementKind getSingleTremoloPlacementKind () const
66  { return fSingleTremoloPlacementKind; }
67 
68  void setSingleTremoloGraphicDurationKind (
69  msrDurationKind durationKind)
70  {
71  fSingleTremoloGraphicDurationKind =
72  durationKind;
73  }
74 
75  msrDurationKind getSingleTremoloGraphicDurationKind () const
76  {
77  return fSingleTremoloGraphicDurationKind;
78  }
79 
80  // services
81  // ------------------------------------------------------
82 
83  public:
84 
85  // visitors
86  // ------------------------------------------------------
87 
88  virtual void acceptIn (basevisitor* v);
89  virtual void acceptOut (basevisitor* v);
90 
91  virtual void browseData (basevisitor* v);
92 
93  public:
94 
95  // print
96  // ------------------------------------------------------
97 
98  string singleTremoloPlacementKindAsString () const;
99 
100  string asString () const;
101 
102  virtual void print (ostream& os) const;
103 
104  private:
105 
106  // fields
107  // ------------------------------------------------------
108 
109  int fSingleTremoloMarksNumber;
110 
111  msrPlacementKind fSingleTremoloPlacementKind;
112 
113  msrDurationKind fSingleTremoloGraphicDurationKind;
114 };
116 EXP ostream& operator<< (ostream& os, const S_msrSingleTremolo& elt);
117 
118 
119 } // namespace MusicXML2
120 
121 
122 #endif
MusicXML2::msrSingleTremolo
Definition: msrSingleTremolos.h:26
MusicXML2::SMARTP< msrSingleTremolo >
MusicXML2::basevisitor
Definition: basevisitor.h:25
MusicXML2::msrElement
Definition: msrElements.h:26