00001 /* 00002 * @(#)listen/Transport.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_LISTEN_TRANSPORT_H 00018 #define TSE3_LISTEN_TRANSPORT_H 00019 00020 #include "tse3/Midi.h" 00021 00022 namespace TSE3 00023 { 00024 class Transport; 00025 00033 class TransportListener 00034 { 00035 public: 00036 typedef Transport notifier_type; 00037 00038 enum WhatChanged 00039 { 00040 SynchroChanged = 0x01, 00041 PunchInChanged = 0x02, 00042 AutoStopChanged = 0x04, 00043 PlayLeadInChanged = 0x08, 00044 RecordLeadInChanged = 0x10, 00045 LookAheadChanged = 0x20, 00046 AdaptiveLookAheadChanged = 0x40 00047 }; 00048 00049 virtual void Transport_Altered(Transport *, int /*what*/) {} 00050 virtual void Transport_Status(Transport *, int /*status*/) {} 00051 }; 00052 00063 class TransportCallback 00064 { 00065 public: 00066 00067 TransportCallback() {} 00068 00069 virtual ~TransportCallback() = 0; 00070 00075 virtual void Transport_MidiIn(MidiCommand c) = 0; 00076 00081 virtual void Transport_MidiOut(MidiCommand c) = 0; 00082 00083 private: 00084 00085 TransportCallback &operator=(const TransportCallback &); 00086 TransportCallback(const TransportCallback &); 00087 }; 00088 } 00089 00090 #endif