Skip to content

Commit 3ceed07

Browse files
committed
Merge remote-tracking branch 'lucascanero/enable-cloudsync-libnx' into warmenhoven/dev/nx
2 parents d848490 + f97d6c9 commit 3ceed07

14 files changed

Lines changed: 168 additions & 6 deletions

Makefile.libnx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ HAVE_CHD = 1
5757
HAVE_STB_VORBIS = 1
5858
HAVE_IBXM = 1
5959
HAVE_CORE_INFO_CACHE = 1
60+
HAVE_CLOUD_SYNC = 1
61+
HAVE_SSL = 1
6062

6163
# RetroArch libnx useful flags
6264
HAVE_THREADS = 1
@@ -148,7 +150,7 @@ LDFLAGS = -specs=$(DEVKITPRO)/libnx/switch.specs $(ARCH) -Wl,--allow-multiple-de
148150
# add things from Makefile.common
149151
CFLAGS += $(DEF_FLAGS)
150152

151-
LIBS := -lswresample -lavformat -lavcodec -lavutil -lswscale -lstdc++ -lbz2 -lpng -lz -lnx -lvpx -lopus -llzma -lm
153+
LIBS := -lswresample -lavformat -lavcodec -lavutil -lswscale -lstdc++ -lbz2 -lpng -lz -lnx -lvpx -lopus -llzma -lmbedtls -lmbedx509 -lmbedcrypto -lnx -lm
152154

153155
ifeq ($(HAVE_OPENGL), 1)
154156
LIBS := -lEGL -lglapi -ldrm_nouveau $(LIBS)

command.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,10 @@ enum event_command
149149
CMD_EVENT_VIDEO_SET_ASPECT_RATIO,
150150
/* Restarts RetroArch. */
151151
CMD_EVENT_RESTART_RETROARCH,
152+
#ifdef HAVE_CLOUDSYNC
153+
/* Trigger cloud sync */
154+
CMD_EVENT_CLOUD_SYNC,
155+
#endif
152156
/* Shutdown the OS */
153157
CMD_EVENT_SHUTDOWN,
154158
/* Reboot the OS */

