00001 /* 00002 * @(#)plt/RiscOS.h 3.00 20 July 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_PLT_RISCOS_H 00018 #define TSE3_PLT_RISCOS_H 00019 00020 #include "tse3/MidiScheduler.h" 00021 00022 namespace TSE3 00023 { 00024 namespace Plt 00025 { 00035 class RiscOsMidiScheduler : public MidiScheduler 00036 { 00037 public: 00038 00039 RiscOsMidiScheduler(); 00040 virtual ~RiscOsMidiScheduler(); 00041 00042 protected: 00043 00047 virtual const char *impl_implementationName() const; 00051 virtual const char *impl_portName(int port) const; 00055 virtual const char *impl_portType(int port) const; 00059 virtual bool impl_portReadable(int port) const; 00063 virtual bool impl_portWriteable(int port) const; 00067 virtual void impl_start(Clock clock); 00071 virtual void impl_stop(Clock clock); 00075 virtual void impl_moveTo(Clock moveTime, Clock newTime); 00079 virtual Clock impl_clock(); 00083 virtual int impl_msecs(); 00087 virtual void impl_setTempo(int tempo, Clock changeTime); 00091 virtual bool impl_eventWaiting(); 00095 virtual MidiEvent impl_rx(); 00099 virtual void impl_tx(MidiCommand mc); 00103 virtual void impl_tx(MidiEvent mc); 00107 virtual void impl_txSysEx(int port, 00108 const unsigned char *data, 00109 size_t size); 00110 00111 private: 00112 00113 RiscOSMidiScheduler(const RiscOSMidiScheduler &); 00114 RiscOSMidiScheduler &operator=(const RiscOSMidiScheduler &); 00115 00116 int maxPort; 00117 }; 00118 } 00119 } 00120 00121 #endif