aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder/wildmidi_plugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/decoder/wildmidi_plugin.c')
-rw-r--r--src/decoder/wildmidi_plugin.c12
1 files changed, 11 insertions, 1 deletions
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);