configuration.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1823,6 +1823,7 @@ static struct config_bool_setting *populate_settings_bool(
18231823
SETTING_BOOL("cloud_sync_sync_configs", &settings->bools.cloud_sync_sync_configs, true, true, false);
18241824
SETTING_BOOL("cloud_sync_sync_thumbs", &settings->bools.cloud_sync_sync_thumbs, true, false, false);
18251825
SETTING_BOOL("cloud_sync_sync_system", &settings->bools.cloud_sync_sync_system, true, false, false);
1826+
SETTING_BOOL("cloud_sync_startup_sync", &settings->bools.cloud_sync_startup_sync, true, true, false);
18261827
SETTING_BOOL("discord_allow", &settings->bools.discord_enable, true, false, false);
18271828
#ifdef HAVE_MIST
18281829
SETTING_BOOL("steam_rich_presence_enable", &settings->bools.steam_rich_presence_enable, true, false, false);
@@ -2612,6 +2613,9 @@ static struct config_uint_setting *populate_settings_uint(
26122613
#ifdef HAVE_NETWORKGAMEPAD
26132614
SETTING_UINT("network_remote_base_port", &settings->uints.network_remote_base_port, true, DEFAULT_NETWORK_REMOTE_BASE_PORT, false);
26142615
#endif
2616+
#ifdef HAVE_CLOUDSYNC
2617+
SETTING_UINT("cloud_sync_sync_mode", &settings->uints.cloud_sync_sync_mode, true, CLOUD_SYNC_MODE_AUTOMATIC, false);
2618+
#endif
26152619

26162620
#ifdef HAVE_LANGEXTRA
26172621
SETTING_UINT("user_language", msg_hash_get_uint(MSG_HASH_USER_LANGUAGE), true, frontend_driver_get_user_language(), false);

configuration.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,13 @@ enum override_type
8989
OVERRIDE_GAME
9090
};
9191

92+
enum cloud_sync_mode_type
93+
{
94+
CLOUD_SYNC_MODE_AUTOMATIC = 0,
95+
CLOUD_SYNC_MODE_MANUAL,
96+
CLOUD_SYNC_MODE_LAST
97+
};
98+
9299
enum settings_glob_flags
93100
{
94101
SETTINGS_FLG_MODIFIED = (1 << 0),
@@ -238,6 +245,7 @@ typedef struct settings
238245
unsigned network_cmd_port;
239246
unsigned network_remote_base_port;
240247
unsigned keymapper_port;
248+
unsigned cloud_sync_sync_mode;
241249
unsigned video_window_opacity;
242250
unsigned crt_switch_resolution;
243251
unsigned crt_switch_resolution_super;
@@ -1000,6 +1008,7 @@ typedef struct settings
10001008
bool cloud_sync_sync_configs;
10011009
bool cloud_sync_sync_thumbs;
10021010
bool cloud_sync_sync_system;
1011+
bool cloud_sync_startup_sync;
10031012

10041013
/* Misc. */
10051014
bool discord_enable;

intl/msg_hash_lbl.h

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3018,6 +3018,10 @@ MSG_HASH(
30183018
MENU_ENUM_LABEL_QUIT_RETROARCH,
30193019
"quit_retroarch"
30203020
)
3021+
MSG_HASH(
3022+
MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_NOW,
3023+
"cloud_sync_sync_now"
3024+
)
30213025
MSG_HASH(
30223026
MENU_ENUM_LABEL_RDB_ENTRY,
30233027
"rdb_entry"
@@ -3686,6 +3690,18 @@ MSG_HASH(
36863690
MENU_ENUM_LABEL_CLOUD_SYNC_ENABLE,
36873691
"cloud_sync_enable"
36883692
)
3693+
MSG_HASH(
3694+
MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_MODE,
3695+
"cloud_sync_sync_mode"
3696+
)
3697+
MSG_HASH(
3698+
MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_MODE_AUTOMATIC,
3699+
"cloud_sync_sync_mode_automatic"
3700+
)
3701+
MSG_HASH(
3702+
MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_MODE_MANUAL,
3703+
"cloud_sync_sync_mode_manual"
3704+
)
36893705
MSG_HASH(
36903706
MENU_ENUM_LABEL_CLOUD_SYNC_DESTRUCTIVE,
36913707
"cloud_sync_destructive"
@@ -3706,6 +3722,10 @@ MSG_HASH(
37063722
MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_SYSTEM,
37073723
"cloud_sync_sync_system"
37083724
)
3725+
MSG_HASH(
3726+
MENU_ENUM_LABEL_CLOUD_SYNC_STARTUP_SYNC,
3727+
"cloud_sync_startup_sync"
3728+
)
37093729
MSG_HASH(
37103730
MENU_ENUM_LABEL_CLOUD_SYNC_DRIVER,
37113731
"cloud_sync_driver"

intl/msg_hash_us.h

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,14 @@ MSG_HASH(
217217
MENU_ENUM_SUBLABEL_QUIT_RETROARCH,
218218
"Quit RetroArch application. Configuration save on exit is enabled."
219219
)
220+
MSG_HASH(
221+
MENU_ENUM_LABEL_VALUE_CLOUD_SYNC_SYNC_NOW,
222+
"Sync Now"
223+
)
224+
MSG_HASH(
225+
MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_NOW,
226+
"Manually trigger cloud synchronization."
227+
)
220228
MSG_HASH(
221229
MENU_ENUM_SUBLABEL_QUIT_RETROARCH_NOSAVE,
222230
"Quit RetroArch application. Configuration save on exit is disabled."
@@ -1344,6 +1352,22 @@ MSG_HASH(
13441352
MENU_ENUM_SUBLABEL_CLOUD_SYNC_DESTRUCTIVE,
13451353
"When disabled, files are moved to a backup folder before being overwritten or deleted."
13461354
)
1355+
MSG_HASH(
1356+
MENU_ENUM_LABEL_VALUE_CLOUD_SYNC_SYNC_MODE,
1357+
"Sync Mode"
1358+
)
1359+
MSG_HASH(
1360+
MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_MODE,
1361+
"Automatic: Sync on RetroArch startup and when cores are unloaded. Manual: Only sync when 'Sync Now' button is manually triggered."
1362+
)
1363+
MSG_HASH(
1364+
MENU_ENUM_LABEL_VALUE_CLOUD_SYNC_SYNC_MODE_AUTOMATIC,
1365+
"Automatic"
1366+
)
1367+
MSG_HASH(
1368+
MENU_ENUM_LABEL_VALUE_CLOUD_SYNC_SYNC_MODE_MANUAL,
1369+
"Manual"
1370+
)
13471371
MSG_HASH(
13481372
MENU_ENUM_LABEL_VALUE_CLOUD_SYNC_DRIVER,
13491373
"Cloud Sync Backend"

menu/cbs/menu_cbs_sublabel.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,6 +261,7 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_retro_achievements_settings_list, ME
261261
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_saving_settings_list, MENU_ENUM_SUBLABEL_SAVING_SETTINGS)
262262
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_settings_list, MENU_ENUM_SUBLABEL_CLOUD_SYNC_SETTINGS)
263263
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_enable, MENU_ENUM_SUBLABEL_CLOUD_SYNC_ENABLE)
264+
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_sync_mode, MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_MODE)
264265
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_destructive, MENU_ENUM_SUBLABEL_CLOUD_SYNC_DESTRUCTIVE)
265266
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_sync_saves, MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_SAVES)
266267
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_cloud_sync_sync_configs, MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_CONFIGS)
@@ -635,6 +636,7 @@ DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_core_list, MENU_
635636
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_core_list_unload, MENU_ENUM_SUBLABEL_CORE_LIST_UNLOAD)
636637
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_download_core, MENU_ENUM_SUBLABEL_DOWNLOAD_CORE)
637638
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_update_installed_cores, MENU_ENUM_SUBLABEL_UPDATE_INSTALLED_CORES)
639+
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_sync_now, MENU_ENUM_SUBLABEL_CLOUD_SYNC_SYNC_NOW)
638640
#if defined(ANDROID)
639641
DEFAULT_SUBLABEL_MACRO(action_bind_sublabel_switch_installed_cores_pfd, MENU_ENUM_SUBLABEL_SWITCH_INSTALLED_CORES_PFD)
640642
#endif
@@ -4611,6 +4613,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
46114613
case MENU_ENUM_LABEL_UPDATE_INSTALLED_CORES:
46124614
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_update_installed_cores);
46134615
break;
4616+
case MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_NOW:
4617+
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_sync_now);
4618+
break;
46144619
#if defined(ANDROID)
46154620
case MENU_ENUM_LABEL_SWITCH_INSTALLED_CORES_PFD:
46164621
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_switch_installed_cores_pfd);
@@ -5247,6 +5252,9 @@ int menu_cbs_init_bind_sublabel(menu_file_list_cbs_t *cbs,
52475252
case MENU_ENUM_LABEL_CLOUD_SYNC_ENABLE:
52485253
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_cloud_sync_enable);
52495254
break;
5255+
case MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_MODE:
5256+
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_cloud_sync_sync_mode);
5257+
break;
52505258
case MENU_ENUM_LABEL_CLOUD_SYNC_DESTRUCTIVE:
52515259
BIND_ACTION_SUBLABEL(cbs, action_bind_sublabel_cloud_sync_destructive);
52525260
break;

