mirror of
https://github.com/libretro/RetroArch
synced 2025-04-03 01:21:10 +00:00
Refactor bsv_movie_init code
This commit is contained in:
parent
ce8083fd2e
commit
e09358c712
@ -2426,11 +2426,11 @@ bool command_event(enum event_command cmd, void *data)
|
|||||||
return false;
|
return false;
|
||||||
break;
|
break;
|
||||||
case CMD_EVENT_BSV_MOVIE_DEINIT:
|
case CMD_EVENT_BSV_MOVIE_DEINIT:
|
||||||
bsv_movie_ctl(BSV_MOVIE_CTL_DEINIT, NULL);
|
bsv_movie_deinit();
|
||||||
break;
|
break;
|
||||||
case CMD_EVENT_BSV_MOVIE_INIT:
|
case CMD_EVENT_BSV_MOVIE_INIT:
|
||||||
command_event(CMD_EVENT_BSV_MOVIE_DEINIT, NULL);
|
command_event(CMD_EVENT_BSV_MOVIE_DEINIT, NULL);
|
||||||
bsv_movie_ctl(BSV_MOVIE_CTL_INIT, NULL);
|
bsv_movie_init();
|
||||||
break;
|
break;
|
||||||
#ifdef HAVE_NETWORKING
|
#ifdef HAVE_NETWORKING
|
||||||
case CMD_EVENT_NETPLAY_DEINIT:
|
case CMD_EVENT_NETPLAY_DEINIT:
|
||||||
|
38
movie.c
38
movie.c
@ -211,7 +211,7 @@ static void bsv_movie_free(bsv_movie_t *handle)
|
|||||||
free(handle);
|
free(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bsv_movie_t *bsv_movie_init(const char *path,
|
static bsv_movie_t *bsv_movie_init_internal(const char *path,
|
||||||
enum rarch_movie_type type)
|
enum rarch_movie_type type)
|
||||||
{
|
{
|
||||||
size_t *frame_pos = NULL;
|
size_t *frame_pos = NULL;
|
||||||
@ -315,14 +315,16 @@ static void bsv_movie_frame_rewind(bsv_movie_t *handle)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void bsv_movie_init_state(void)
|
bool bsv_movie_init(void)
|
||||||
{
|
{
|
||||||
bool set_granularity = false;
|
bool set_granularity = false;
|
||||||
|
bool ret = true;
|
||||||
|
|
||||||
if (bsv_movie_state.movie_start_playback)
|
if (bsv_movie_state.movie_start_playback)
|
||||||
{
|
{
|
||||||
if (!(bsv_movie_init_handle(bsv_movie_state.movie_start_path,
|
ret = bsv_movie_init_handle(bsv_movie_state.movie_start_path,
|
||||||
RARCH_MOVIE_PLAYBACK)))
|
RARCH_MOVIE_PLAYBACK);
|
||||||
|
if (!ret)
|
||||||
{
|
{
|
||||||
RARCH_ERR("%s: \"%s\".\n",
|
RARCH_ERR("%s: \"%s\".\n",
|
||||||
msg_hash_to_str(MSG_FAILED_TO_LOAD_MOVIE_FILE),
|
msg_hash_to_str(MSG_FAILED_TO_LOAD_MOVIE_FILE),
|
||||||
@ -345,14 +347,15 @@ static void bsv_movie_init_state(void)
|
|||||||
msg_hash_to_str(MSG_STARTING_MOVIE_RECORD_TO),
|
msg_hash_to_str(MSG_STARTING_MOVIE_RECORD_TO),
|
||||||
bsv_movie_state.movie_start_path);
|
bsv_movie_state.movie_start_path);
|
||||||
|
|
||||||
if (!(bsv_movie_init_handle(bsv_movie_state.movie_start_path,
|
ret = bsv_movie_init_handle(bsv_movie_state.movie_start_path,
|
||||||
RARCH_MOVIE_RECORD)))
|
RARCH_MOVIE_RECORD);
|
||||||
|
if (!ret)
|
||||||
{
|
{
|
||||||
runloop_msg_queue_push(
|
runloop_msg_queue_push(
|
||||||
msg_hash_to_str(MSG_FAILED_TO_START_MOVIE_RECORD),
|
msg_hash_to_str(MSG_FAILED_TO_START_MOVIE_RECORD),
|
||||||
1, 180, true);
|
1, 180, true);
|
||||||
RARCH_ERR("%s.\n", msg_hash_to_str(MSG_FAILED_TO_START_MOVIE_RECORD));
|
RARCH_ERR("%s.\n", msg_hash_to_str(MSG_FAILED_TO_START_MOVIE_RECORD));
|
||||||
return;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
runloop_msg_queue_push(msg, 1, 180, true);
|
runloop_msg_queue_push(msg, 1, 180, true);
|
||||||
@ -368,6 +371,8 @@ static void bsv_movie_init_state(void)
|
|||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
configuration_set_uint(settings, settings->uints.rewind_granularity, 1);
|
configuration_set_uint(settings, settings->uints.rewind_granularity, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool bsv_movie_get_input(int16_t *bsv_data)
|
bool bsv_movie_get_input(int16_t *bsv_data)
|
||||||
@ -425,14 +430,6 @@ bool bsv_movie_ctl(enum bsv_ctl_state state, void *data)
|
|||||||
case BSV_MOVIE_CTL_UNSET_PLAYBACK:
|
case BSV_MOVIE_CTL_UNSET_PLAYBACK:
|
||||||
bsv_movie_state.movie_playback = false;
|
bsv_movie_state.movie_playback = false;
|
||||||
break;
|
break;
|
||||||
case BSV_MOVIE_CTL_DEINIT:
|
|
||||||
if (bsv_movie_state_handle)
|
|
||||||
bsv_movie_free(bsv_movie_state_handle);
|
|
||||||
bsv_movie_state_handle = NULL;
|
|
||||||
break;
|
|
||||||
case BSV_MOVIE_CTL_INIT:
|
|
||||||
bsv_movie_init_state();
|
|
||||||
break;
|
|
||||||
case BSV_MOVIE_CTL_FRAME_REWIND:
|
case BSV_MOVIE_CTL_FRAME_REWIND:
|
||||||
bsv_movie_frame_rewind(bsv_movie_state_handle);
|
bsv_movie_frame_rewind(bsv_movie_state_handle);
|
||||||
break;
|
break;
|
||||||
@ -467,12 +464,21 @@ void bsv_movie_set_start_path(const char *path)
|
|||||||
bool bsv_movie_init_handle(const char *path,
|
bool bsv_movie_init_handle(const char *path,
|
||||||
enum rarch_movie_type type)
|
enum rarch_movie_type type)
|
||||||
{
|
{
|
||||||
bsv_movie_state_handle = bsv_movie_init(path, type);
|
bsv_movie_state_handle = bsv_movie_init_internal(path, type);
|
||||||
if (!bsv_movie_state_handle)
|
if (!bsv_movie_state_handle)
|
||||||
return false;
|
return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void bsv_movie_deinit(void)
|
||||||
|
{
|
||||||
|
if (!bsv_movie_state_handle)
|
||||||
|
return;
|
||||||
|
|
||||||
|
bsv_movie_free(bsv_movie_state_handle);
|
||||||
|
bsv_movie_state_handle = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Checks if movie is being played back. */
|
/* Checks if movie is being played back. */
|
||||||
static bool bsv_movie_check_movie_playback(void)
|
static bool bsv_movie_check_movie_playback(void)
|
||||||
{
|
{
|
||||||
|
6
movie.h
6
movie.h
@ -51,13 +51,15 @@ enum bsv_ctl_state
|
|||||||
BSV_MOVIE_CTL_UNSET_START_PLAYBACK,
|
BSV_MOVIE_CTL_UNSET_START_PLAYBACK,
|
||||||
BSV_MOVIE_CTL_UNSET_PLAYBACK,
|
BSV_MOVIE_CTL_UNSET_PLAYBACK,
|
||||||
BSV_MOVIE_CTL_FRAME_REWIND,
|
BSV_MOVIE_CTL_FRAME_REWIND,
|
||||||
BSV_MOVIE_CTL_DEINIT,
|
|
||||||
BSV_MOVIE_CTL_INIT,
|
|
||||||
BSV_MOVIE_CTL_SET_END_EOF,
|
BSV_MOVIE_CTL_SET_END_EOF,
|
||||||
BSV_MOVIE_CTL_SET_END,
|
BSV_MOVIE_CTL_SET_END,
|
||||||
BSV_MOVIE_CTL_UNSET_END
|
BSV_MOVIE_CTL_UNSET_END
|
||||||
};
|
};
|
||||||
|
|
||||||
|
void bsv_movie_deinit(void);
|
||||||
|
|
||||||
|
bool bsv_movie_init(void);
|
||||||
|
|
||||||
bool bsv_movie_is_playback_on(void);
|
bool bsv_movie_is_playback_on(void);
|
||||||
|
|
||||||
bool bsv_movie_is_playback_off(void);
|
bool bsv_movie_is_playback_off(void);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user