From f790216a41f3fdffbda0fa048f6608a990aabe4c Mon Sep 17 00:00:00 2001 From: twinaphex Date: Wed, 21 Jan 2015 20:44:40 +0100 Subject: [PATCH] Add RARCH_CMD_NETWORK_INIT and RARCH_CMD_NETWORK_DEINIT. Run RARCH_CMD_NETWORK_INIT before entering Core Manager option. Needed on Windows where we need to call WSAStartup to initialize Winsocks first before we can do any network stuff --- menu/menu_entries_cbs.c | 3 +++ retroarch.c | 10 ++++++++++ retroarch.h | 4 ++++ 3 files changed, 17 insertions(+) diff --git a/menu/menu_entries_cbs.c b/menu/menu_entries_cbs.c index dcc538bae9..c46d293af2 100644 --- a/menu/menu_entries_cbs.c +++ b/menu/menu_entries_cbs.c @@ -2188,6 +2188,7 @@ static int deferred_push_core_manager_list(void *data, void *userdata, (void)buf; + menu_list_clear(list); if (g_settings.network.buildbot_url[0] == '\0') @@ -2205,6 +2206,8 @@ static int deferred_push_core_manager_list(void *data, void *userdata, } #ifdef HAVE_NETPLAY + rarch_main_command(RARCH_CMD_NETWORK_INIT); + fill_pathname_join(url, g_settings.network.buildbot_url, ".index", sizeof(url)); diff --git a/retroarch.c b/retroarch.c index 7149b518ce..8b6c22623b 100644 --- a/retroarch.c +++ b/retroarch.c @@ -2928,6 +2928,16 @@ bool rarch_main_command(unsigned cmd) netplay_free(netplay); driver.netplay_data = NULL; } +#endif + break; + case RARCH_CMD_NETWORK_DEINIT: +#ifdef HAVE_NETPLAY + network_deinit(); +#endif + break; + case RARCH_CMD_NETWORK_INIT: +#ifdef HAVE_NETPLAY + network_init(); #endif break; case RARCH_CMD_NETPLAY_INIT: diff --git a/retroarch.h b/retroarch.h index e5b354c73e..d0685ae070 100644 --- a/retroarch.h +++ b/retroarch.h @@ -143,6 +143,10 @@ enum basic_event RARCH_CMD_CHEATS_INIT, /* Deinitializes cheats. */ RARCH_CMD_CHEATS_DEINIT, + /* Deinitializes network system. */ + RARCH_CMD_NETWORK_DEINIT, + /* Initializes network system. */ + RARCH_CMD_NETWORK_INIT, /* Initializes netplay system. */ RARCH_CMD_NETPLAY_INIT, /* Deinitializes netplay system. */