menu/drivers/materialui.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10750,6 +10750,17 @@ static int materialui_list_push(void *data, void *userdata,
1075010750
}
1075110751
#endif
1075210752

10753+
#if defined(HAVE_CLOUDSYNC)
10754+
if (settings->bools.cloud_sync_enable)
10755+
{
10756+
MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
10757+
info->list,
10758+
MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_NOW,
10759+
PARSE_ACTION,
10760+
false);
10761+
}
10762+
#endif
10763+
1075310764
#if defined(HAVE_NETWORKING)
1075410765
#ifdef HAVE_LAKKA
1075510766
MENU_DISPLAYLIST_PARSE_SETTINGS_ENUM(
@@ -12032,6 +12043,7 @@ static void materialui_list_insert(void *userdata,
1203212043
}
1203312044
else if ( string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_QUIT_RETROARCH))
1203412045
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_RESTART_RETROARCH))
12046+
|| string_is_equal(label, msg_hash_to_str(MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_NOW))
1203512047
)
1203612048
{
1203712049
node->icon_texture_index = MUI_TEXTURE_QUIT;

menu/drivers/ozone.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2239,6 +2239,7 @@ static uintptr_t ozone_entries_icon_get_texture(
22392239
case MENU_ENUM_LABEL_CHEAT_COPY_BEFORE:
22402240
case MENU_ENUM_LABEL_CHEAT_RELOAD_CHEATS:
22412241
case MENU_ENUM_LABEL_RESTART_RETROARCH:
2242+
case MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_NOW:
22422243
case MENU_ENUM_LABEL_FRAME_TIME_COUNTER_SETTINGS:
22432244
case MENU_ENUM_LABEL_PLAYLIST_MANAGER_CLEAN_PLAYLIST:
22442245
case MENU_ENUM_LABEL_PLAYLIST_MANAGER_REFRESH_PLAYLIST:

menu/drivers/xmb.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3423,6 +3423,7 @@ static uintptr_t xmb_icon_get_id(xmb_handle_t *xmb,
34233423
case MENU_ENUM_LABEL_CHEAT_COPY_BEFORE:
34243424
case MENU_ENUM_LABEL_CHEAT_RELOAD_CHEATS:
34253425
case MENU_ENUM_LABEL_RESTART_RETROARCH:
3426+
case MENU_ENUM_LABEL_CLOUD_SYNC_SYNC_NOW:
34263427
case MENU_ENUM_LABEL_FRAME_TIME_COUNTER_SETTINGS:
34273428
case MENU_ENUM_LABEL_PLAYLIST_MANAGER_CLEAN_PLAYLIST:
34283429
case MENU_ENUM_LABEL_PLAYLIST_MANAGER_REFRESH_PLAYLIST:

0 commit comments

Comments
 (0)