gusout.h
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 _GUSOUT_H
00026 #define _GUSOUT_H
00027 
00028 #include <libkmid/midiout.h>
00029 #include <libkmid/voiceman.h>
00030 
00045 class GUSOut : public MidiOut
00046 {
00047   private:
00048     class GUSOutPrivate;
00049     GUSOutPrivate *di;
00050 
00051     int patchloaded[256];
00052     int nvoices;
00053 
00054     int use8bit; 
00055     VoiceManager *vm;
00056 
00057     int totalmemory; 
00058     int freememory; 
00059 
00060 
00061     void patchesLoadingOrder(int *patchesused,int *patchesordered);
00062     const char *patchName(int pgm);
00063 
00064   public:
00068     GUSOut(int d=0,int total =12);
00069 
00073     ~GUSOut();
00074 
00078     virtual void openDev    (int sqfd);
00079 
00083     virtual void closeDev   (void);
00084 
00088     virtual void initDev    (void);
00089 
00093     virtual void noteOn     ( uchar chn, uchar note, uchar vel );
00094 
00098     virtual void noteOff    ( uchar chn, uchar note, uchar vel );
00099 
00103     virtual void keyPressure    ( uchar chn, uchar note, uchar vel );
00104 
00108     virtual void chnPatchChange ( uchar chn, uchar patch );
00109 
00113     virtual void chnPressure    ( uchar chn, uchar vel );
00114 
00118     virtual void chnPitchBender ( uchar chn, uchar lsb,  uchar msb );
00119 
00123     virtual void chnController  ( uchar chn, uchar ctl , uchar v ); 
00124 
00129     virtual void sysex      ( uchar *data,ulong size);
00130 
00140     void setPatchesToUse(int *patchesused);
00141 
00152     int loadPatch  (int pgm);
00153 
00162     int patch(int p); 
00163 
00164   private:
00165     static const char *GUS_patches_directory;
00166     static int delete_GUS_patches_directory;
00167 
00168   public:
00176     static void setGUSPatchesDirectory(const char *dir);
00177 
00178 };
00179 
00180 #endif
 
This file is part of the documentation for libkmid Library Version 3.2.0.