Start hooking up imageviewer, pt. 1

This commit is contained in:
twinaphex 2015-06-28 17:02:01 +02:00
parent 0d568f4c65
commit 8882f762c4
7 changed files with 89 additions and 28 deletions

View File

@ -64,6 +64,8 @@ static dylib_t lib_handle;
#define SYM_FFMPEG(x) p##x = libretro_ffmpeg_##x
#endif
#define SYM_IMAGEVIEWER(x) p##x = libretro_imageviewer_##x
void (*pretro_init)(void);
void (*pretro_deinit)(void);
@ -441,6 +443,41 @@ static void load_symbols(enum rarch_core_type type)
SYM_FFMPEG(retro_get_memory_size);
break;
#endif
case CORE_TYPE_IMAGEVIEWER:
SYM_IMAGEVIEWER(retro_init);
SYM_IMAGEVIEWER(retro_deinit);
SYM_IMAGEVIEWER(retro_api_version);
SYM_IMAGEVIEWER(retro_get_system_info);
SYM_IMAGEVIEWER(retro_get_system_av_info);
SYM_IMAGEVIEWER(retro_set_environment);
SYM_IMAGEVIEWER(retro_set_video_refresh);
SYM_IMAGEVIEWER(retro_set_audio_sample);
SYM_IMAGEVIEWER(retro_set_audio_sample_batch);
SYM_IMAGEVIEWER(retro_set_input_poll);
SYM_IMAGEVIEWER(retro_set_input_state);
SYM_IMAGEVIEWER(retro_set_controller_port_device);
SYM_IMAGEVIEWER(retro_reset);
SYM_IMAGEVIEWER(retro_run);
SYM_IMAGEVIEWER(retro_serialize_size);
SYM_IMAGEVIEWER(retro_serialize);
SYM_IMAGEVIEWER(retro_unserialize);
SYM_IMAGEVIEWER(retro_cheat_reset);
SYM_IMAGEVIEWER(retro_cheat_set);
SYM_IMAGEVIEWER(retro_load_game);
SYM_IMAGEVIEWER(retro_load_game_special);
SYM_IMAGEVIEWER(retro_unload_game);
SYM_IMAGEVIEWER(retro_get_region);
SYM_IMAGEVIEWER(retro_get_memory_data);
SYM_IMAGEVIEWER(retro_get_memory_size);
break;
}
}

View File

@ -29,11 +29,11 @@
enum rarch_core_type
{
CORE_TYPE_PLAIN = 0,
CORE_TYPE_DUMMY
CORE_TYPE_DUMMY,
#ifdef HAVE_FFMPEG
,
CORE_TYPE_FFMPEG
CORE_TYPE_FFMPEG,
#endif
CORE_TYPE_IMAGEVIEWER
};
#ifdef __cplusplus

View File

@ -167,6 +167,9 @@ void menu_common_load_content(bool persist, enum rarch_core_type type)
event_command(EVENT_CMD_LOAD_CONTENT_FFMPEG);
break;
#endif
case CORE_TYPE_IMAGEVIEWER:
/* TODO/FIXME */
break;
}
menu_list_flush_stack(menu_list, NULL, MENU_SETTINGS);

View File

