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
8class msrSpanner;
9typedef SMARTP<msrSpanner> S_msrSpanner;
10
11class 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
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};
131typedef SMARTP<msrSpanner> S_msrSpanner;
132EXP ostream& operator<< (ostream& os, const S_msrSpanner& elt);
133
Definition: msrSpanners_MUT_DEP.h:12