Move path settings to paths.c

This commit is contained in:
twinaphex 2016-09-30 06:33:57 +02:00
parent 00a1e3716a
commit 3a7e9a7052
8 changed files with 70 additions and 25 deletions

View File

@ -1327,12 +1327,8 @@ static int generic_action_ok(const char *path,
break; break;
#endif #endif
case ACTION_OK_LOAD_RECORD_CONFIGFILE: case ACTION_OK_LOAD_RECORD_CONFIGFILE:
{
global_t *global = global_get_ptr();
flush_char = msg_hash_to_str(flush_id); flush_char = msg_hash_to_str(flush_id);
strlcpy(global->record.config, action_path, path_set(RARCH_PATH_RECORD_CONFIG, action_path);
sizeof(global->record.config));
}
break; break;
case ACTION_OK_LOAD_REMAPPING_FILE: case ACTION_OK_LOAD_REMAPPING_FILE:
{ {

View File

@ -4392,8 +4392,8 @@ static bool setting_append_list(
CONFIG_PATH( CONFIG_PATH(
list, list_info, list, list_info,
global->record.config, path_get_record_config_ptr(),
sizeof(global->record.config), path_get_record_config_size(),
msg_hash_to_str(MENU_ENUM_LABEL_RECORD_CONFIG), msg_hash_to_str(MENU_ENUM_LABEL_RECORD_CONFIG),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RECORD_CONFIG), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RECORD_CONFIG),
"", "",
@ -4407,8 +4407,8 @@ static bool setting_append_list(
CONFIG_STRING( CONFIG_STRING(
list, list_info, list, list_info,
global->record.path, path_get_record_ptr(),
sizeof(global->record.path), path_get_record_size(),
msg_hash_to_str(MENU_ENUM_LABEL_RECORD_PATH), msg_hash_to_str(MENU_ENUM_LABEL_RECORD_PATH),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RECORD_PATH), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_RECORD_PATH),
"", "",

40
paths.c
View File

@ -51,6 +51,8 @@
/* For --subsystem content. */ /* For --subsystem content. */
static struct string_list *subsystem_fullpaths = NULL; static struct string_list *subsystem_fullpaths = NULL;
static char path_record[PATH_MAX_LENGTH] = {0};
static char path_record_config[PATH_MAX_LENGTH] = {0};
static char path_server[PATH_MAX_LENGTH] = {0}; static char path_server[PATH_MAX_LENGTH] = {0};
static char path_savefile[PATH_MAX_LENGTH] = {0}; static char path_savefile[PATH_MAX_LENGTH] = {0};
static char path_savestate[PATH_MAX_LENGTH] = {0}; static char path_savestate[PATH_MAX_LENGTH] = {0};
@ -490,7 +492,15 @@ void path_fill_names(void)
} }
} }
/* Core file path */ char *path_get_record_ptr(void)
{
return path_record;
}
char *path_get_record_config_ptr(void)
{
return path_record_config;
}
char *path_get_core_ptr(void) char *path_get_core_ptr(void)
{ {
@ -506,6 +516,10 @@ const char *path_get(enum rarch_path_type type)
{ {
switch (type) switch (type)
{ {
case RARCH_PATH_RECORD:
return path_record;
case RARCH_PATH_RECORD_CONFIG:
return path_record_config;
case RARCH_PATH_SAVEFILE: case RARCH_PATH_SAVEFILE:
return path_savefile; return path_savefile;
case RARCH_PATH_SAVESTATE: case RARCH_PATH_SAVESTATE:
@ -548,6 +562,16 @@ const char *path_get(enum rarch_path_type type)
return NULL; return NULL;
} }
size_t path_get_record_size(void)
{
return sizeof(path_record);
}
size_t path_get_record_config_size(void)
{
return sizeof(path_record_config);
}
size_t path_get_server_size(void) size_t path_get_server_size(void)
{ {
return sizeof(path_server); return sizeof(path_server);
@ -676,6 +700,14 @@ bool path_is_empty(enum rarch_path_type type)
{ {
switch (type) switch (type)
{ {
case RARCH_PATH_RECORD:
if (string_is_empty(path_record))
return true;
break;
case RARCH_PATH_RECORD_CONFIG:
if (string_is_empty(path_record_config))
return true;
break;
case RARCH_PATH_SAVEFILE: case RARCH_PATH_SAVEFILE:
if (string_is_empty(path_savefile)) if (string_is_empty(path_savefile))
return true; return true;
@ -745,6 +777,12 @@ void path_clear(enum rarch_path_type type)
{ {
switch (type) switch (type)
{ {
case RARCH_PATH_RECORD:
*path_record = '\0';
break;
case RARCH_PATH_RECORD_CONFIG:
*path_record_config = '\0';
break;
case RARCH_PATH_SAVEFILE: case RARCH_PATH_SAVEFILE:
*path_savefile = '\0'; *path_savefile = '\0';
break; break;

12
paths.h
View File

@ -50,7 +50,9 @@ enum rarch_path_type
RARCH_PATH_CORE_OPTIONS, RARCH_PATH_CORE_OPTIONS,
RARCH_PATH_DEFAULT_SHADER_PRESET, RARCH_PATH_DEFAULT_SHADER_PRESET,
RARCH_PATH_BASENAME, RARCH_PATH_BASENAME,
RARCH_PATH_SUBSYSTEM RARCH_PATH_SUBSYSTEM,
RARCH_PATH_RECORD,
RARCH_PATH_RECORD_CONFIG
}; };
void path_deinit_subsystem(void); void path_deinit_subsystem(void);
@ -76,12 +78,20 @@ void path_set_basename(const char *path);
/* get size functions */ /* get size functions */
size_t path_get_record_size(void);
size_t path_get_record_config_size(void);
size_t path_get_server_size(void); size_t path_get_server_size(void);
size_t path_get_core_size(void); size_t path_get_core_size(void);
/* get ptr functions */ /* get ptr functions */
char *path_get_record_ptr(void);
char *path_get_record_config_ptr(void);
char *path_get_core_ptr(void); char *path_get_core_ptr(void);
char *path_get_server_ptr(void); char *path_get_server_ptr(void);

View File

@ -33,6 +33,7 @@
#include "../runloop.h" #include "../runloop.h"
#include "../verbosity.h" #include "../verbosity.h"
#include "../msg_hash.h" #include "../msg_hash.h"
#include "../paths.h"
#include "../list_special.h" #include "../list_special.h"
static bool recording_enable; static bool recording_enable;
@ -327,12 +328,13 @@ bool recording_init(void)
(float)av_info->timing.fps, (float)av_info->timing.fps,
(float)av_info->timing.sample_rate); (float)av_info->timing.sample_rate);
strlcpy(recording_file, global->record.path, sizeof(recording_file)); strlcpy(recording_file, path_get(RARCH_PATH_RECORD), sizeof(recording_file));
if (global->record.use_output_dir) if (global->record.use_output_dir)
fill_pathname_join(recording_file, fill_pathname_join(recording_file,
global->record.output_dir, global->record.output_dir,
global->record.path, sizeof(recording_file)); path_get(RARCH_PATH_RECORD),
sizeof(recording_file));
params.out_width = av_info->geometry.base_width; params.out_width = av_info->geometry.base_width;
params.out_height = av_info->geometry.base_height; params.out_height = av_info->geometry.base_height;
@ -346,8 +348,8 @@ bool recording_init(void)
FFEMU_PIX_ARGB8888 : FFEMU_PIX_RGB565; FFEMU_PIX_ARGB8888 : FFEMU_PIX_RGB565;
params.config = NULL; params.config = NULL;
if (*global->record.config) if (!path_is_empty(RARCH_PATH_RECORD_CONFIG))
params.config = global->record.config; params.config = path_get(RARCH_PATH_RECORD_CONFIG);
if (video_driver_supports_recording()) if (video_driver_supports_recording())
{ {
@ -420,7 +422,7 @@ bool recording_init(void)
RARCH_LOG("%s %s @ %ux%u. (FB size: %ux%u pix_fmt: %u)\n", RARCH_LOG("%s %s @ %ux%u. (FB size: %ux%u pix_fmt: %u)\n",
msg_hash_to_str(MSG_RECORDING_TO), msg_hash_to_str(MSG_RECORDING_TO),
global->record.path, path_get(RARCH_PATH_RECORD),
params.out_width, params.out_height, params.out_width, params.out_height,
params.fb_width, params.fb_height, params.fb_width, params.fb_height,
(unsigned)params.pix_fmt); (unsigned)params.pix_fmt);

View File

@ -592,8 +592,7 @@ static void retroarch_parse_input(int argc, char *argv[])
break; break;
case 'r': case 'r':
strlcpy(global->record.path, optarg, path_set(RARCH_PATH_RECORD, optarg);
sizeof(global->record.path));
{ {
bool *recording_enabled = recording_is_enabled(); bool *recording_enabled = recording_is_enabled();
@ -770,8 +769,7 @@ static void retroarch_parse_input(int argc, char *argv[])
} }
case RA_OPT_RECORDCONFIG: case RA_OPT_RECORDCONFIG:
strlcpy(global->record.config, optarg, path_set(RARCH_PATH_RECORD_CONFIG, optarg);
sizeof(global->record.config));
break; break;
case RA_OPT_MAX_FRAMES: case RA_OPT_MAX_FRAMES:

View File

@ -752,6 +752,8 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data)
path_clear(RARCH_PATH_IPS); path_clear(RARCH_PATH_IPS);
path_clear(RARCH_PATH_UPS); path_clear(RARCH_PATH_UPS);
path_clear(RARCH_PATH_BPS); path_clear(RARCH_PATH_BPS);
path_clear(RARCH_PATH_RECORD);
path_clear(RARCH_PATH_RECORD_CONFIG);
runloop_overrides_active = false; runloop_overrides_active = false;
core_unset_input_descriptors(); core_unset_input_descriptors();

View File

@ -158,15 +158,14 @@ typedef struct global
/* Recording. */ /* Recording. */
struct struct
{ {
char path[PATH_MAX_LENGTH]; char output_dir[PATH_MAX_LENGTH];
char config[PATH_MAX_LENGTH]; char config_dir[PATH_MAX_LENGTH];
unsigned width; unsigned width;
unsigned height; unsigned height;
size_t gpu_width; size_t gpu_width;
size_t gpu_height; size_t gpu_height;
char output_dir[PATH_MAX_LENGTH];
char config_dir[PATH_MAX_LENGTH];
bool use_output_dir; bool use_output_dir;
} record; } record;