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

TTranspose.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 __TTranspose__
00026 #define __TTranspose__
00027 
00028 #include "exports.h"
00029 #include "TScoreVisitor.h"
00030 
00031 namespace MusicXML 
00032 {
00033 
00050 class EXP TTranspose : public visitable, public smartable {
00051     
00052     public:
00053         enum { undefined = -1 };
00054 
00055         EXP friend SMARTP<TTranspose> newTranspose();
00056 
00057         virtual void accept(TScoreVisitor& visitor);
00058 
00059         void    setDiatonic(long diat);
00060         void    setChromatic(long chrom);
00061         void    setOctaveChge(long oct);
00062         void    setDouble (long dbl);
00063 
00064         long    getDiatonic() const     { return fDiatonic;}
00065         long    getChromatic() const    { return fChromatic;}
00066         long    getOctaveChge() const   { return fOctaveChge;}
00067         long    getDouble() const       { return fDouble;}
00068 
00069     protected:
00070         TTranspose() : fDiatonic(undefined), fChromatic(0), fOctaveChge(undefined), fDouble(undefined) {}
00071         virtual ~TTranspose() {}
00072 
00073     private:
00074         long    fDiatonic;
00075         long    fChromatic;
00076         long    fOctaveChge;
00077         long    fDouble;
00078 };
00079 typedef SMARTP<TTranspose> STranspose;
00080 
00081 }
00082 
00083 #endif
00084 

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