Main Page | Modules | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | Related Pages

TPartGroup.h

00001 /*
00002 
00003   MusicXML Library
00004   Copyright (C) 2003  Grame
00005 
00006   This library is free software; you can redistribute it and/or
00007   modify it under the terms of the GNU Lesser General Public
00008   License as published by the Free Software Foundation; either
00009   version 2.1 of the License, or (at your option) any later version.
00010 
00011   This library is distributed in the hope that it will be useful,
00012   but WITHOUT ANY WARRANTY; without even the implied warranty of
00013   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00014   Lesser General Public License for more details.
00015 
00016   You should have received a copy of the GNU Lesser General Public
00017   License along with this library; if not, write to the Free Software
00018   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00019 
00020   Grame Research Laboratory, 9 rue du Garet, 69001 Lyon - France
00021   grame@grame.fr
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 } // namespace MusicXML
00100 
00101 
00102 #endif

Generated on Tue Mar 23 09:49:43 2004 for LibMusicXML by doxygen 1.3.3