1
0
mirror of https://github.com/libretro/RetroArch synced 2024-07-03 00:38:44 +00:00

Implement part 2 of Browse URL

This commit is contained in:
twinaphex 2016-12-27 00:02:09 +01:00
parent d6aae88737
commit 925d60c0cc
9 changed files with 70 additions and 6 deletions

View File

@ -1103,12 +1103,13 @@ ifeq ($(HAVE_NETWORKING), 1)
DEFINES += -DHAVE_NETWORKING
OBJ += $(LIBRETRO_COMM_DIR)/net/net_compat.o \
$(LIBRETRO_COMM_DIR)/net/net_http.o \
$(LIBRETRO_COMM_DIR)/net/net_http_parse.o \
$(LIBRETRO_COMM_DIR)/net/net_socket.o \
$(LIBRETRO_COMM_DIR)/net/net_natt.o \
network/net_http_special.o \
tasks/task_http.o \
tasks/task_netplay_lan_scan.o \
tasks/task_wifi.o
$(LIBRETRO_COMM_DIR)/net/net_natt.o \
network/net_http_special.o \
tasks/task_http.o \
tasks/task_netplay_lan_scan.o \
tasks/task_wifi.o
ifneq ($(HAVE_SOCKET_LEGACY),1)
OBJ += $(LIBRETRO_COMM_DIR)/net/net_ifinfo.o

View File

@ -138,6 +138,10 @@ ACHIEVEMENTS
#include "../cheevos.c"
#endif
#if defined(HAVE_NETWORKING)
#include "../libretro-common/net/net_http_parse.c"
#endif
/*============================================================
MD5
============================================================ */

View File

@ -215,6 +215,8 @@ MSG_HASH(MENU_ENUM_LABEL_CUSTOM_RATIO,
"custom_ratio")
MSG_HASH(MENU_ENUM_LABEL_DATABASE_MANAGER_LIST,
"database_manager_list")
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_BROWSE_URL_START,
"deferred_browse_url_start")
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_BROWSE_URL_LIST,
"deferred_browse_url_list")
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST,

View File

@ -779,6 +779,11 @@ static int deferred_push_browse_url_list(menu_displaylist_info_t *info)
return deferred_push_dlist(info, DISPLAYLIST_BROWSE_URL_LIST);
}
static int deferred_push_browse_url_start(menu_displaylist_info_t *info)
{
return deferred_push_dlist(info, DISPLAYLIST_BROWSE_URL_START);
}
static int deferred_push_core_list(menu_displaylist_info_t *info)
{
return deferred_push_dlist(info, DISPLAYLIST_CORES);
@ -858,6 +863,11 @@ static int menu_cbs_init_bind_deferred_push_compare_label(
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_browse_url_list);
return 0;
}
if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_BROWSE_URL_START)))
{
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_browse_url_start);
return 0;
}
if (string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_CORE_SETTINGS_LIST)))
{
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_core_settings_list);

View File

