fmout.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 #ifndef _FMOUT_H
00025 #define _FMOUT_H
00026
00027 #include <libkmid/midiout.h>
00028 #include <libkmid/voiceman.h>
00029
00043 class FMOut : public MidiOut
00044 {
00045 private:
00046 class FMOutPrivate;
00047 FMOutPrivate *di;
00048
00049 int patchloaded[256];
00053 int opl;
00054 int nvoices;
00055
00056 VoiceManager *vm;
00057
00058 void modifyPatch(char *buf, int key);
00059 void loadFMPatches (void);
00060
00061 public:
00065 FMOut ( int d=0, int total =12 );
00066
00070 ~FMOut ();
00071
00075 virtual void openDev ( int sqfd );
00076
00080 virtual void closeDev ( void );
00081
00085 virtual void initDev ( void );
00086
00090 virtual void noteOn ( uchar chn, uchar note, uchar vel );
00091
00095 virtual void noteOff ( uchar chn, uchar note, uchar vel );
00096
00100 virtual void keyPressure ( uchar chn, uchar note, uchar vel );
00101
00105 virtual void chnPatchChange ( uchar chn, uchar patch );
00106
00110 virtual void chnPressure ( uchar chn, uchar vel );
00111
00115 virtual void chnPitchBender ( uchar chn, uchar lsb, uchar msb );
00116
00120 virtual void chnController ( uchar chn, uchar ctl , uchar v );
00121
00126 virtual void sysex ( uchar *data,ulong size);
00127
00131 virtual void setVolumePercentage ( int i );
00132
00137 int patch(int p);
00138
00139 private:
00140 static const char *FMPatchesDirectory;
00141 static int deleteFMPatchesDirectory;
00142
00143 public:
00151 static void setFMPatchesDirectory(const char *dir);
00152
00153 };
00154
00155 #endif
This file is part of the documentation for kdelibs Version 3.1.5.