From c26622cf8f3e7843baff6f6b77a937a57c41762d Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Mon, 1 Dec 2014 23:01:58 +0100 Subject: decoder/gme: move code to ScanMusicEmu() --- src/decoder/plugins/GmeDecoderPlugin.cxx | 36 +++++++++++++++++++------------- 1 file changed, 22 insertions(+), 14 deletions(-) (limited to 'src/decoder/plugins/GmeDecoderPlugin.cxx') diff --git a/src/decoder/plugins/GmeDecoderPlugin.cxx b/src/decoder/plugins/GmeDecoderPlugin.cxx index df0070482..cfef641fa 100644 --- a/src/decoder/plugins/GmeDecoderPlugin.cxx +++ b/src/decoder/plugins/GmeDecoderPlugin.cxx @@ -249,6 +249,26 @@ ScanGmeInfo(const gme_info_t &info, int song_num, int track_count, TAG_DATE, info.copyright); } +static bool +ScanMusicEmu(Music_Emu *emu, int song_num, + const struct tag_handler *handler, void *handler_ctx) +{ + gme_info_t *ti; + const char *gme_err = gme_track_info(emu, &ti, song_num); + if (gme_err != nullptr) { + LogWarning(gme_domain, gme_err); + return false; + } + + assert(ti != nullptr); + + ScanGmeInfo(*ti, song_num, gme_track_count(emu), + handler, handler_ctx); + + gme_free_info(ti); + return true; +} + static bool gme_scan_file(Path path_fs, const struct tag_handler *handler, void *handler_ctx) @@ -266,23 +286,11 @@ gme_scan_file(Path path_fs, const int song_num = get_song_num(path_fs); - gme_info_t *ti; - gme_err = gme_track_info(emu, &ti, song_num); - if (gme_err != nullptr) { - LogWarning(gme_domain, gme_err); - gme_delete(emu); - return false; - } + const bool result = ScanMusicEmu(emu, song_num, handler, handler_ctx); - assert(ti != nullptr); - - ScanGmeInfo(*ti, song_num, gme_track_count(emu), - handler, handler_ctx); - - gme_free_info(ti); gme_delete(emu); - return true; + return result; } static const char *const gme_suffixes[] = { -- cgit v1.2.3