midistat.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 _MIDISTAT_H
00025 #define _MIDISTAT_H
00026
00027 #include <libkmid/dattypes.h>
00028
00040 class MidiStatus
00041 {
00042 private:
00043 class MidiStatusPrivate;
00044 MidiStatusPrivate *d;
00045
00046 ulong tempo;
00047
00048 unsigned char chn_patch [16];
00049 int chn_bender [16];
00050 unsigned char chn_pressure[16];
00051 unsigned char chn_controller[16][256];
00052
00053 int chn_lastisvolumeev[16];
00054
00055 public:
00059 MidiStatus();
00060
00064 ~MidiStatus();
00065
00066
00067
00068
00069
00074 void keyPressure ( uchar chn, uchar note, uchar vel );
00075
00081 void chnPatchChange ( uchar chn, uchar patch );
00082
00086 uchar chnPatch ( uchar chn ) { return chn_patch[chn]; }
00087
00092 void chnPressure ( uchar chn, uchar vel );
00093
00097 uchar chnPressure ( uchar chn ) { return chn_pressure[chn]; }
00098
00102 void chnPitchBender ( uchar chn, uchar lsb, uchar msb );
00103
00107 int chnPitchBender ( uchar chn) { return chn_bender[chn]; }
00108
00112 void chnController ( uchar chn, uchar ctl , uchar v );
00113
00117 uchar chnController ( uchar chn, uchar ctl )
00118 { return chn_controller[chn][ctl]; }
00119
00123 void sysex ( uchar *data, ulong size);
00124
00130 void tmrSetTempo ( int v );
00131
00132
00140 void sendData ( class DeviceManager *midi, int gm=1 );
00141 };
00142
00143 #endif
|