LibMusicXML 3.18
lpsrPartGroups.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 ___lpsrPartGroups___
14#define ___lpsrPartGroups___
15
16#include "lpsrElements.h"
17
18#include "msr.h"
19
20
21namespace MusicXML2
22{
23
24//______________________________________________________________________________
25class lpsrPartGroupBlock;
26typedef SMARTP<lpsrPartGroupBlock> S_lpsrPartGroupBlock;
27
28//______________________________________________________________________________
30{
31 public:
32
33 // creation from MusicXML
34 // ------------------------------------------------------
35
36 static SMARTP<lpsrPartGroupBlock> create (
38
39 protected:
40
41 // constructors/destructor
42 // ------------------------------------------------------
43
46
47 virtual ~lpsrPartGroupBlock ();
48
49 public:
50
51 // set and get
52 // ------------------------------------------------------
53
54 S_msrPartGroup getPartGroup () const
55 { return fPartGroup; }
56
57 const list<S_msrElement>&
58 getPartGroupBlockElements () const
59 { return fPartGroupBlockElements; }
60
61 public:
62
63 // public services
64 // ------------------------------------------------------
65
66 void appendElementToPartGroupBlock (
67 S_msrElement elem)
68 { fPartGroupBlockElements.push_back (elem); }
69
70 public:
71
72 // visitors
73 // ------------------------------------------------------
74
75 virtual void acceptIn (basevisitor* v);
76 virtual void acceptOut (basevisitor* v);
77
78 virtual void browseData (basevisitor* v);
79
80 public:
81
82 // print
83 // ------------------------------------------------------
84
85 virtual void print (ostream& os) const;
86
87 private:
88
89 // fields
90 // ------------------------------------------------------
91
92 S_msrPartGroup fPartGroup;
93
94 list<S_msrElement> fPartGroupBlockElements;
95};
96EXP ostream& operator<< (ostream& os, const S_lpsrPartGroupBlock& elt);
97
98
99}
100
101
102#endif
the smart pointer implementation
Definition: smartpointer.h:58
Definition: basevisitor.h:25
Definition: lpsrElements.h:24
Definition: lpsrPartGroups.h:30
Definition: partlistvisitor.h:29