libkmid Library API Documentation

midiout.h

00001 /* midiout.h - class midiOut which handles the /dev/sequencer device 00002 This file is part of LibKMid 0.9.5 00003 Copyright (C) 1997,98,99,2000 Antonio Larrosa Jimenez 00004 LibKMid's homepage : http://www.arrakis.es/~rlarrosa/libkmid.html 00005 00006 This library is free software; you can redistribute it and/or 00007 modify it under the terms of the GNU Library General Public 00008 License as published by the Free Software Foundation; either 00009 version 2 of the License, or (at your option) any later version. 00010 00011 This library is distributed in the hope that it will be useful, 00012 but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 Library General Public License for more details. 00015 00016 You should have received a copy of the GNU Library General Public License 00017 along with this library; see the file COPYING.LIB. If not, write to 00018 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00019 Boston, MA 02111-1307, USA. 00020 00021 Send comments and bug fixes to Antonio Larrosa <larrosa@kde.org> 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
KDE Logo
This file is part of the documentation for libkmid Library Version 3.2.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Sun Oct 10 18:55:46 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003