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 ___lpsrComments___ 14 #define ___lpsrComments___ 15 16 #include "lpsrElements.h" 17 18 19 using namespace std; 20 21 namespace MusicXML2 22 { 23 24 //______________________________________________________________________________ 25 class lpsrComment : public lpsrElement 26 { 27 public: 28 29 // data types 30 // ------------------------------------------------------ 31 32 enum lpsrCommentGapKind { 33 kGapAfterwards, kNoGapAfterwards}; 34 35 static string commentGapKindAsString ( 36 lpsrCommentGapKind commentGapKind); 37 38 // creation from MusicXML 39 // ------------------------------------------------------ 40 41 static SMARTP<lpsrComment> create ( 42 int inputLineNumber, 43 string contents, 44 lpsrCommentGapKind commentGapKind = kNoGapAfterwards); 45 46 protected: 47 48 // constructors/destructor 49 // ------------------------------------------------------ 50 51 lpsrComment ( 52 int inputLineNumber, 53 string contents, 54 lpsrCommentGapKind commentGapKind = kNoGapAfterwards); 55 56 virtual ~lpsrComment (); 57 58 public: 59 60 // set and get 61 // ------------------------------------------------------ 62 getContents()63 string getContents () const 64 { return fContents; } 65 getCommentGapKind()66 lpsrCommentGapKind getCommentGapKind () const 67 { return fCommentGapKind; } 68 69 // services 70 // ------------------------------------------------------ 71 72 public: 73 74 // visitors 75 // ------------------------------------------------------ 76 77 virtual void acceptIn (basevisitor* v); 78 virtual void acceptOut (basevisitor* v); 79 80 virtual void browseData (basevisitor* v); 81 82 public: 83 84 // print 85 // ------------------------------------------------------ 86 87 virtual void print (ostream& os) const; 88 89 private: 90 91 // fields 92 // ------------------------------------------------------ 93 94 string fContents; 95 lpsrCommentGapKind fCommentGapKind; 96 }; 97 typedef SMARTP<lpsrComment> S_lpsrComment; 98 EXP ostream& operator<< (ostream& os, const S_lpsrComment& elt); 99 100 101 } 102 103 104 #endif 105