mirror of
https://github.com/CTCaer/RetroArch.git
synced 2024-12-13 22:08:34 +00:00
Merge pull request #7225 from fr500/master
WIP: [record] start whipping some sense into this feature
This commit is contained in:
commit
4f85ca5f9a
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -18,7 +18,8 @@
|
||||
"driver.h": "c",
|
||||
"iosfwd": "c",
|
||||
"xlocbuf": "c",
|
||||
"xmemory0": "c"
|
||||
"xmemory0": "c",
|
||||
"ios": "c"
|
||||
},
|
||||
"C_Cpp.dimInactiveRegions": false,
|
||||
}
|
18
command.c
18
command.c
@ -161,7 +161,7 @@ static const struct cmd_map map[] = {
|
||||
{ "STATE_SLOT_PLUS", RARCH_STATE_SLOT_PLUS },
|
||||
{ "STATE_SLOT_MINUS", RARCH_STATE_SLOT_MINUS },
|
||||
{ "REWIND", RARCH_REWIND },
|
||||
{ "MOVIE_RECORD_TOGGLE", RARCH_MOVIE_RECORD_TOGGLE },
|
||||
{ "BSV_RECORD_TOGGLE", RARCH_BSV_RECORD_TOGGLE },
|
||||
{ "PAUSE_TOGGLE", RARCH_PAUSE_TOGGLE },
|
||||
{ "FRAMEADVANCE", RARCH_FRAMEADVANCE },
|
||||
{ "RESET", RARCH_RESET },
|
||||
@ -2172,13 +2172,19 @@ TODO: Add a setting for these tweaks */
|
||||
video_driver_gpu_record_deinit();
|
||||
break;
|
||||
case CMD_EVENT_RECORD_DEINIT:
|
||||
if (!recording_deinit())
|
||||
return false;
|
||||
{
|
||||
recording_set_state(false);
|
||||
if (!recording_deinit())
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case CMD_EVENT_RECORD_INIT:
|
||||
command_event(CMD_EVENT_HISTORY_DEINIT, NULL);
|
||||
if (!recording_init())
|
||||
return false;
|
||||
{
|
||||
command_event(CMD_EVENT_RECORD_DEINIT, NULL);
|
||||
recording_set_state(true);
|
||||
if (!recording_init())
|
||||
return false;
|
||||
}
|
||||
break;
|
||||
case CMD_EVENT_HISTORY_DEINIT:
|
||||
if (g_defaults.content_history)
|
||||
|
@ -657,6 +657,10 @@ static const unsigned libretro_log_level = 1;
|
||||
#define RARCH_DEFAULT_PORT 55435
|
||||
#endif
|
||||
|
||||
#ifndef RARCH_STREAM_DEFAULT_PORT
|
||||
#define RARCH_STREAM_DEFAULT_PORT 56400
|
||||
#endif
|
||||
|
||||
/* KEYBINDS, JOYPAD */
|
||||
|
||||
/* Axis threshold (between 0.0 and 1.0)
|
||||
|
@ -75,7 +75,7 @@ static const struct retro_keybind retro_keybinds_1[] = {
|
||||
{ true, RARCH_STATE_SLOT_PLUS, MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_PLUS, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_STATE_SLOT_MINUS, MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_MINUS, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_REWIND, MENU_ENUM_LABEL_VALUE_INPUT_META_REWIND, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_MOVIE_RECORD_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_BSV_RECORD_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_PAUSE_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_PAUSE_TOGGLE, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_FRAMEADVANCE, MENU_ENUM_LABEL_VALUE_INPUT_META_FRAMEADVANCE, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_RESET, MENU_ENUM_LABEL_VALUE_INPUT_META_RESET, RETROK_UNKNOWN, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
@ -151,7 +151,7 @@ static const struct retro_keybind retro_keybinds_1[] = {
|
||||
{ true, RARCH_STATE_SLOT_PLUS, MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_PLUS, RETROK_F7, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_STATE_SLOT_MINUS, MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_MINUS, RETROK_F6, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_REWIND, MENU_ENUM_LABEL_VALUE_INPUT_META_REWIND, RETROK_r, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_MOVIE_RECORD_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE, RETROK_o, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_BSV_RECORD_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE, RETROK_o, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_PAUSE_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_PAUSE_TOGGLE, RETROK_p, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_FRAMEADVANCE, MENU_ENUM_LABEL_VALUE_INPUT_META_FRAMEADVANCE, RETROK_k, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
{ true, RARCH_RESET, MENU_ENUM_LABEL_VALUE_INPUT_META_RESET, RETROK_h, NO_BTN, NO_BTN, 0, AXIS_NONE },
|
||||
|
@ -1159,6 +1159,14 @@ static struct config_path_setting *populate_settings_path(settings_t *settings,
|
||||
#ifdef HAVE_OVERLAY
|
||||
SETTING_PATH("input_overlay",
|
||||
settings->paths.path_overlay, false, NULL, true);
|
||||
#endif
|
||||
#ifdef HAVE_FFMPEG
|
||||
SETTING_PATH("video_record_config",
|
||||
settings->paths.path_record_config, false, NULL, true);
|
||||
SETTING_PATH("video_stream_config",
|
||||
settings->paths.path_stream_config, false, NULL, true);
|
||||
SETTING_PATH("video_stream_url",
|
||||
settings->paths.path_stream_url, false, NULL, true);
|
||||
#endif
|
||||
SETTING_PATH("video_font_path",
|
||||
settings->paths.path_font, false, NULL, true);
|
||||
@ -1582,6 +1590,7 @@ static struct config_uint_setting *populate_settings_uint(settings_t *settings,
|
||||
SETTING_UINT("aspect_ratio_index", &settings->uints.video_aspect_ratio_idx, true, aspect_ratio_idx, false);
|
||||
#ifdef HAVE_NETWORKING
|
||||
SETTING_UINT("netplay_ip_port", &settings->uints.netplay_port, true, RARCH_DEFAULT_PORT, false);
|
||||
SETTING_UINT("video_stream_port", &settings->uints.video_stream_port, true, RARCH_STREAM_DEFAULT_PORT, false);
|
||||
SETTING_OVERRIDE(RARCH_OVERRIDE_SETTING_NETPLAY_IP_PORT);
|
||||
SETTING_UINT("netplay_input_latency_frames_min",&settings->uints.netplay_input_latency_frames_min, true, 0, false);
|
||||
SETTING_UINT("netplay_input_latency_frames_range",&settings->uints.netplay_input_latency_frames_range, true, 0, false);
|
||||
@ -1924,6 +1933,9 @@ static void config_set_defaults(void)
|
||||
*settings->paths.path_menu_wallpaper = '\0';
|
||||
*settings->paths.path_content_database = '\0';
|
||||
*settings->paths.path_overlay = '\0';
|
||||
*settings->paths.path_record_config = '\0';
|
||||
*settings->paths.path_stream_config = '\0';
|
||||
*settings->paths.path_stream_url = '\0';
|
||||
*settings->paths.path_softfilter_plugin = '\0';
|
||||
|
||||
*settings->arrays.playlist_names = '\0';
|
||||
|
@ -385,6 +385,7 @@ typedef struct settings
|
||||
unsigned video_msg_bgcolor_red;
|
||||
unsigned video_msg_bgcolor_green;
|
||||
unsigned video_msg_bgcolor_blue;
|
||||
unsigned video_stream_port;
|
||||
|
||||
unsigned menu_thumbnails;
|
||||
unsigned menu_left_thumbnails;
|
||||
@ -489,6 +490,9 @@ typedef struct settings
|
||||
char path_cheat_database[PATH_MAX_LENGTH];
|
||||
char path_content_database[PATH_MAX_LENGTH];
|
||||
char path_overlay[PATH_MAX_LENGTH];
|
||||
char path_record_config[PATH_MAX_LENGTH];
|
||||
char path_stream_config[PATH_MAX_LENGTH];
|
||||
char path_stream_url[PATH_MAX_LENGTH];
|
||||
char path_menu_wallpaper[PATH_MAX_LENGTH];
|
||||
char path_audio_dsp_plugin[PATH_MAX_LENGTH];
|
||||
char path_softfilter_plugin[PATH_MAX_LENGTH];
|
||||
@ -503,7 +507,6 @@ typedef struct settings
|
||||
char path_shader[PATH_MAX_LENGTH];
|
||||
char path_font[PATH_MAX_LENGTH];
|
||||
|
||||
|
||||
char directory_audio_filter[PATH_MAX_LENGTH];
|
||||
char directory_autoconfig[PATH_MAX_LENGTH];
|
||||
char directory_video_filter[PATH_MAX_LENGTH];
|
||||
|
@ -1094,8 +1094,8 @@ static void vulkan_init_readback(vk_t *vk)
|
||||
* not initialized yet.
|
||||
*/
|
||||
settings_t *settings = config_get_ptr();
|
||||
bool *recording_enabled = recording_is_enabled();
|
||||
vk->readback.streamed = settings->bools.video_gpu_record && *recording_enabled;
|
||||
bool recording_enabled = recording_is_enabled();
|
||||
vk->readback.streamed = settings->bools.video_gpu_record && recording_enabled;
|
||||
|
||||
if (!vk->readback.streamed)
|
||||
return;
|
||||
|
@ -85,7 +85,7 @@ enum
|
||||
RARCH_STATE_SLOT_PLUS,
|
||||
RARCH_STATE_SLOT_MINUS,
|
||||
RARCH_REWIND,
|
||||
RARCH_MOVIE_RECORD_TOGGLE,
|
||||
RARCH_BSV_RECORD_TOGGLE,
|
||||
RARCH_PAUSE_TOGGLE,
|
||||
RARCH_FRAMEADVANCE,
|
||||
RARCH_RESET,
|
||||
|
@ -325,7 +325,7 @@ const struct input_bind_map input_config_bind_map[RARCH_BIND_LIST_END_NULL] = {
|
||||
DECLARE_META_BIND(2, state_slot_increase, RARCH_STATE_SLOT_PLUS, MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_PLUS),
|
||||
DECLARE_META_BIND(2, state_slot_decrease, RARCH_STATE_SLOT_MINUS, MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_MINUS),
|
||||
DECLARE_META_BIND(1, rewind, RARCH_REWIND, MENU_ENUM_LABEL_VALUE_INPUT_META_REWIND),
|
||||
DECLARE_META_BIND(2, movie_record_toggle, RARCH_MOVIE_RECORD_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE),
|
||||
DECLARE_META_BIND(2, movie_record_toggle, RARCH_BSV_RECORD_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE),
|
||||
DECLARE_META_BIND(2, pause_toggle, RARCH_PAUSE_TOGGLE, MENU_ENUM_LABEL_VALUE_INPUT_META_PAUSE_TOGGLE),
|
||||
DECLARE_META_BIND(2, frame_advance, RARCH_FRAMEADVANCE, MENU_ENUM_LABEL_VALUE_INPUT_META_FRAMEADVANCE),
|
||||
DECLARE_META_BIND(2, reset, RARCH_RESET, MENU_ENUM_LABEL_VALUE_INPUT_META_RESET),
|
||||
|
@ -209,7 +209,7 @@ int menu_hash_get_help_ar_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
" \n"
|
||||
"Rewinding must be enabled.");
|
||||
break;
|
||||
case RARCH_MOVIE_RECORD_TOGGLE:
|
||||
case RARCH_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Toggle between recording and not.");
|
||||
break;
|
||||
@ -1929,7 +1929,7 @@ int menu_hash_get_help_ar_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
snprintf(s, len,
|
||||
"Frame advance when content is paused.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MOVIE_RECORD_TOGGLE:
|
||||
case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Toggle between recording and not.");
|
||||
break;
|
||||
|
@ -876,7 +876,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"Load state")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"Menu toggle")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"Movie record toggle")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"Audio mute toggle")
|
||||
|
@ -189,7 +189,7 @@ int menu_hash_get_help_chs_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
" \n"
|
||||
"回溯功能必须被启用。");
|
||||
break;
|
||||
case RARCH_MOVIE_RECORD_TOGGLE:
|
||||
case RARCH_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"在录制和非录制模式切换。");
|
||||
break;
|
||||
@ -1773,7 +1773,7 @@ int menu_hash_get_help_chs_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
snprintf(s, len,
|
||||
"Frame advance when content is paused.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MOVIE_RECORD_TOGGLE:
|
||||
case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Toggle between recording and not.");
|
||||
break;
|
||||
|
@ -815,7 +815,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"加载状态")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"切换菜单")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"视频录制开关")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"静音开关")
|
||||
|
@ -189,7 +189,7 @@ int menu_hash_get_help_cht_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
" \n"
|
||||
"回溯功能必須被啟用。");
|
||||
break;
|
||||
case RARCH_MOVIE_RECORD_TOGGLE:
|
||||
case RARCH_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"在錄製和非錄製模式切換。");
|
||||
break;
|
||||
@ -1770,7 +1770,7 @@ int menu_hash_get_help_cht_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
snprintf(s, len,
|
||||
"Frame advance when content is paused.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MOVIE_RECORD_TOGGLE:
|
||||
case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Toggle between recording and not.");
|
||||
break;
|
||||
|
@ -815,7 +815,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"戴入狀態")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"切換選單")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"視訊錄製開關")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"靜音開關")
|
||||
|
@ -191,7 +191,7 @@ int menu_hash_get_help_de_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
" \n"
|
||||
"Die Zurückspulfunktion muss eingeschaltet sein.");
|
||||
break;
|
||||
case RARCH_MOVIE_RECORD_TOGGLE:
|
||||
case RARCH_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Aufnahme starten/beenden.");
|
||||
break;
|
||||
@ -1917,7 +1917,7 @@ int menu_hash_get_help_de_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
snprintf(s, len,
|
||||
"Einzelbild-Vorlauf, wenn Inhalt pausiert ist.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MOVIE_RECORD_TOGGLE:
|
||||
case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Aufnahme starten/beenden.");
|
||||
break;
|
||||
|
@ -822,7 +822,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"Spielstand laden")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"Menü aufrufen")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"Videoaufzeichnung starten/beenden")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"Audio stumm-/lautschalten")
|
||||
|
@ -735,7 +735,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"Load state")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"Menu toggle")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"Movie record toggle")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"Audio mute toggle")
|
||||
|
@ -1119,7 +1119,7 @@ int menu_hash_get_help_es_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
"Avanza un fotograma mientras \n"
|
||||
"el contenido esté en pausa.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MOVIE_RECORD_TOGGLE:
|
||||
case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Activa o desactiva la grabación.");
|
||||
break;
|
||||
|
@ -1246,7 +1246,7 @@ MSG_HASH(
|
||||
"Mostrar menú"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"Grabar video"
|
||||
)
|
||||
MSG_HASH(
|
||||
|
@ -816,7 +816,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"Charger un état")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"Afficher le menu")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"Activer l'enregistrement")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"Sourdine")
|
||||
|
@ -995,7 +995,7 @@ int menu_hash_get_help_it_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
snprintf(s, len,
|
||||
"Frame advance when content is paused.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MOVIE_RECORD_TOGGLE:
|
||||
case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Toggle between recording and not.");
|
||||
break;
|
||||
|
@ -824,7 +824,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"Pulsante Carica Stato")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"Pulsante per il Menu")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"Pulsante registratore Film")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"Pulsante per disattivare l'audio ")
|
||||
|
@ -191,7 +191,7 @@ int menu_hash_get_help_jp_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
" \n"
|
||||
"Rewinding must be enabled.");
|
||||
break;
|
||||
case RARCH_MOVIE_RECORD_TOGGLE:
|
||||
case RARCH_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Toggle between recording and not.");
|
||||
break;
|
||||
@ -1802,7 +1802,7 @@ int menu_hash_get_help_jp_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
snprintf(s, len,
|
||||
"Frame advance when content is paused.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MOVIE_RECORD_TOGGLE:
|
||||
case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Toggle between recording and not.");
|
||||
break;
|
||||
|
@ -921,7 +921,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"保存状態をロード")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"メニューに切り替え")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"録画")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"消音")
|
||||
|
@ -196,7 +196,7 @@ int menu_hash_get_help_ko_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
" \n"
|
||||
"Rewinding must be enabled.");
|
||||
break;
|
||||
case RARCH_MOVIE_RECORD_TOGGLE:
|
||||
case RARCH_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Toggle between recording and not.");
|
||||
break;
|
||||
@ -1881,7 +1881,7 @@ int menu_hash_get_help_ko_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
snprintf(s, len,
|
||||
"Frame advance when content is paused.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MOVIE_RECORD_TOGGLE:
|
||||
case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Toggle between recording and not.");
|
||||
break;
|
||||
|
@ -802,7 +802,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"상태 불러오기")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"메뉴 열기/닫기")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"동영상 기록 시작/중지")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"음소거 켜기/끄기")
|
||||
|
@ -735,7 +735,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"Load state")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"Menu toggle")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"Movie record toggle")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"Audio mute toggle")
|
||||
|
@ -880,7 +880,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"Wczytaj zapis")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"Przełączanie menu")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"Przełącznik nagrywania filmu")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"Przełącznik wyciszania dźwięku")
|
||||
|
@ -203,7 +203,7 @@ int menu_hash_get_help_pt_br_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
" \n"
|
||||
"Voltar Atrás precisa estar habilitado.");
|
||||
break;
|
||||
case RARCH_MOVIE_RECORD_TOGGLE:
|
||||
case RARCH_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Alternar entre gravando ou não.");
|
||||
break;
|
||||
@ -1984,7 +1984,7 @@ int menu_hash_get_help_pt_br_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
"Avanço de quadro quando o conteúdo \n"
|
||||
"estiver pausado.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MOVIE_RECORD_TOGGLE:
|
||||
case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Alternar entre gravando ou não.");
|
||||
break;
|
||||
|
@ -1246,7 +1246,7 @@ MSG_HASH(
|
||||
"Alternar menu"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"Alternar gravação de filme"
|
||||
)
|
||||
MSG_HASH(
|
||||
|
@ -901,7 +901,7 @@ int menu_hash_get_help_pt_pt_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
snprintf(s, len,
|
||||
"O fotograma avança enquanto o conteúdo está em pausa.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MOVIE_RECORD_TOGGLE:
|
||||
case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Ativa ou desativa a gravação.");
|
||||
break;
|
||||
|
@ -802,7 +802,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"Carregar estado")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"Mostrar/esconder menu")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"Iniciar/parar gravação de filme")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"Silenciar som/remover silêncio")
|
||||
|
@ -825,7 +825,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"Загрузить сохраненную игру")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"Отобразить меню")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"Записать видео")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"Заглушить звук")
|
||||
|
@ -205,7 +205,7 @@ int menu_hash_get_help_us_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
" \n"
|
||||
"Rewinding must be enabled.");
|
||||
break;
|
||||
case RARCH_MOVIE_RECORD_TOGGLE:
|
||||
case RARCH_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Toggle between recording and not.");
|
||||
break;
|
||||
@ -2060,7 +2060,7 @@ int menu_hash_get_help_us_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
snprintf(s, len,
|
||||
"Frame advance when content is paused.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MOVIE_RECORD_TOGGLE:
|
||||
case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Toggle between recording and not.");
|
||||
break;
|
||||
|
@ -1246,8 +1246,8 @@ MSG_HASH(
|
||||
"Menu toggle"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
"Movie record toggle"
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"Input replay movie record toggle"
|
||||
)
|
||||
MSG_HASH(
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
@ -4159,15 +4159,15 @@ MSG_HASH(
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_MOVIE_FILE_IS_NOT_A_VALID_BSV1_FILE,
|
||||
"Movie file is not a valid BSV1 file."
|
||||
"Input replay movie file is not a valid BSV1 file."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_MOVIE_FORMAT_DIFFERENT_SERIALIZER_VERSION,
|
||||
"Movie format seems to have a different serializer version. Will most likely fail."
|
||||
"Input replay movie format seems to have a different serializer version. Will most likely fail."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_MOVIE_PLAYBACK_ENDED,
|
||||
"Movie playback ended."
|
||||
"Input replay movie playback ended."
|
||||
)
|
||||
MSG_HASH(
|
||||
MSG_MOVIE_RECORD_STOPPED,
|
||||
|
@ -191,7 +191,7 @@ int menu_hash_get_help_vn_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
" \n"
|
||||
"Cần phải bật chức năng quay lại.");
|
||||
break;
|
||||
case RARCH_MOVIE_RECORD_TOGGLE:
|
||||
case RARCH_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Bật/tắt ghi chép video.");
|
||||
break;
|
||||
@ -1803,7 +1803,7 @@ int menu_hash_get_help_vn_enum(enum msg_hash_enums msg, char *s, size_t len)
|
||||
snprintf(s, len,
|
||||
"Frame advance when content is paused.");
|
||||
break;
|
||||
case MENU_ENUM_LABEL_MOVIE_RECORD_TOGGLE:
|
||||
case MENU_ENUM_LABEL_BSV_RECORD_TOGGLE:
|
||||
snprintf(s, len,
|
||||
"Toggle between recording and not.");
|
||||
break;
|
||||
|
@ -816,7 +816,7 @@ MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_LOAD_STATE_KEY,
|
||||
"Tải state")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MENU_TOGGLE,
|
||||
"Menu toggle")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
"Movie record toggle")
|
||||
MSG_HASH(MENU_ENUM_LABEL_VALUE_INPUT_META_MUTE,
|
||||
"Âm thanh mute toggle")
|
||||
|
@ -5334,23 +5334,6 @@ static bool setting_append_list(
|
||||
parent_group = msg_hash_to_str(MENU_ENUM_LABEL_RECORDING_SETTINGS);
|
||||
|
||||
START_SUB_GROUP(list, list_info, "State", &group_info, &subgroup_info, parent_group);
|
||||
|
||||
CONFIG_BOOL(
|
||||
list, list_info,
|
||||
recording_is_enabled(),
|
||||
MENU_ENUM_LABEL_RECORD_ENABLE,
|
||||
MENU_ENUM_LABEL_VALUE_RECORD_ENABLE,
|
||||
false,
|
||||
MENU_ENUM_LABEL_VALUE_OFF,
|
||||
MENU_ENUM_LABEL_VALUE_ON,
|
||||
&group_info,
|
||||
&subgroup_info,
|
||||
parent_group,
|
||||
general_write_handler,
|
||||
general_read_handler,
|
||||
SD_FLAG_NONE
|
||||
);
|
||||
|
||||
CONFIG_PATH(
|
||||
list, list_info,
|
||||
global->record.config,
|
||||
|
@ -634,7 +634,7 @@ enum msg_hash_enums
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_QUIT_KEY,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_PLUS,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_STATE_SLOT_MINUS,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_MOVIE_RECORD_TOGGLE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_BSV_RECORD_TOGGLE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_PAUSE_TOGGLE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_FRAMEADVANCE,
|
||||
MENU_ENUM_LABEL_VALUE_INPUT_META_RESET,
|
||||
@ -1190,7 +1190,7 @@ enum msg_hash_enums
|
||||
MENU_LABEL(FPS_SHOW),
|
||||
MENU_LABEL(STATISTICS_SHOW),
|
||||
MENU_LABEL(FRAMECOUNT_SHOW),
|
||||
MENU_LABEL(MOVIE_RECORD_TOGGLE),
|
||||
MENU_LABEL(BSV_RECORD_TOGGLE),
|
||||
MENU_ENUM_LABEL_L_X_PLUS,
|
||||
MENU_ENUM_LABEL_L_X_MINUS,
|
||||
MENU_ENUM_LABEL_L_Y_PLUS,
|
||||
|
9
paths.c
9
paths.c
@ -721,6 +721,15 @@ enum rarch_content_type path_is_media_type(const char *path)
|
||||
|
||||
string_to_lower(ext_lower);
|
||||
|
||||
/* hack, to detect livestreams so the ffmpeg core can be started */
|
||||
if (
|
||||
strstr(path, "udp://") ||
|
||||
strstr(path, "tcp://") ||
|
||||
strstr(path, "rtmp://") ||
|
||||
strstr(path, "rtp://")
|
||||
)
|
||||
return RARCH_CONTENT_MOVIE;
|
||||
|
||||
switch (msg_hash_to_file_type(msg_hash_calculate(ext_lower)))
|
||||
{
|
||||
#if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
|
||||
|
@ -35,6 +35,7 @@
|
||||
#include "../verbosity.h"
|
||||
#include "../msg_hash.h"
|
||||
#include "../list_special.h"
|
||||
#include "paths.h"
|
||||
|
||||
|
||||
static const record_driver_t *record_drivers[] = {
|
||||
@ -50,6 +51,7 @@ unsigned recording_height = 0;
|
||||
size_t recording_gpu_width = 0;
|
||||
size_t recording_gpu_height = 0;
|
||||
static bool recording_enable = false;
|
||||
static bool streaming_enable = false;
|
||||
static bool recording_use_output_dir = false;
|
||||
|
||||
static const record_driver_t *recording_driver = NULL;
|
||||
@ -281,9 +283,9 @@ bool recording_deinit(void)
|
||||
return true;
|
||||
}
|
||||
|
||||
bool *recording_is_enabled(void)
|
||||
bool recording_is_enabled(void)
|
||||
{
|
||||
return &recording_enable;
|
||||
return recording_enable;
|
||||
}
|
||||
|
||||
void recording_set_state(bool state)
|
||||
@ -291,6 +293,16 @@ void recording_set_state(bool state)
|
||||
recording_enable = state;
|
||||
}
|
||||
|
||||
bool streaming_is_enabled(void)
|
||||
{
|
||||
return streaming_enable;
|
||||
}
|
||||
|
||||
void streaming_set_state(bool state)
|
||||
{
|
||||
streaming_enable = state;
|
||||
}
|
||||
|
||||
void recording_push_audio(const int16_t *data, size_t samples)
|
||||
{
|
||||
struct ffemu_audio_data ffemu_data;
|
||||
@ -309,19 +321,20 @@ void recording_push_audio(const int16_t *data, size_t samples)
|
||||
*
|
||||
* Returns: true (1) if successful, otherwise false (0).
|
||||
**/
|
||||
bool recording_init(void)
|
||||
bool recording_init()
|
||||
{
|
||||
char recording_file[PATH_MAX_LENGTH];
|
||||
char output[PATH_MAX_LENGTH];
|
||||
char buf[PATH_MAX_LENGTH];
|
||||
struct ffemu_params params = {0};
|
||||
struct retro_system_av_info *av_info = video_viewport_get_system_av_info();
|
||||
bool *recording_enabled = recording_is_enabled();
|
||||
bool recording_enabled = recording_is_enabled();
|
||||
settings_t *settings = config_get_ptr();
|
||||
global_t *global = global_get_ptr();
|
||||
|
||||
if (!*recording_enabled)
|
||||
if (!recording_enabled)
|
||||
return false;
|
||||
|
||||
recording_file[0] = '\0';
|
||||
output[0] = '\0';
|
||||
|
||||
if (rarch_ctl(RARCH_CTL_IS_DUMMY_CORE, NULL))
|
||||
{
|
||||
@ -343,19 +356,36 @@ bool recording_init(void)
|
||||
(float)av_info->timing.fps,
|
||||
(float)av_info->timing.sample_rate);
|
||||
|
||||
strlcpy(recording_file, global->record.path, sizeof(recording_file));
|
||||
if (!string_is_empty(global->record.path))
|
||||
strlcpy(output, global->record.path, sizeof(output));
|
||||
else
|
||||
{
|
||||
if(streaming_is_enabled())
|
||||
if (!string_is_empty(settings->paths.path_stream_url))
|
||||
strlcpy(output, settings->paths.path_stream_url, sizeof(output));
|
||||
else
|
||||
/* to-do determine the local interface, this won't work for connecting over the internet*/
|
||||
snprintf(output, sizeof(output), "udp://127.0.0.1:%u", settings->uints.video_stream_port);
|
||||
else
|
||||
{
|
||||
const char *game_name = path_basename(path_get(RARCH_PATH_BASENAME));
|
||||
fill_str_dated_filename(buf, game_name,
|
||||
"mkv", sizeof(buf));
|
||||
fill_pathname_join(output, global->record.output_dir, buf, sizeof(output));
|
||||
|
||||
}
|
||||
}
|
||||
if (recording_use_output_dir)
|
||||
fill_pathname_join(recording_file,
|
||||
fill_pathname_join(output,
|
||||
global->record.output_dir,
|
||||
global->record.path, sizeof(recording_file));
|
||||
global->record.path, sizeof(output));
|
||||
|
||||
params.out_width = av_info->geometry.base_width;
|
||||
params.out_height = av_info->geometry.base_height;
|
||||
params.fb_width = av_info->geometry.max_width;
|
||||
params.fb_height = av_info->geometry.max_height;
|
||||
params.channels = 2;
|
||||
params.filename = recording_file;
|
||||
params.filename = output;
|
||||
params.fps = av_info->timing.fps;
|
||||
params.samplerate = av_info->timing.sample_rate;
|
||||
params.pix_fmt = (video_driver_get_pixel_format() == RETRO_PIXEL_FORMAT_XRGB8888) ?
|
||||
@ -364,6 +394,13 @@ bool recording_init(void)
|
||||
|
||||
if (!string_is_empty(global->record.config))
|
||||
params.config = global->record.config;
|
||||
else
|
||||
{
|
||||
if (streaming_is_enabled())
|
||||
params.config = settings->paths.path_stream_config;
|
||||
else
|
||||
params.config = settings->paths.path_record_config;
|
||||
}
|
||||
|
||||
if (video_driver_supports_recording())
|
||||
{
|
||||
@ -443,7 +480,7 @@ bool recording_init(void)
|
||||
|
||||
RARCH_LOG("%s %s @ %ux%u. (FB size: %ux%u pix_fmt: %u)\n",
|
||||
msg_hash_to_str(MSG_RECORDING_TO),
|
||||
global->record.path,
|
||||
output,
|
||||
params.out_width, params.out_height,
|
||||
params.fb_width, params.fb_height,
|
||||
(unsigned)params.pix_fmt);
|
||||
|
@ -160,7 +160,7 @@ void find_record_driver(void);
|
||||
**/
|
||||
bool recording_init(void);
|
||||
|
||||
bool *recording_is_enabled(void);
|
||||
bool recording_is_enabled(void);
|
||||
|
||||
void recording_set_state(bool state);
|
||||
|
||||
|
16
retroarch.c
16
retroarch.c
@ -884,10 +884,10 @@ static void retroarch_parse_input_and_config(int argc, char *argv[])
|
||||
strlcpy(global->record.path, optarg,
|
||||
sizeof(global->record.path));
|
||||
{
|
||||
bool *recording_enabled = recording_is_enabled();
|
||||
bool recording_enabled = recording_is_enabled();
|
||||
|
||||
if (recording_enabled)
|
||||
*recording_enabled = true;
|
||||
recording_set_state(true);
|
||||
}
|
||||
break;
|
||||
|
||||
@ -1320,6 +1320,7 @@ static void retroarch_main_init_media(void)
|
||||
bool retroarch_main_init(int argc, char *argv[])
|
||||
{
|
||||
bool init_failed = false;
|
||||
global_t *global = global_get_ptr();
|
||||
|
||||
retroarch_init_state();
|
||||
|
||||
@ -1398,7 +1399,8 @@ bool retroarch_main_init(int argc, char *argv[])
|
||||
command_event(CMD_EVENT_MAPPER_INIT, NULL);
|
||||
command_event(CMD_EVENT_REWIND_INIT, NULL);
|
||||
command_event(CMD_EVENT_CONTROLLERS_INIT, NULL);
|
||||
command_event(CMD_EVENT_RECORD_INIT, NULL);
|
||||
if (!string_is_empty(global->record.path))
|
||||
command_event(CMD_EVENT_RECORD_INIT, NULL);
|
||||
|
||||
path_init_savefile();
|
||||
|
||||
@ -3188,10 +3190,16 @@ static enum runloop_state runloop_check_state(
|
||||
{
|
||||
static bool old_pressed = false;
|
||||
bool pressed = BIT256_GET(
|
||||
current_input, RARCH_MOVIE_RECORD_TOGGLE);
|
||||
current_input, RARCH_BSV_RECORD_TOGGLE);
|
||||
|
||||
if (pressed && !old_pressed)
|
||||
{
|
||||
if (!recording_is_enabled())
|
||||
command_event(CMD_EVENT_RECORD_INIT, NULL);
|
||||
else
|
||||
command_event(CMD_EVENT_RECORD_DEINIT, NULL);
|
||||
bsv_movie_check();
|
||||
}
|
||||
|
||||
old_pressed = pressed;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user