midiout.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _MIDIOUT_H
00025 #define _MIDIOUT_H
00026
00027 #include <libkmid/dattypes.h>
00028 #include <libkmid/deviceman.h>
00029 #include <libkmid/midimapper.h>
00030 #include <stdio.h>
00031
00051 class MidiOut
00052 {
00053 private:
00054 class MidiOutPrivate;
00055 MidiOutPrivate *d;
00056
00057 protected:
00058
00064 int seqfd;
00065
00066 int device;
00067
00068 int devicetype;
00069
00070 int volumepercentage;
00071
00072 MidiMapper *map;
00073
00074 uchar chnpatch [16];
00075 int chnbender [16];
00076 uchar chnpressure [16];
00077 uchar chncontroller [16][256];
00078 int chnmute [16];
00079
00080 int _ok;
00081
00082 void seqbuf_dump (void);
00083 void seqbuf_clean(void);
00084
00085 public:
00086
00092 MidiOut(int d=0);
00093
00099 virtual ~MidiOut();
00100
00109 virtual void openDev (int sqfd);
00110
00116 virtual void closeDev ();
00117
00123 virtual void initDev ();
00124
00139 int deviceType () const { return devicetype; }
00140
00145 const char * deviceName (void) const;
00146
00156 void setMidiMapper ( MidiMapper *map );
00157
00161 virtual void noteOn ( uchar chn, uchar note, uchar vel );
00162
00166 virtual void noteOff ( uchar chn, uchar note, uchar vel );
00167
00171 virtual void keyPressure ( uchar chn, uchar note, uchar vel );
00172
00176 virtual void chnPatchChange ( uchar chn, uchar patch );
00177
00181 virtual void chnPressure ( uchar chn, uchar vel );
00182
00186 virtual void chnPitchBender ( uchar chn, uchar lsb, uchar msb );
00187
00191 virtual void chnController ( uchar chn, uchar ctl , uchar v );
00192
00196 virtual void sysex ( uchar *data,ulong size);
00197
00201 void allNotesOff(void);
00202
00207 virtual void channelSilence ( uchar chn );
00208
00216 virtual void channelMute ( uchar chn, int b );
00217
00225 virtual void setVolumePercentage ( int volper )
00226 { volumepercentage = volper; }
00227
00231 int ok (void)
00232 { if (seqfd<0) return 0;
00233 return (_ok>0);
00234 }
00235
00240 const char *midiMapFilename ();
00241
00247 void sync(int i=0);
00248
00249 };
00250
00251 #endif
|