00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef __TPartGroup__
00026 #define __TPartGroup__
00027
00028 #include "exports.h"
00029 #include "common.h"
00030 #include "smartpointer.h"
00031 #include "TScoreVisitor.h"
00032
00033 namespace MusicXML
00034 {
00035
00051 class EXP TPartGroup : public TPartListElement {
00052
00053 public:
00054 EXP friend SMARTP<TPartGroup> newPartGroup(StartStop::type type);
00056 enum symbol { undefined=-1, none=1, brace, line, bracket, last=bracket };
00057
00058 virtual void accept(TScoreVisitor& visitor);
00059
00061 void setType (StartStop::type type);
00063 void setNumber(int num);
00065 void setGroupName(string name);
00067 void setGroupAbbrev(string abbrev);
00069 void setSymbol(symbol sym);
00070
00071 StartStop::type getType() const { return fType; }
00072 int getNumber() const { return fNumber; }
00073 string getGroupName() const { return fGroupName; }
00074 string getGroupAbbrev() const { return fGroupAbbrev; }
00075 symbol getSymbol() const { return fSymbol; }
00076
00078 static const string xmlsymbol (symbol d);
00080 static symbol xmlsymbol (const string str);
00081
00082 protected:
00083 TPartGroup(StartStop::type type)
00084 : fType(type), fNumber(undefined), fSymbol(undefined) {}
00085 virtual ~TPartGroup() {}
00086 private:
00087 StartStop::type fType;
00088 int fNumber;
00089 string fGroupName;
00090 string fGroupAbbrev;
00091 symbol fSymbol;
00092
00093 static bimap<string, symbol> fSymbol2String;
00094 static symbol fSymbolTbl[];
00095 static string fSymbolStrings[];
00096 };
00097 typedef SMARTP<TPartGroup> SPartGroup;
00098
00099 }
00100
00101
00102 #endif