Create path server and add to paths.c

This commit is contained in:
twinaphex 2016-09-30 06:22:56 +02:00
parent 6ee7b733aa
commit 00a1e3716a
9 changed files with 50 additions and 18 deletions

View File

@ -587,7 +587,7 @@ static int populate_settings_path(settings_t *settings, struct config_path_setti
SETTING_PATH("core_updater_buildbot_url", settings->network.buildbot_url, false, NULL, true); SETTING_PATH("core_updater_buildbot_url", settings->network.buildbot_url, false, NULL, true);
SETTING_PATH("core_updater_buildbot_assets_url", settings->network.buildbot_assets_url, false, NULL, true); SETTING_PATH("core_updater_buildbot_assets_url", settings->network.buildbot_assets_url, false, NULL, true);
#ifdef HAVE_NETWORKING #ifdef HAVE_NETWORKING
SETTING_PATH("netplay_ip_address", global->netplay.server, false, NULL, true); SETTING_PATH("netplay_ip_address", path_get_server_ptr(), false, NULL, true);
#endif #endif
SETTING_PATH("recording_output_directory", SETTING_PATH("recording_output_directory",
global->record.output_dir, false, NULL, true); global->record.output_dir, false, NULL, true);
@ -1755,7 +1755,7 @@ static bool config_load_file(const char *path, bool set_defaults,
#ifdef HAVE_NETWORKING #ifdef HAVE_NETWORKING
if (retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_NETPLAY_IP_ADDRESS)) if (retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_NETPLAY_IP_ADDRESS))
override_netplay_ip_address = strdup(global->netplay.server); override_netplay_ip_address = strdup(path_get(RARCH_PATH_SERVER));
#endif #endif
/* Boolean settings */ /* Boolean settings */
@ -1944,7 +1944,7 @@ static bool config_load_file(const char *path, bool set_defaults,
#ifdef HAVE_NETWORKING #ifdef HAVE_NETWORKING
if (retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_NETPLAY_IP_ADDRESS)) if (retroarch_override_setting_is_set(RARCH_OVERRIDE_SETTING_NETPLAY_IP_ADDRESS))
{ {
strlcpy(global->netplay.server, override_netplay_ip_address, sizeof(global->netplay.server)); path_set(RARCH_PATH_SERVER, override_netplay_ip_address);
free(override_netplay_ip_address); free(override_netplay_ip_address);
} }
#endif #endif

View File

