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

TMidiInstrument.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 __TMidiInstrument__
00026 #define __TMidiInstrument__
00027 
00028 #include "exports.h"
00029 #include "smartpointer.h"
00030 #include "TScoreVisitor.h"
00031 #include <string>
00032 
00033 namespace MusicXML 
00034 {
00043 class EXP TMidiInstrument : public visitable, public smartable {
00044     
00045     public:
00046         enum { undefined = -1 };
00047         EXP friend SMARTP<TMidiInstrument> newMidiInstrument(string id);
00048 
00050         void    setID (const string& id);
00052         void    setChannel (long chan);
00054         void    setName (const string& name);
00056         void    setBank (long bank);
00058         void    setProgram (long prog);
00063         void    setUnpitched (long pitch)   { fMidiUnpitched = pitch; }
00064 
00065         const string&   getID () const      { return fID; }
00066         long    getChannel () const         { return fMidiChannel; }
00067         const string&   getName () const    { return fMidiName; }
00068         long    getBank () const            { return fMidiBank; }
00069         long    getProgram () const         { return fMidiProgram; }
00070         long    getUnpitched () const       { return fMidiUnpitched; }
00071 
00072         virtual void accept(TScoreVisitor& visitor);
00073         
00074     protected:
00075         TMidiInstrument(string ident)
00076                 :fID(ident), fMidiChannel(undefined),fMidiBank(undefined),
00077                 fMidiProgram(undefined),fMidiUnpitched(undefined){}
00078         virtual ~TMidiInstrument() {}
00079 
00080     private:
00081         string  fID;
00082         long    fMidiChannel;
00083         string  fMidiName;
00084         long    fMidiBank;
00085         long    fMidiProgram;
00086         long    fMidiUnpitched;
00087 };
00088 typedef SMARTP<TMidiInstrument> SMidiInstrument;
00089 
00090 } // namespace MusicXML
00091 
00092 
00093 #endif

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