mirror of
https://github.com/libretro/RetroArch
synced 2025-03-02 19:13:34 +00:00
Add BSV movie flags
This commit is contained in:
parent
bbd6c0ae9a
commit
e62abac647
17
command.h
17
command.h
@ -294,19 +294,22 @@ command_t* command_uds_new(void);
|
||||
bool command_network_send(const char *cmd_);
|
||||
|
||||
#ifdef HAVE_BSV_MOVIE
|
||||
enum bsv_flags
|
||||
{
|
||||
BSV_FLAG_MOVIE_START_RECORDING = (1 << 0),
|
||||
BSV_FLAG_MOVIE_START_PLAYBACK = (1 << 1),
|
||||
BSV_FLAG_MOVIE_PLAYBACK = (1 << 2),
|
||||
BSV_FLAG_MOVIE_EOF_EXIT = (1 << 3),
|
||||
BSV_FLAG_MOVIE_END = (1 << 4)
|
||||
};
|
||||
|
||||
struct bsv_state
|
||||
{
|
||||
uint8_t flags;
|
||||
/* Movie playback/recording support. */
|
||||
char movie_path[PATH_MAX_LENGTH];
|
||||
/* Immediate playback/recording. */
|
||||
char movie_start_path[PATH_MAX_LENGTH];
|
||||
|
||||
bool movie_start_recording;
|
||||
bool movie_start_playback;
|
||||
bool movie_playback;
|
||||
bool eof_exit;
|
||||
bool movie_end;
|
||||
|
||||
};
|
||||
|
||||
struct bsv_movie
|
||||
|
@ -222,9 +222,9 @@ enum input_turbo_default_button
|
||||
#define GET_HAT(x) (x & (~HAT_MASK))
|
||||
|
||||
#ifdef HAVE_BSV_MOVIE
|
||||
#define BSV_MOVIE_IS_PLAYBACK_ON() (input_st->bsv_movie_state_handle && input_st->bsv_movie_state.movie_playback)
|
||||
#define BSV_MOVIE_IS_PLAYBACK_OFF() (input_st->bsv_movie_state_handle && \
|
||||
!input_st->bsv_movie_state.movie_playback)
|
||||
#define BSV_MOVIE_IS_PLAYBACK_ON() (input_st->bsv_movie_state_handle && (input_st->bsv_movie_state.flags & BSV_FLAG_MOVIE_PLAYBACK))
|
||||
#define BSV_MOVIE_IS_PLAYBACK_OFF() (input_st->bsv_movie_state_handle && (!(input_st->bsv_movie_state.flags & BSV_FLAG_MOVIE_PLAYBACK)))
|
||||
|
||||
#endif
|
||||
|
||||
RETRO_END_DECLS
|
||||
|
@ -4765,7 +4765,7 @@ void bsv_movie_frame_rewind(void)
|
||||
bool bsv_movie_init(input_driver_state_t *input_st)
|
||||
{
|
||||
bsv_movie_t *state = NULL;
|
||||
if (input_st->bsv_movie_state.movie_start_playback)
|
||||
if (input_st->bsv_movie_state.flags & BSV_FLAG_MOVIE_START_PLAYBACK)
|
||||
{
|
||||
const char *starting_movie_str = NULL;
|
||||
if (!(state = bsv_movie_init_internal(
|
||||
@ -4778,8 +4778,8 @@ bool bsv_movie_init(input_driver_state_t *input_st)
|
||||
return false;
|
||||
}
|
||||
|
||||
input_st->bsv_movie_state_handle = state;
|
||||
input_st->bsv_movie_state.movie_playback = true;
|
||||
input_st->bsv_movie_state_handle = state;
|
||||
input_st->bsv_movie_state.flags |= BSV_FLAG_MOVIE_PLAYBACK;
|
||||
starting_movie_str =
|
||||
msg_hash_to_str(MSG_STARTING_MOVIE_PLAYBACK);
|
||||
|
||||
@ -4790,7 +4790,7 @@ bool bsv_movie_init(input_driver_state_t *input_st)
|
||||
|
||||
return true;
|
||||
}
|
||||
else if (input_st->bsv_movie_state.movie_start_recording)
|
||||
else if (input_st->bsv_movie_state.flags & BSV_FLAG_MOVIE_START_RECORDING)
|
||||
{
|
||||
char msg[8192];
|
||||
const char *movie_rec_str = msg_hash_to_str(MSG_STARTING_MOVIE_RECORD_TO);
|
||||
@ -4837,11 +4837,11 @@ bool bsv_movie_check(input_driver_state_t *input_st,
|
||||
if (!input_st->bsv_movie_state_handle)
|
||||
return runloop_check_movie_init(input_st, settings);
|
||||
|
||||
if (input_st->bsv_movie_state.movie_playback)
|
||||
if (input_st->bsv_movie_state.flags & BSV_FLAG_MOVIE_PLAYBACK)
|
||||
{
|
||||
const char *movie_playback_end_str = NULL;
|
||||
/* Checks if movie is being played back. */
|
||||
if (!input_st->bsv_movie_state.movie_end)
|
||||
if (!(input_st->bsv_movie_state.flags & BSV_FLAG_MOVIE_END))
|
||||
return false;
|
||||
movie_playback_end_str = msg_hash_to_str(MSG_MOVIE_PLAYBACK_ENDED);
|
||||
runloop_msg_queue_push(
|
||||
@ -4851,9 +4851,9 @@ bool bsv_movie_check(input_driver_state_t *input_st,
|
||||
|
||||
bsv_movie_deinit(input_st);
|
||||
|
||||
input_st->bsv_movie_state.movie_end = false;
|
||||
input_st->bsv_movie_state.movie_playback = false;
|
||||
|
||||
input_st->bsv_movie_state.flags &= ~(
|
||||
BSV_FLAG_MOVIE_END
|
||||
| BSV_FLAG_MOVIE_PLAYBACK);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -5102,7 +5102,7 @@ int16_t input_driver_state_wrapper(unsigned port, unsigned device,
|
||||
return swap_if_big16(bsv_result);
|
||||
}
|
||||
|
||||
input_st->bsv_movie_state.movie_end = true;
|
||||
input_st->bsv_movie_state.flags |= BSV_FLAG_MOVIE_END;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
18
retroarch.c
18
retroarch.c
@ -4879,9 +4879,10 @@ static bool retroarch_parse_input_and_config(
|
||||
input_driver_state_t *input_st = input_state_get_ptr();
|
||||
strlcpy(input_st->bsv_movie_state.movie_start_path, optarg,
|
||||
sizeof(input_st->bsv_movie_state.movie_start_path));
|
||||
|
||||
input_st->bsv_movie_state.movie_start_playback = true;
|
||||
input_st->bsv_movie_state.movie_start_recording = false;
|
||||
input_st->bsv_movie_state.flags |=
|
||||
BSV_FLAG_MOVIE_START_PLAYBACK;
|
||||
input_st->bsv_movie_state.flags &=
|
||||
~BSV_FLAG_MOVIE_START_RECORDING;
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
@ -4891,9 +4892,10 @@ static bool retroarch_parse_input_and_config(
|
||||
input_driver_state_t *input_st = input_state_get_ptr();
|
||||
strlcpy(input_st->bsv_movie_state.movie_start_path, optarg,
|
||||
sizeof(input_st->bsv_movie_state.movie_start_path));
|
||||
|
||||
input_st->bsv_movie_state.movie_start_playback = false;
|
||||
input_st->bsv_movie_state.movie_start_recording = true;
|
||||
input_st->bsv_movie_state.flags &=
|
||||
~BSV_FLAG_MOVIE_START_PLAYBACK;
|
||||
input_st->bsv_movie_state.flags |=
|
||||
BSV_FLAG_MOVIE_START_RECORDING;
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
@ -5051,8 +5053,8 @@ static bool retroarch_parse_input_and_config(
|
||||
case RA_OPT_EOF_EXIT:
|
||||
#ifdef HAVE_BSV_MOVIE
|
||||
{
|
||||
input_driver_state_t *input_st = input_state_get_ptr();
|
||||
input_st->bsv_movie_state.eof_exit = true;
|
||||
input_driver_state_t *input_st = input_state_get_ptr();
|
||||
input_st->bsv_movie_state.flags |= BSV_FLAG_MOVIE_EOF_EXIT;
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
@ -306,8 +306,7 @@ struct runloop
|
||||
typedef struct runloop runloop_state_t;
|
||||
|
||||
#ifdef HAVE_BSV_MOVIE
|
||||
#define BSV_MOVIE_IS_EOF() || (input_st->bsv_movie_state.movie_end && \
|
||||
input_st->bsv_movie_state.eof_exit)
|
||||
#define BSV_MOVIE_IS_EOF() || (((input_st->bsv_movie_state.flags & BSV_FLAG_MOVIE_END) && (input_st->bsv_movie_state.flags & BSV_FLAG_MOVIE_EOF_EXIT)))
|
||||
#else
|
||||
#define BSV_MOVIE_IS_EOF()
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user