@ -253,6 +253,15 @@ int generic_action_ok_displaylist_push(const char *path,
switch (action_type)
{
case ACTION_OK_DL_BROWSE_URL_START:
info.type = type;
info.directory_ptr = idx;
info_path = new_path_tmp;
info_label = msg_hash_to_str(
MENU_ENUM_LABEL_DEFERRED_BROWSE_URL_START);
info.enum_idx = MENU_ENUM_LABEL_DEFERRED_BROWSE_URL_START;
dl_type = DISPLAYLIST_GENERIC;
break;
case ACTION_OK_DL_USER_BINDS_LIST:
info.type = type;
info.directory_ptr = idx;
@ -1639,6 +1648,7 @@ int generic_action_ok_help(const char *path,
entry_idx, ACTION_OK_DL_HELP);
}
static void menu_input_st_cheat_cb(void *userdata, const char *str)
{
(void)userdata;
@ -2869,6 +2879,13 @@ end:
extern size_t hack_shader_pass;
#endif
static int action_ok_browse_url_start(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
return generic_action_ok_displaylist_push(path, NULL, label, type, idx,
entry_idx, ACTION_OK_DL_BROWSE_URL_START);
}
static int action_ok_shader_pass(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
@ -3705,6 +3722,9 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs,
{
switch (cbs->enum_idx)
{
case MENU_ENUM_LABEL_BROWSE_START:
BIND_ACTION_OK(cbs, action_ok_browse_url_start);
break;
case MENU_ENUM_LABEL_FILE_BROWSER_CORE:
BIND_ACTION_OK(cbs, action_ok_load_core);
break;

View File

@ -99,6 +99,7 @@ enum
ACTION_OK_DL_USER_SETTINGS_LIST,
ACTION_OK_DL_DIRECTORY_SETTINGS_LIST,
ACTION_OK_DL_PRIVACY_SETTINGS_LIST,
ACTION_OK_DL_BROWSE_URL_START,
ACTION_OK_DL_CONTENT_SETTINGS
};

View File

@ -41,6 +41,7 @@
#endif
#ifdef HAVE_NETWORKING
#include <net/net_http_parse.h>
#include "../network/netplay/netplay_discovery.h"
#endif
@ -3902,6 +3903,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
switch (type)
{
case DISPLAYLIST_BROWSE_URL_LIST:
case DISPLAYLIST_BROWSE_URL_START:
case DISPLAYLIST_HELP_SCREEN_LIST:
case DISPLAYLIST_MAIN_MENU:
case DISPLAYLIST_SETTINGS_ALL:
@ -4089,6 +4091,28 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
MENU_SETTING_NO_ITEM, 0, 0);
ret = 0;
#endif
info->need_refresh = true;
info->need_push = true;
break;
case DISPLAYLIST_BROWSE_URL_START:
#ifdef HAVE_NETWORKING
{
char link[1024];
char name[1024];
const char *line = "<a href=\"http://www.test.com/somefile.zip\">Test</a>\n";
link[0] = name[0] = '\0';
string_parse_html_anchor(line, link, name, sizeof(link), sizeof(name));
menu_entries_append_enum(info->list,
link,
name,
MSG_UNKNOWN,
0, 0, 0);
}
#endif
info->need_refresh = true;
info->need_push = true;
break;

View File

@ -137,6 +137,7 @@ enum menu_displaylist_ctl_state
DISPLAYLIST_PLAYLIST_SETTINGS_LIST,
DISPLAYLIST_ACCOUNTS_CHEEVOS_LIST,
DISPLAYLIST_BROWSE_URL_LIST,
DISPLAYLIST_BROWSE_URL_START,
DISPLAYLIST_LOAD_CONTENT_LIST,
DISPLAYLIST_INFORMATION_LIST,
DISPLAYLIST_CONTENT_SETTINGS,

View File

@ -788,6 +788,7 @@ enum msg_hash_enums
MENU_LABEL(BROWSE_URL),
MENU_LABEL(BROWSE_START),
/* Deferred */
MENU_ENUM_LABEL_DEFERRED_BROWSE_URL_START,
MENU_ENUM_LABEL_DEFERRED_BROWSE_URL_LIST,
MENU_ENUM_LABEL_DEFERRED_ARCHIVE_ACTION_DETECT_CORE,
MENU_ENUM_LABEL_DEFERRED_ARCHIVE_ACTION,
@ -1599,7 +1600,7 @@ enum msg_hash_enums
#define MENU_LABEL_DEFERRED_LAKKA_LIST 0x3db437c4U
#define MENU_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST 0x10b41d97U
#define MENU_LABEL_DEFERRED_CONFIGURATIONS_LIST 0x679a1b0bU
#define MENU_LABEL_DEFERRED_BROWSE_URL_START 0xcef58296U
/* Cheevos settings */