From a2ce6e5b823f5af7ac08380b4acb145713a80c11 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Thu, 12 Feb 2009 18:19:13 +0100 Subject: wildmidi: added seeking support Use WildMidi_SampledSeek() for seeking in a MIDI file. --- src/decoder/wildmidi_plugin.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/decoder') diff --git a/src/decoder/wildmidi_plugin.c b/src/decoder/wildmidi_plugin.c index 39b82d0b1..a045a6b1f 100644 --- a/src/decoder/wildmidi_plugin.c +++ b/src/decoder/wildmidi_plugin.c @@ -67,7 +67,7 @@ wildmidi_file_decode(struct decoder *decoder, const char *path_fs) return; } - decoder_initialized(decoder, &audio_format, false, + decoder_initialized(decoder, &audio_format, true, info->approx_total_samples / WILDMIDI_SAMPLE_RATE); do { @@ -86,6 +86,16 @@ wildmidi_file_decode(struct decoder *decoder, const char *path_fs) (float)info->current_sample / (float)WILDMIDI_SAMPLE_RATE, 0, NULL); + + if (cmd == DECODE_COMMAND_SEEK) { + unsigned long seek_where = WILDMIDI_SAMPLE_RATE * + decoder_seek_where(decoder); + + WildMidi_SampledSeek(wm, &seek_where); + decoder_command_finished(decoder); + cmd = DECODE_COMMAND_NONE; + } + } while (cmd == DECODE_COMMAND_NONE); WildMidi_Close(wm); -- cgit v1.2.3