aboutsummaryrefslogtreecommitdiff
path: root/sound/midistreamer.h
diff options
context:
space:
mode:
authorJamieson Christian2002-12-21 21:32:45 +0000
committerJamieson Christian2002-12-21 21:32:45 +0000
commite4b1a7e709be3baac54b47dc805deec7faee847b (patch)
treead1684f0467814488c24b3f802e2337bf02e6e3e /sound/midistreamer.h
parentebd2dc7f67c2cf705fec30dc3df48488c4f00650 (diff)
downloadscummvm-rg350-e4b1a7e709be3baac54b47dc805deec7faee847b.tar.gz
scummvm-rg350-e4b1a7e709be3baac54b47dc805deec7faee847b.tar.bz2
scummvm-rg350-e4b1a7e709be3baac54b47dc805deec7faee847b.zip
MidiStreamer no longer derives from MidiDriver.
Removed MidiStreamer methods that weren't actually needed. That's one layer of indirection removed from Simon music. svn-id: r6050
Diffstat (limited to 'sound/midistreamer.h')
-rw-r--r--sound/midistreamer.h30
1 files changed, 15 insertions, 15 deletions
diff --git a/sound/midistreamer.h b/sound/midistreamer.h
index f1158e8b45..6e598104b2 100644
--- a/sound/midistreamer.h
+++ b/sound/midistreamer.h
@@ -26,16 +26,25 @@ class MidiStreamer;
#include "mididrv.h"
-class MidiStreamer : public MidiDriver {
+struct MidiEvent {
+ uint32 delta;
+ uint32 event;
+};
+
+class MidiStreamer {
public:
- /* called whenever the midi driver is in streaming mode,
- * and more midi commands need to be generated
- * return 0 to tell the mididriver that the end of stream was reached
- */
+ // Called whenever more MIDI commands need to be generated.
+ // Return 0 to tell MidiStreamer that end of stream was reached.
typedef int StreamCallback (void *param, MidiEvent * ev, int num);
-private:
+ // Special events that can be inserted in a MidiEvent.
+ // event = (ME_xxx<<24) | <24-bit data associated with event>
+ enum {
+ ME_NONE = 0,
+ ME_TEMPO = 1,
+ };
+private:
MidiDriver *_target;
StreamCallback *_stream_proc;
void *_stream_param;
@@ -55,23 +64,14 @@ private:
void on_timer();
public:
-
MidiStreamer (MidiDriver *target);
int open();
void close();
void send(uint32 b) { if (_isOpen) _target->send (b); }
uint32 property(int prop, uint32 param);
- void setPitchBendRange (byte channel, uint range) { _target->setPitchBendRange (channel, range); }
-
void pause(bool p) { _paused = p; }
void set_stream_callback(void *param, StreamCallback *sc);
-
- void setTimerCallback (void *timer_param, void (*timer_proc) (void *)) { }
- uint32 getBaseTempo (void) { return _target->getBaseTempo(); }
-
- MidiChannel *allocateChannel() { return NULL; }
- MidiChannel *getPercussionChannel() { return NULL; }
};
#endif