home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / slax / base / 006-devel.lzm / usr / include / libkmid / synthout.h < prev    next >
Encoding:
C/C++ Source or Header  |  2005-10-10  |  3.2 KB  |  119 lines

  1. /*  synthout.h    - class synthOut which handles the /dev/sequencer device
  2.             for synths (as AWE32)
  3.     This file is part of LibKMid 0.9.5
  4.     Copyright (C) 1997,98  Antonio Larrosa Jimenez and P.J.Leonard
  5.           1999,2000 Antonio Larrosa Jimenez
  6.     LibKMid's homepage : http://www.arrakis.es/~rlarrosa/libkmid.html                                         
  7.     This library is free software; you can redistribute it and/or
  8.     modify it under the terms of the GNU Library General Public
  9.     License as published by the Free Software Foundation; either
  10.     version 2 of the License, or (at your option) any later version.
  11.  
  12.     This library is distributed in the hope that it will be useful,
  13.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  14.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  15.     Library General Public License for more details.
  16.  
  17.     You should have received a copy of the GNU Library General Public License
  18.     along with this library; see the file COPYING.LIB.  If not, write to
  19.     the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
  20.     Boston, MA 02110-1301, USA.                                                  
  21.  
  22.     Send comments and bug fixes to Antonio Larrosa <larrosa@kde.org>
  23.  
  24. ***************************************************************************/
  25. #ifndef _SYNTHOUT_H
  26. #define _SYNTHOUT_H
  27.  
  28. #include <libkmid/midiout.h>
  29.  
  30. /**
  31.  * Synth (AWE) device output class . SynthOut is used to send MIDI events to
  32.  * a general synthesizer, such as AWE synth.
  33.  *
  34.  * SynthOut inherits MidiOut and supports the same simple API.
  35.  *
  36.  * The preferred way to use this class is by selecting a synth (or AWE)
  37.  * device with MidiManager::setDefaultDevice(), and use a 
  38.  * MidiManager object.
  39.  *
  40.  * @short Sends MIDI events to AWE synthesizers
  41.  * @version 0.9.5 17/01/2000
  42.  * @author Antonio Larrosa Jimenez <larrosa@kde.org>
  43.  */
  44. class SynthOut : public MidiOut
  45. {
  46.   private:
  47.     class SynthOutPrivate;
  48.     SynthOutPrivate *di;
  49.  
  50.   public:
  51.     /**
  52.      * Constructor. See MidiOut::MidiOut() for more information.
  53.      */
  54.     SynthOut(int d=0);
  55.  
  56.     /**
  57.      * Destructor.
  58.      */
  59.     ~SynthOut();
  60.  
  61.     /**
  62.      * See MidiOut::openDev()
  63.      */
  64.     void openDev    (int sqfd);
  65.  
  66.     /**
  67.      * See MidiOut::closeDev()
  68.      */
  69.     void closeDev(void);
  70.  
  71.     /**
  72.      * See MidiOut::initDev()
  73.      */
  74.     void initDev    (void);
  75.  
  76.     /**
  77.      * See MidiOut::noteOn()
  78.      */
  79.     void noteOn        ( uchar chn, uchar note, uchar vel );
  80.  
  81.     /**
  82.      * See MidiOut::noteOff()
  83.      */
  84.     void noteOff    ( uchar chn, uchar note, uchar vel );
  85.  
  86.     /**
  87.      * See MidiOut::keyPressure()
  88.      */
  89.     void keyPressure    ( uchar chn, uchar note, uchar vel );
  90.  
  91.     /**
  92.      * See MidiOut::chnPatchChange()
  93.      */
  94.     void chnPatchChange    ( uchar chn, uchar patch );
  95.  
  96.     /**
  97.      * See MidiOut::chnPressure()
  98.      */
  99.     void chnPressure    ( uchar chn, uchar vel );
  100.  
  101.     /**
  102.      * See MidiOut::chnPitchBender()
  103.      */
  104.     void chnPitchBender    ( uchar chn, uchar lsb,  uchar msb );
  105.  
  106.     /**
  107.      * See MidiOut::chnController()
  108.      */
  109.     void chnController    ( uchar chn, uchar ctl , uchar v ); 
  110.  
  111.     /**
  112.      * It's an empty function, as AWE devices don't support System Exclusive
  113.      * messages
  114.      */
  115.     void sysex        ( uchar *data,ulong size);
  116. };
  117.  
  118. #endif
  119.