00001 /* 00002 * @(#)MidiMapper.h 3.00 25 May 1999 00003 * 00004 * Copyright (c) 2000 Pete Goodliffe (pete@cthree.org) 00005 * 00006 * This file is part of TSE3 - the Trax Sequencer Engine version 3.00. 00007 * 00008 * This library is modifiable/redistributable under the terms of the GNU 00009 * General Public License. 00010 * 00011 * You should have received a copy of the GNU General Public License along 00012 * with this program; see the file COPYING. If not, write to the Free Software 00013 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 00014 * 00015 */ 00016 00017 #ifndef TSE3_MIDIMAPPER_H 00018 #define TSE3_MIDIMAPPER_h 00019 00020 #include "tse3/listen/MidiMapper.h" 00021 00022 #include "tse3/Notifier.h" 00023 #include "tse3/Filter.h" 00024 00025 #include <utility> 00026 00027 namespace TSE3 00028 { 00044 class MidiMapper : public Filter, 00045 public Notifier<MidiMapperListener> 00046 { 00047 public: 00048 00052 MidiMapper(); 00053 virtual ~MidiMapper(); 00054 00065 const int map(int fromPort) const; 00066 00081 void setMap(int fromPort, int toPort); 00082 00089 int maximumMap() const; 00090 00094 virtual MidiEvent filter(const MidiEvent &me) const; 00095 00099 void reset(); 00100 00101 private: 00102 00103 MidiMapper &operator=(const MidiMapper &); 00104 MidiMapper(const MidiMapper &); 00105 00106 class MidiMapperImpl *pimpl; 00107 }; 00108 } 00109 00110 #endif