diff options
Diffstat (limited to 'lib/rbcodec/codecs/nsf.c')
-rw-r--r-- | lib/rbcodec/codecs/nsf.c | 6 |
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 | |||
88 | next_track: | 93 | next_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(); |