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 __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 }
00091
00092
00093 #endif