LibMusicXML  3.18
msrSpanners_MUT_DEP.h
1 /*
2  This file is to be included only by msrMutualDependencies.h,
3  to satisfy declarations mutual dependencies.
4 */
5 
6 //______________________________________________________________________________
7 // pre-declaration for two-way sideLinks
8 class msrSpanner;
9 typedef SMARTP<msrSpanner> S_msrSpanner;
10 
11 class msrSpanner : public msrElement
12 {
13  public:
14 
15  // data types
16  // ------------------------------------------------------
17 
18  enum msrSpannerKind {
19  kSpannerDashes, kSpannerWavyLine };
20 
21  static string spannerKindAsString (
22  msrSpannerKind spannerKind);
23 
24  // creation from MusicXML
25  // ------------------------------------------------------
26 
27  static SMARTP<msrSpanner> create (
28  int inputLineNumber,
29  int spannerNumber,
30  msrSpannerKind spannerKind,
31  msrSpannerTypeKind spannerTypeKind,
32  msrPlacementKind spannerPlacementKind,
33  S_msrNote spannerNoteUpLink);
34 
35  protected:
36 
37  // constructors/destructor
38  // ------------------------------------------------------
39 
40  msrSpanner (
41  int inputLineNumber,
42  int spannerNumber,
43  msrSpannerKind spannerKind,
44  msrSpannerTypeKind spannerTypeKind,
45  msrPlacementKind spannerPlacementKind,
46  S_msrNote spannerNoteUpLink);
47 
48  virtual ~msrSpanner ();
49 
50  public:
51 
52  // set and get
53  // ------------------------------------------------------
54 
55  // upLinks
56  void setSpannerNoteUpLink (
57  S_msrNote spannerNoteUpLink)
58  { fSpannerNoteUpLink = spannerNoteUpLink; }
59 
60  S_msrNote getSpannerNoteUpLink () const
61  { return fSpannerNoteUpLink; }
62 
63  // sideLinks
64  void setSpannerOtherEndSideLink (
65  S_msrSpanner otherEndSideLink);
66 
67  S_msrSpanner getSpannerOtherEndSideLink () const
68  { return fSpannerOtherEndSideLink; }
69 
70  int getSpannerNumber () const
71  { return fSpannerNumber; }
72 
73  msrSpannerKind getSpannerKind () const
74  { return fSpannerKind; }
75 
76  msrSpannerTypeKind getSpannerTypeKind () const
77  { return fSpannerTypeKind; }
78 
79  msrPlacementKind getSpannerPlacementKind () const
80  { return fSpannerPlacementKind; }
81 
82  // services
83  // ------------------------------------------------------
84 
85  public:
86 
87  // visitors
88  // ------------------------------------------------------
89 
90  virtual void acceptIn (basevisitor* v);
91  virtual void acceptOut (basevisitor* v);
92 
93  virtual void browseData (basevisitor* v);
94 
95  public:
96 
97  // print
98  // ------------------------------------------------------
99 
100  string spannerKindAsString () const;
101 
102  string spannerTypeKindAsString () const;
103 
104  string spannerPlacementKindAsString () const;
105 
106  string asShortString () const;
107 
108  virtual void print (ostream& os) const;
109 
110  protected:
111 
112  // upLinks
113  // ------------------------------------------------------
114  S_msrNote fSpannerNoteUpLink;
115 
116  // sideLinks
117  // ------------------------------------------------------
118  S_msrSpanner fSpannerOtherEndSideLink; // two-way
119 
120  // fields
121  // ------------------------------------------------------
122 
123  int fSpannerNumber;
124 
125  msrSpannerKind fSpannerKind;
126 
127  msrSpannerTypeKind fSpannerTypeKind;
128 
129  msrPlacementKind fSpannerPlacementKind;
130 };
131 typedef SMARTP<msrSpanner> S_msrSpanner;
132 EXP ostream& operator<< (ostream& os, const S_msrSpanner& elt);
133 
Definition: msrSpanners_MUT_DEP.h:12