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 _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