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