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

TMeasure.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 __TMeasure__
00026 #define __TMeasure__
00027 
00028 #include "exports.h"
00029 #include "smartpointer.h"
00030 #include "TScoreVisitor.h"
00031 #include "common.h"
00032 
00033 using namespace std;
00034 
00035 namespace MusicXML 
00036 {
00037 
00056 class TMeasure : public visitable, public smartable {
00057     public:
00058         void    setStringNumber(const string& num);
00059         void    setImplicit( YesNo::type type);
00060         void    setNonControlling( YesNo::type type);
00061 
00062         const string&   getStringNumber() const { return fNum; }
00063         long    getNumber() const   { return (fImplicit == YesNo::undefined)?atoi(fNum.c_str()):-1; }
00064         YesNo::type getImplicit() const { return fImplicit; }
00065         YesNo::type getNonControlling() const   { return fNonControling; }
00066    
00067     protected:
00068         TMeasure(long num);
00069         TMeasure(string num) : fNum(num),fImplicit(YesNo::undefined),fNonControling(YesNo::undefined) {}
00070         virtual ~TMeasure() {}
00071     private:
00073         string  fNum;
00074         YesNo::type fImplicit;
00075         YesNo::type fNonControling;
00076 };
00077 
00078 } // namespace MusicXML
00079 
00080 
00081 #endif

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