mirror of
https://github.com/libretro/RetroArch
synced 2025-04-17 20:43:10 +00:00
Implement part 2 of Browse URL
This commit is contained in:
parent
d6aae88737
commit
925d60c0cc
@ -1103,6 +1103,7 @@ ifeq ($(HAVE_NETWORKING), 1)
|
|||||||
DEFINES += -DHAVE_NETWORKING
|
DEFINES += -DHAVE_NETWORKING
|
||||||
OBJ += $(LIBRETRO_COMM_DIR)/net/net_compat.o \
|
OBJ += $(LIBRETRO_COMM_DIR)/net/net_compat.o \
|
||||||
$(LIBRETRO_COMM_DIR)/net/net_http.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_socket.o \
|
||||||
$(LIBRETRO_COMM_DIR)/net/net_natt.o \
|
$(LIBRETRO_COMM_DIR)/net/net_natt.o \
|
||||||
network/net_http_special.o \
|
network/net_http_special.o \
|
||||||
|
@ -138,6 +138,10 @@ ACHIEVEMENTS
|
|||||||
#include "../cheevos.c"
|
#include "../cheevos.c"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if defined(HAVE_NETWORKING)
|
||||||
|
#include "../libretro-common/net/net_http_parse.c"
|
||||||
|
#endif
|
||||||
|
|
||||||
/*============================================================
|
/*============================================================
|
||||||
MD5
|
MD5
|
||||||
============================================================ */
|
============================================================ */
|
||||||
|
@ -215,6 +215,8 @@ MSG_HASH(MENU_ENUM_LABEL_CUSTOM_RATIO,
|
|||||||
"custom_ratio")
|
"custom_ratio")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_DATABASE_MANAGER_LIST,
|
MSG_HASH(MENU_ENUM_LABEL_DATABASE_MANAGER_LIST,
|
||||||
"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,
|
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_BROWSE_URL_LIST,
|
||||||
"deferred_browse_url_list")
|
"deferred_browse_url_list")
|
||||||
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST,
|
MSG_HASH(MENU_ENUM_LABEL_DEFERRED_ACCOUNTS_CHEEVOS_LIST,
|
||||||
|
@ -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);
|
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)
|
static int deferred_push_core_list(menu_displaylist_info_t *info)
|
||||||
{
|
{
|
||||||
return deferred_push_dlist(info, DISPLAYLIST_CORES);
|
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);
|
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_browse_url_list);
|
||||||
return 0;
|
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)))
|
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);
|
BIND_ACTION_DEFERRED_PUSH(cbs, deferred_push_core_settings_list);
|
||||||
|
@ -253,6 +253,15 @@ int generic_action_ok_displaylist_push(const char *path,
|
|||||||
|
|
||||||
switch (action_type)
|
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:
|
case ACTION_OK_DL_USER_BINDS_LIST:
|
||||||
info.type = type;
|
info.type = type;
|
||||||
info.directory_ptr = idx;
|
info.directory_ptr = idx;
|
||||||
@ -1639,6 +1648,7 @@ int generic_action_ok_help(const char *path,
|
|||||||
entry_idx, ACTION_OK_DL_HELP);
|
entry_idx, ACTION_OK_DL_HELP);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void menu_input_st_cheat_cb(void *userdata, const char *str)
|
static void menu_input_st_cheat_cb(void *userdata, const char *str)
|
||||||
{
|
{
|
||||||
(void)userdata;
|
(void)userdata;
|
||||||
@ -2869,6 +2879,13 @@ end:
|
|||||||
extern size_t hack_shader_pass;
|
extern size_t hack_shader_pass;
|
||||||
#endif
|
#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,
|
static int action_ok_shader_pass(const char *path,
|
||||||
const char *label, unsigned type, size_t idx, size_t entry_idx)
|
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)
|
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:
|
case MENU_ENUM_LABEL_FILE_BROWSER_CORE:
|
||||||
BIND_ACTION_OK(cbs, action_ok_load_core);
|
BIND_ACTION_OK(cbs, action_ok_load_core);
|
||||||
break;
|
break;
|
||||||
|
@ -99,6 +99,7 @@ enum
|
|||||||
ACTION_OK_DL_USER_SETTINGS_LIST,
|
ACTION_OK_DL_USER_SETTINGS_LIST,
|
||||||
ACTION_OK_DL_DIRECTORY_SETTINGS_LIST,
|
ACTION_OK_DL_DIRECTORY_SETTINGS_LIST,
|
||||||
ACTION_OK_DL_PRIVACY_SETTINGS_LIST,
|
ACTION_OK_DL_PRIVACY_SETTINGS_LIST,
|
||||||
|
ACTION_OK_DL_BROWSE_URL_START,
|
||||||
ACTION_OK_DL_CONTENT_SETTINGS
|
ACTION_OK_DL_CONTENT_SETTINGS
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -41,6 +41,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_NETWORKING
|
#ifdef HAVE_NETWORKING
|
||||||
|
#include <net/net_http_parse.h>
|
||||||
#include "../network/netplay/netplay_discovery.h"
|
#include "../network/netplay/netplay_discovery.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -3902,6 +3903,7 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type, void *data)
|
|||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case DISPLAYLIST_BROWSE_URL_LIST:
|
case DISPLAYLIST_BROWSE_URL_LIST:
|
||||||
|
case DISPLAYLIST_BROWSE_URL_START:
|
||||||
case DISPLAYLIST_HELP_SCREEN_LIST:
|
case DISPLAYLIST_HELP_SCREEN_LIST:
|
||||||
case DISPLAYLIST_MAIN_MENU:
|
case DISPLAYLIST_MAIN_MENU:
|
||||||
case DISPLAYLIST_SETTINGS_ALL:
|
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);
|
MENU_SETTING_NO_ITEM, 0, 0);
|
||||||
ret = 0;
|
ret = 0;
|
||||||
#endif
|
#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_refresh = true;
|
||||||
info->need_push = true;
|
info->need_push = true;
|
||||||
break;
|
break;
|
||||||
|
@ -137,6 +137,7 @@ enum menu_displaylist_ctl_state
|
|||||||
DISPLAYLIST_PLAYLIST_SETTINGS_LIST,
|
DISPLAYLIST_PLAYLIST_SETTINGS_LIST,
|
||||||
DISPLAYLIST_ACCOUNTS_CHEEVOS_LIST,
|
DISPLAYLIST_ACCOUNTS_CHEEVOS_LIST,
|
||||||
DISPLAYLIST_BROWSE_URL_LIST,
|
DISPLAYLIST_BROWSE_URL_LIST,
|
||||||
|
DISPLAYLIST_BROWSE_URL_START,
|
||||||
DISPLAYLIST_LOAD_CONTENT_LIST,
|
DISPLAYLIST_LOAD_CONTENT_LIST,
|
||||||
DISPLAYLIST_INFORMATION_LIST,
|
DISPLAYLIST_INFORMATION_LIST,
|
||||||
DISPLAYLIST_CONTENT_SETTINGS,
|
DISPLAYLIST_CONTENT_SETTINGS,
|
||||||
|
@ -788,6 +788,7 @@ enum msg_hash_enums
|
|||||||
MENU_LABEL(BROWSE_URL),
|
MENU_LABEL(BROWSE_URL),
|
||||||
MENU_LABEL(BROWSE_START),
|
MENU_LABEL(BROWSE_START),
|
||||||
/* Deferred */
|
/* Deferred */
|
||||||
|
MENU_ENUM_LABEL_DEFERRED_BROWSE_URL_START,
|
||||||
MENU_ENUM_LABEL_DEFERRED_BROWSE_URL_LIST,
|
MENU_ENUM_LABEL_DEFERRED_BROWSE_URL_LIST,
|
||||||
MENU_ENUM_LABEL_DEFERRED_ARCHIVE_ACTION_DETECT_CORE,
|
MENU_ENUM_LABEL_DEFERRED_ARCHIVE_ACTION_DETECT_CORE,
|
||||||
MENU_ENUM_LABEL_DEFERRED_ARCHIVE_ACTION,
|
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_LAKKA_LIST 0x3db437c4U
|
||||||
#define MENU_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST 0x10b41d97U
|
#define MENU_LABEL_DEFERRED_INPUT_HOTKEY_BINDS_LIST 0x10b41d97U
|
||||||
#define MENU_LABEL_DEFERRED_CONFIGURATIONS_LIST 0x679a1b0bU
|
#define MENU_LABEL_DEFERRED_CONFIGURATIONS_LIST 0x679a1b0bU
|
||||||
|
#define MENU_LABEL_DEFERRED_BROWSE_URL_START 0xcef58296U
|
||||||
|
|
||||||
/* Cheevos settings */
|
/* Cheevos settings */
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user