summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/nsf.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec/codecs/nsf.c')
-rw-r--r--lib/rbcodec/codecs/nsf.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/rbcodec/codecs/nsf.c b/lib/rbcodec/codecs/nsf.c
index 4c5b37c3fa..cbdf8e3ec5 100644
--- a/lib/rbcodec/codecs/nsf.c
+++ b/lib/rbcodec/codecs/nsf.c
@@ -57,6 +57,7 @@ enum codec_status codec_run(void)
57 57
58 track = is_multitrack = 0; 58 track = is_multitrack = 0;
59 elapsed_time = 0; 59 elapsed_time = 0;
60 param = ci->id3->elapsed;
60 61
61 DEBUGF("NSF: next_track\n"); 62 DEBUGF("NSF: next_track\n");
62 if (codec_init()) { 63 if (codec_init()) {
@@ -85,6 +86,10 @@ enum codec_status codec_run(void)
85 86
86 if (nsf_emu.track_count > 1) is_multitrack = 1; 87 if (nsf_emu.track_count > 1) is_multitrack = 1;
87 88
89 if (param) {
90 goto resume_start;
91 }
92
88next_track: 93next_track:
89 set_codec_track(track, is_multitrack); 94 set_codec_track(track, is_multitrack);
90 95
@@ -96,6 +101,7 @@ next_track:
96 break; 101 break;
97 102
98 if (action == CODEC_ACTION_SEEK_TIME) { 103 if (action == CODEC_ACTION_SEEK_TIME) {
104 resume_start:
99 if (is_multitrack) { 105 if (is_multitrack) {
100 track = param/1000; 106 track = param/1000;
101 ci->seek_complete(); 107 ci->seek_complete();