@ -3297,7 +3297,8 @@ static int action_ok_netplay_enable_host(const char *path,
} }
global->netplay.is_client = false; global->netplay.is_client = false;
global->netplay.server[0] = '\0';
path_clear(RARCH_PATH_SERVER);
/* If we haven't yet started, this will load on its own */ /* If we haven't yet started, this will load on its own */
if (!content_is_inited()) if (!content_is_inited())
@ -3344,7 +3345,7 @@ static int action_ok_netplay_enable_client(const char *path,
global->netplay.is_client = true; global->netplay.is_client = true;
/* We can't do anything without a host specified */ /* We can't do anything without a host specified */
if (!global->netplay.server[0]) if (path_is_empty(RARCH_PATH_SERVER))
{ {
runloop_msg_queue_push( runloop_msg_queue_push(
"Please specify the Netplay server's IP address or hostname.", "Please specify the Netplay server's IP address or hostname.",

View File

@ -1657,14 +1657,14 @@ void general_write_handler(void *data)
case MENU_ENUM_LABEL_NETPLAY_MODE: case MENU_ENUM_LABEL_NETPLAY_MODE:
#ifdef HAVE_NETWORKING #ifdef HAVE_NETWORKING
if (!global->netplay.is_client) if (!global->netplay.is_client)
*global->netplay.server = '\0'; path_clear(RARCH_PATH_SERVER);
retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_NETPLAY_MODE); retroarch_override_setting_set(RARCH_OVERRIDE_SETTING_NETPLAY_MODE);
#endif #endif
break; break;
case MENU_ENUM_LABEL_NETPLAY_SPECTATOR_MODE_ENABLE: case MENU_ENUM_LABEL_NETPLAY_SPECTATOR_MODE_ENABLE:
#ifdef HAVE_NETWORKING #ifdef HAVE_NETWORKING
if (global->netplay.is_spectate) if (global->netplay.is_spectate)
*global->netplay.server = '\0'; path_clear(RARCH_PATH_SERVER);
#endif #endif
break; break;
case MENU_ENUM_LABEL_NETPLAY_DELAY_FRAMES: case MENU_ENUM_LABEL_NETPLAY_DELAY_FRAMES:
@ -5810,8 +5810,8 @@ static bool setting_append_list(
CONFIG_STRING( CONFIG_STRING(
list, list_info, list, list_info,
global->netplay.server, path_get_server_ptr(),
sizeof(global->netplay.server), path_get_server_size(),
msg_hash_to_str(MENU_ENUM_LABEL_NETPLAY_IP_ADDRESS), msg_hash_to_str(MENU_ENUM_LABEL_NETPLAY_IP_ADDRESS),
msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_IP_ADDRESS), msg_hash_to_str(MENU_ENUM_LABEL_VALUE_NETPLAY_IP_ADDRESS),
"", "",

View File

@ -34,6 +34,7 @@
#include "../../configuration.h" #include "../../configuration.h"
#include "../../command.h" #include "../../command.h"
#include "../../movie.h" #include "../../movie.h"
#include "../../paths.h"
#include "../../runloop.h" #include "../../runloop.h"
#define MAX_STALL_TIME_USEC (10*1000*1000) #define MAX_STALL_TIME_USEC (10*1000*1000)
@ -1327,7 +1328,7 @@ bool init_netplay(void)
core_set_default_callbacks(&cbs); core_set_default_callbacks(&cbs);
if (*global->netplay.server) if (!path_is_empty(RARCH_PATH_SERVER))
{ {
RARCH_LOG("Connecting to netplay host...\n"); RARCH_LOG("Connecting to netplay host...\n");
global->netplay.is_client = true; global->netplay.is_client = true;
@ -1341,10 +1342,13 @@ bool init_netplay(void)
} }
netplay_data = (netplay_t*)netplay_new( netplay_data = (netplay_t*)netplay_new(
global->netplay.is_client ? global->netplay.server : NULL, global->netplay.is_client ? path_get(RARCH_PATH_SERVER) : NULL,
global->netplay.port ? global->netplay.port : RARCH_DEFAULT_PORT, global->netplay.port ? global->netplay.port : RARCH_DEFAULT_PORT,
global->netplay.sync_frames, global->netplay.check_frames, &cbs, global->netplay.sync_frames,
global->netplay.is_spectate, settings->username); global->netplay.check_frames,
&cbs,
global->netplay.is_spectate,
settings->username);
if (netplay_data) if (netplay_data)
return true; return true;

23
paths.c
View File

@ -51,6 +51,7 @@
/* For --subsystem content. */ /* For --subsystem content. */
static struct string_list *subsystem_fullpaths = NULL; static struct string_list *subsystem_fullpaths = NULL;
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};
static char path_cheatfile[PATH_MAX_LENGTH] = {0}; static char path_cheatfile[PATH_MAX_LENGTH] = {0};
@ -496,6 +497,11 @@ char *path_get_core_ptr(void)
return path_libretro; return path_libretro;
} }
char *path_get_server_ptr(void)
{
return path_server;
}
const char *path_get(enum rarch_path_type type) const char *path_get(enum rarch_path_type type)
{ {
switch (type) switch (type)
@ -508,6 +514,8 @@ const char *path_get(enum rarch_path_type type)
return path_cheatfile; return path_cheatfile;
case RARCH_PATH_REMAPFILE: case RARCH_PATH_REMAPFILE:
return path_remapfile; return path_remapfile;
case RARCH_PATH_SERVER:
return path_server;
case RARCH_PATH_IPS: case RARCH_PATH_IPS:
return path_ips; return path_ips;
case RARCH_PATH_BPS: case RARCH_PATH_BPS:
@ -540,6 +548,10 @@ const char *path_get(enum rarch_path_type type)
return NULL; return NULL;
} }
size_t path_get_server_size(void)
{
return sizeof(path_server);
}
size_t path_get_core_size(void) size_t path_get_core_size(void)
{ {
@ -608,6 +620,10 @@ bool path_set(enum rarch_path_type type, const char *path)
strlcpy(path_remapfile, path, strlcpy(path_remapfile, path,
sizeof(path_remapfile)); sizeof(path_remapfile));
break; break;
case RARCH_PATH_SERVER:
strlcpy(path_server, path,
sizeof(path_server));
break;
case RARCH_PATH_IPS: case RARCH_PATH_IPS:
strlcpy(path_ips, path, strlcpy(path_ips, path,
sizeof(path_ips)); sizeof(path_ips));
@ -676,6 +692,10 @@ bool path_is_empty(enum rarch_path_type type)
if (string_is_empty(path_remapfile)) if (string_is_empty(path_remapfile))
return true; return true;
break; break;
case RARCH_PATH_SERVER:
if (string_is_empty(path_server))
return true;
break;
case RARCH_PATH_IPS: case RARCH_PATH_IPS:
if (string_is_empty(path_ips)) if (string_is_empty(path_ips))
return true; return true;
@ -737,6 +757,9 @@ void path_clear(enum rarch_path_type type)
case RARCH_PATH_REMAPFILE: case RARCH_PATH_REMAPFILE:
*path_remapfile = '\0'; *path_remapfile = '\0';
break; break;
case RARCH_PATH_SERVER:
*path_server = '\0';
break;
case RARCH_PATH_IPS: case RARCH_PATH_IPS:
*path_ips = '\0'; *path_ips = '\0';
break; break;

View File

@ -45,6 +45,7 @@ enum rarch_path_type
RARCH_PATH_IPS, RARCH_PATH_IPS,
RARCH_PATH_BPS, RARCH_PATH_BPS,
RARCH_PATH_REMAPFILE, RARCH_PATH_REMAPFILE,
RARCH_PATH_SERVER,
RARCH_PATH_CONFIG_APPEND, RARCH_PATH_CONFIG_APPEND,
RARCH_PATH_CORE_OPTIONS, RARCH_PATH_CORE_OPTIONS,
RARCH_PATH_DEFAULT_SHADER_PRESET, RARCH_PATH_DEFAULT_SHADER_PRESET,
@ -75,12 +76,16 @@ void path_set_basename(const char *path);
/* get size functions */ /* get size functions */
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_core_ptr(void); char *path_get_core_ptr(void);
char *path_get_server_ptr(void);
/* get list functions */ /* get list functions */
struct string_list *path_get_subsystem_list(void); struct string_list *path_get_subsystem_list(void);

View File

@ -670,15 +670,14 @@ static void retroarch_parse_input(int argc, char *argv[])
retroarch_override_setting_set( retroarch_override_setting_set(
RARCH_OVERRIDE_SETTING_NETPLAY_IP_ADDRESS); RARCH_OVERRIDE_SETTING_NETPLAY_IP_ADDRESS);
global->netplay.enable = true; global->netplay.enable = true;
*global->netplay.server = '\0'; path_clear(RARCH_PATH_SERVER);
break; break;
case 'C': case 'C':
retroarch_override_setting_set( retroarch_override_setting_set(
RARCH_OVERRIDE_SETTING_NETPLAY_IP_ADDRESS); RARCH_OVERRIDE_SETTING_NETPLAY_IP_ADDRESS);
global->netplay.enable = true; global->netplay.enable = true;
strlcpy(global->netplay.server, optarg, path_set(RARCH_PATH_SERVER, optarg);
sizeof(global->netplay.server));
break; break;
case 'F': case 'F':

View File

@ -748,6 +748,7 @@ bool runloop_ctl(enum runloop_ctl_state state, void *data)
path_clear(RARCH_PATH_SAVESTATE); path_clear(RARCH_PATH_SAVESTATE);
path_clear(RARCH_PATH_CHEATFILE); path_clear(RARCH_PATH_CHEATFILE);
path_clear(RARCH_PATH_REMAPFILE); path_clear(RARCH_PATH_REMAPFILE);
path_clear(RARCH_PATH_SERVER);
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);

View File

@ -146,7 +146,6 @@ typedef struct global
/* Netplay. */ /* Netplay. */
struct struct
{ {
char server[PATH_MAX_LENGTH];
bool enable; bool enable;
bool is_client; bool is_client;
bool is_spectate; bool is_spectate;