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 #define SYM_FFMPEG(x) p##x = libretro_ffmpeg_##x
#endif #endif
#define SYM_IMAGEVIEWER(x) p##x = libretro_imageviewer_##x
void (*pretro_init)(void); void (*pretro_init)(void);
void (*pretro_deinit)(void); void (*pretro_deinit)(void);
@ -441,6 +443,41 @@ static void load_symbols(enum rarch_core_type type)
SYM_FFMPEG(retro_get_memory_size); SYM_FFMPEG(retro_get_memory_size);
break; break;
#endif #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 enum rarch_core_type
{ {
CORE_TYPE_PLAIN = 0, CORE_TYPE_PLAIN = 0,
CORE_TYPE_DUMMY CORE_TYPE_DUMMY,
#ifdef HAVE_FFMPEG #ifdef HAVE_FFMPEG
, CORE_TYPE_FFMPEG,
CORE_TYPE_FFMPEG
#endif #endif
CORE_TYPE_IMAGEVIEWER
}; };
#ifdef __cplusplus #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); event_command(EVENT_CMD_LOAD_CONTENT_FFMPEG);
break; break;
#endif #endif
case CORE_TYPE_IMAGEVIEWER:
/* TODO/FIXME */
break;
} }
menu_list_flush_stack(menu_list, NULL, MENU_SETTINGS); 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 #ifdef HAVE_FFMPEG
if (settings->mediaplayer.builtin_enable) if (settings->mediaplayer.builtin_enable)
{ {
switch (rarch_mediaplayer_is_media_type(path)) switch (rarch_path_is_media_type(path))
{ {
case RARCH_CONTENT_MOVIE: case RARCH_CONTENT_MOVIE:
file_type = MENU_FILE_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: case RARCH_CONTENT_MUSIC:
file_type = MENU_FILE_MUSIC; file_type = MENU_FILE_MUSIC;
break; break;
case RARCH_CONTENT_IMAGE:
file_type = MENU_FILE_IMAGE;
default: default:
break; break;
} }

View File

@ -16,26 +16,12 @@
#ifndef MENU_HASH_H__ #ifndef MENU_HASH_H__
#define MENU_HASH_H__ #define MENU_HASH_H__
#include "../retroarch.h"
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #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 #define MENU_VALUE_SEARCH 0xd0d5febbU

View File

@ -426,13 +426,14 @@ void rarch_set_paths(const char *path)
sizeof(settings->system_directory)); 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)); uint32_t hash_ext = djb2_calculate(path_get_extension(path));
switch (hash_ext) switch (hash_ext)
{ {
#ifdef HAVE_FFMPEG
case MENU_VALUE_FILE_OGM: case MENU_VALUE_FILE_OGM:
case MENU_VALUE_FILE_MKV: case MENU_VALUE_FILE_MKV:
case MENU_VALUE_FILE_AVI: 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_FLAC:
case MENU_VALUE_FILE_WAV: case MENU_VALUE_FILE_WAV:
return RARCH_CONTENT_MUSIC; 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: default:
break; break;
} }
return RARCH_CONTENT_NONE; return RARCH_CONTENT_NONE;
} }
#endif
#define FFMPEG_RECORD_ARG "r:" #define FFMPEG_RECORD_ARG "r:"
@ -1203,13 +1210,17 @@ int rarch_main_init(int argc, char *argv[])
if (settings && settings->mediaplayer.builtin_enable) 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_MOVIE:
case RARCH_CONTENT_MUSIC: case RARCH_CONTENT_MUSIC:
global->has_set_libretro = false; global->has_set_libretro = false;
global->core_type = CORE_TYPE_FFMPEG; global->core_type = CORE_TYPE_FFMPEG;
break; break;
case RARCH_CONTENT_IMAGE:
global->has_set_libretro = false;
global->core_type = CORE_TYPE_IMAGEVIEWER;
break;
default: default:
break; break;
} }

View File

@ -40,11 +40,35 @@ enum action_state
RARCH_ACTION_STATE_FORCE_QUIT 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 enum rarch_content_type
{ {
RARCH_CONTENT_NONE = 0, RARCH_CONTENT_NONE = 0,
RARCH_CONTENT_MOVIE, RARCH_CONTENT_MOVIE,
RARCH_CONTENT_MUSIC RARCH_CONTENT_MUSIC,
RARCH_CONTENT_IMAGE
}; };
enum rarch_capabilities 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); int rarch_info_get_capabilities(enum rarch_capabilities type, char *s, size_t len);
#ifdef HAVE_FFMPEG enum rarch_content_type rarch_path_is_media_type(const char *path);
enum rarch_content_type rarch_mediaplayer_is_media_type(const char *path);
#endif
extern char orig_savestate_dir[PATH_MAX_LENGTH]; extern char orig_savestate_dir[PATH_MAX_LENGTH];
extern char orig_savefile_dir[PATH_MAX_LENGTH]; extern char orig_savefile_dir[PATH_MAX_LENGTH];