libkmid Library API Documentation

fmout.h

00001 /* fmout.h - class fmOut which handles the /dev/sequencer device 00002 for FM synths 00003 This file is part of LibKMid 0.9.5 00004 Copyright (C) 1998,99,2000 Antonio Larrosa Jimenez 00005 LibKMid's homepage : http://www.arrakis.es/~rlarrosa/libkmid.html 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 _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
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 Mon Aug 30 22:55:31 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003