@ -1983,7 +1983,7 @@ static int menu_displaylist_parse_generic(menu_displaylist_info_t *info, bool *n
#ifdef HAVE_FFMPEG
if (settings->mediaplayer.builtin_enable)
{
switch (rarch_mediaplayer_is_media_type(path))
switch (rarch_path_is_media_type(path))
{
case RARCH_CONTENT_MOVIE:
file_type = MENU_FILE_MOVIE;
@ -1991,6 +1991,8 @@ static int menu_displaylist_parse_generic(menu_displaylist_info_t *info, bool *n
case RARCH_CONTENT_MUSIC:
file_type = MENU_FILE_MUSIC;
break;
case RARCH_CONTENT_IMAGE:
file_type = MENU_FILE_IMAGE;
default:
break;
}

View File

@ -16,26 +16,12 @@
#ifndef MENU_HASH_H__
#define MENU_HASH_H__
#include "../retroarch.h"
#ifdef __cplusplus
extern "C" {
#endif
#define MENU_VALUE_FILE_WEBM 0x7ca00b50U
#define MENU_VALUE_FILE_F4F 0x0b886be5U
#define MENU_VALUE_FILE_F4V 0x0b886bf5U
#define MENU_VALUE_FILE_OGM 0x0b8898c8U
#define MENU_VALUE_FILE_MKV 0x0b8890d3U
#define MENU_VALUE_FILE_AVI 0x0b885f25U
#define MENU_VALUE_FILE_M4A 0x0b8889a7U
#define MENU_VALUE_FILE_3GP 0x0b87998fU
#define MENU_VALUE_FILE_MP4 0x0b889136U
#define MENU_VALUE_FILE_MP3 0x0b889135U
#define MENU_VALUE_FILE_FLAC 0x7c96d67bU
#define MENU_VALUE_FILE_OGG 0x0b8898c2U
#define MENU_VALUE_FILE_FLV 0x0b88732dU
#define MENU_VALUE_FILE_WAV 0x0b88ba13U
#define MENU_VALUE_FILE_MOV 0x0b889157U
#define MENU_VALUE_FILE_WMV 0x0b88bb9fU
#define MENU_VALUE_SEARCH 0xd0d5febbU

View File

@ -426,13 +426,14 @@ 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)
enum rarch_content_type rarch_path_is_media_type(const char *path)
{
uint32_t hash_ext = djb2_calculate(path_get_extension(path));
switch (hash_ext)
{
#ifdef HAVE_FFMPEG
case MENU_VALUE_FILE_OGM:
case MENU_VALUE_FILE_MKV:
case MENU_VALUE_FILE_AVI:
@ -451,13 +452,19 @@ enum rarch_content_type rarch_mediaplayer_is_media_type(const char *path)
case MENU_VALUE_FILE_FLAC:
case MENU_VALUE_FILE_WAV:
return RARCH_CONTENT_MUSIC;
#endif
case MENU_VALUE_FILE_JPG:
case MENU_VALUE_FILE_JPEG:
case MENU_VALUE_FILE_PNG:
case MENU_VALUE_FILE_TGA:
case MENU_VALUE_FILE_BMP:
return RARCH_CONTENT_IMAGE;
default:
break;
}
return RARCH_CONTENT_NONE;
}
#endif
#define FFMPEG_RECORD_ARG "r:"
@ -1203,13 +1210,17 @@ int rarch_main_init(int argc, char *argv[])
if (settings && settings->mediaplayer.builtin_enable)
{
switch (rarch_mediaplayer_is_media_type(global->fullpath))
switch (rarch_path_is_media_type(global->fullpath))
{
case RARCH_CONTENT_MOVIE:
case RARCH_CONTENT_MUSIC:
global->has_set_libretro = false;
global->core_type = CORE_TYPE_FFMPEG;
break;
case RARCH_CONTENT_IMAGE:
global->has_set_libretro = false;
global->core_type = CORE_TYPE_IMAGEVIEWER;
break;
default:
break;
}

View File

@ -40,11 +40,35 @@ enum action_state
RARCH_ACTION_STATE_FORCE_QUIT
};
#define MENU_VALUE_FILE_WEBM 0x7ca00b50U
#define MENU_VALUE_FILE_F4F 0x0b886be5U
#define MENU_VALUE_FILE_F4V 0x0b886bf5U
#define MENU_VALUE_FILE_OGM 0x0b8898c8U
#define MENU_VALUE_FILE_MKV 0x0b8890d3U
#define MENU_VALUE_FILE_AVI 0x0b885f25U
#define MENU_VALUE_FILE_M4A 0x0b8889a7U
#define MENU_VALUE_FILE_3GP 0x0b87998fU
#define MENU_VALUE_FILE_MP4 0x0b889136U
#define MENU_VALUE_FILE_MP3 0x0b889135U
#define MENU_VALUE_FILE_FLAC 0x7c96d67bU
#define MENU_VALUE_FILE_OGG 0x0b8898c2U
#define MENU_VALUE_FILE_FLV 0x0b88732dU
#define MENU_VALUE_FILE_WAV 0x0b88ba13U
#define MENU_VALUE_FILE_MOV 0x0b889157U
#define MENU_VALUE_FILE_WMV 0x0b88bb9fU
#define MENU_VALUE_FILE_JPG 0x0b8884a6U
#define MENU_VALUE_FILE_JPEG 0x7c99198bU
#define MENU_VALUE_FILE_PNG 0x0b889deaU
#define MENU_VALUE_FILE_TGA 0x0b88ae01U
#define MENU_VALUE_FILE_BMP 0x0b886244U
enum rarch_content_type
{
RARCH_CONTENT_NONE = 0,
RARCH_CONTENT_MOVIE,
RARCH_CONTENT_MUSIC
RARCH_CONTENT_MUSIC,
RARCH_CONTENT_IMAGE
};
enum rarch_capabilities
@ -182,9 +206,7 @@ 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
enum rarch_content_type rarch_path_is_media_type(const char *path);
extern char orig_savestate_dir[PATH_MAX_LENGTH];
extern char orig_savefile_dir[PATH_MAX_LENGTH];