diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 3298174863..49a32712bd 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -1814,27 +1814,16 @@ static int menu_displaylist_parse_generic(menu_displaylist_info_t *info, bool *n #ifdef HAVE_FFMPEG if (settings->mediaplayer.builtin_enable) { - uint32_t hash_ext = menu_hash_calculate(path_get_extension(path)); - - switch (hash_ext) + switch (rarch_mediaplayer_is_media_type(path)) { - case MENU_VALUE_FILE_OGM: - case MENU_VALUE_FILE_MKV: - case MENU_VALUE_FILE_AVI: - case MENU_VALUE_FILE_MP4: - case MENU_VALUE_FILE_FLV: - case MENU_VALUE_FILE_3GP: - case MENU_VALUE_FILE_F4F: - case MENU_VALUE_FILE_F4V: + case RARCH_CONTENT_MOVIE: file_type = MENU_FILE_MOVIE; break; - case MENU_VALUE_FILE_MP3: - case MENU_VALUE_FILE_M4A: - case MENU_VALUE_FILE_OGG: - case MENU_VALUE_FILE_FLAC: - case MENU_VALUE_FILE_WAV: + case RARCH_CONTENT_MUSIC: file_type = MENU_FILE_MUSIC; break; + default: + break; } } #endif diff --git a/retroarch.c b/retroarch.c index 3b04f7a8e3..8ebfcb97f7 100644 --- a/retroarch.c +++ b/retroarch.c @@ -422,6 +422,36 @@ void rarch_set_paths(const char *path) sizeof(settings->system_directory)); } +#ifdef HAVE_FFMPEG +enum rarch_content_type rarch_mediaplayer_is_media_type(const char *path) +{ + uint32_t hash_ext = djb2_calculate(path_get_extension(path)); + + switch (hash_ext) + { + case MENU_VALUE_FILE_OGM: + case MENU_VALUE_FILE_MKV: + case MENU_VALUE_FILE_AVI: + case MENU_VALUE_FILE_MP4: + case MENU_VALUE_FILE_FLV: + case MENU_VALUE_FILE_3GP: + case MENU_VALUE_FILE_F4F: + case MENU_VALUE_FILE_F4V: + return RARCH_CONTENT_MOVIE; + case MENU_VALUE_FILE_MP3: + case MENU_VALUE_FILE_M4A: + case MENU_VALUE_FILE_OGG: + case MENU_VALUE_FILE_FLAC: + case MENU_VALUE_FILE_WAV: + return RARCH_CONTENT_MUSIC; + default: + break; + } + + return RARCH_CONTENT_NONE; +} +#endif + /** * parse_input: * @argc : Count of (commandline) arguments. @@ -848,25 +878,14 @@ static void parse_input(int argc, char *argv[]) #ifdef HAVE_FFMPEG if (settings->mediaplayer.builtin_enable) { - uint32_t hash_ext = djb2_calculate(path_get_extension(global->fullpath)); - - switch (hash_ext) + switch (rarch_mediaplayer_is_media_type(global->fullpath)) { - case MENU_VALUE_FILE_OGM: - case MENU_VALUE_FILE_MKV: - case MENU_VALUE_FILE_AVI: - case MENU_VALUE_FILE_MP4: - case MENU_VALUE_FILE_FLV: - case MENU_VALUE_FILE_3GP: - case MENU_VALUE_FILE_F4F: - case MENU_VALUE_FILE_F4V: - case MENU_VALUE_FILE_MP3: - case MENU_VALUE_FILE_M4A: - case MENU_VALUE_FILE_OGG: - case MENU_VALUE_FILE_FLAC: - case MENU_VALUE_FILE_WAV: + case RARCH_CONTENT_MOVIE: + case RARCH_CONTENT_MUSIC: global->core_type = CORE_TYPE_FFMPEG; break; + default: + break; } } #endif diff --git a/retroarch.h b/retroarch.h index b0ca9f5108..235aa2b14a 100644 --- a/retroarch.h +++ b/retroarch.h @@ -40,6 +40,13 @@ enum action_state RARCH_ACTION_STATE_FORCE_QUIT, }; +enum rarch_content_type +{ + RARCH_CONTENT_NONE = 0, + RARCH_CONTENT_MOVIE, + RARCH_CONTENT_MUSIC, +}; + enum rarch_capabilities { RARCH_CAPABILITIES_NONE = 0, @@ -175,6 +182,10 @@ void set_paths_redirect(const char *path); int rarch_info_get_capabilities(enum rarch_capabilities type, char *s, size_t len); +#ifdef HAVE_FFMPEG +enum rarch_content_type rarch_mediaplayer_is_media_type(const char *path); +#endif + extern char orig_savestate_dir[PATH_MAX_LENGTH]; extern char orig_savefile_dir[PATH_MAX_LENGTH];