LibMusicXML 3.18
msrSlurs.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 ___msrSlurs___
14#define ___msrSlurs___
15
16#include "msrElements.h"
17
18#include "msrBasicTypes.h"
19
20
21namespace MusicXML2
22{
23
24//______________________________________________________________________________
25class msrSlur : public msrElement
26{
27 public:
28
29 // data types
30 // ------------------------------------------------------
31
32 enum msrSlurTypeKind {
33 k_NoSlur,
34 kRegularSlurStart, kPhrasingSlurStart,
35 kSlurContinue,
36 kRegularSlurStop, kPhrasingSlurStop};
37
38 static string slurTypeKindAsString (
39 msrSlurTypeKind slurKind);
40
41 // creation from MusicXML
42 // ------------------------------------------------------
43
44 static SMARTP<msrSlur> create (
45 int inputLineNumber,
46 int slurNumber,
47 msrSlurTypeKind slurKind,
48 msrLineTypeKind slurLineTypeKind);
49
50 protected:
51
52 // constructors/destructor
53 // ------------------------------------------------------
54
55 msrSlur (
56 int inputLineNumber,
57 int slurNumber,
58 msrSlurTypeKind slurKind,
59 msrLineTypeKind slurLineTypeKind);
60
61 virtual ~msrSlur ();
62
63 public:
64
65 // set and get
66 // ------------------------------------------------------
67
68 int getSlurNumber () const
69 { return fSlurNumber; }
70
71 void setSlurTypeKind (msrSlurTypeKind slurTypeKind)
72 { fSlurTypeKind = slurTypeKind; }
73
74 msrSlurTypeKind getSlurTypeKind () const
75 { return fSlurTypeKind; }
76
77 msrLineTypeKind getSlurLineTypeKind () const
78 { return fSlurLineTypeKind; }
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 slurTypeKindAsString () const;
99
100 string asString () const;
101
102 virtual void print (ostream& os) const;
103
104 private:
105
106 // fields
107 // ------------------------------------------------------
108
109 int fSlurNumber;
110
111 msrSlurTypeKind fSlurTypeKind;
112
113 msrLineTypeKind fSlurLineTypeKind;
114};
116EXP ostream& operator<< (ostream& os, const S_msrSlur& elt);
117
118
119} // namespace MusicXML2
120
121
122#endif
the smart pointer implementation
Definition: smartpointer.h:58
Definition: basevisitor.h:25
Definition: msrElements.h:26
Definition: msrSlurs.h:26