From 0b05b1e3f46db3ef734a45bd772f3a4204648cc0 Mon Sep 17 00:00:00 2001 From: Alex Kiraly Date: Mon, 25 Nov 2024 17:47:27 +0000 Subject: [PATCH] Fix CloudSync on Windows, enable by default (#16475) * Make paths portable for CloudSync when building manifest * Enable CloudSync on Windows builds * Fix "fetech server file" - Forgot to commit this, oops! * Fix definition conflict with gzguts.h * "Enable Cloud Sync for Windows UWP builds" --------- Co-authored-by: WindowsDEV --- Makefile.common | 4 ++ network/cloud_sync_driver.c | 20 +++---- network/cloud_sync_driver.h | 10 ++-- .../RetroArch-msvcUWP.vcxproj | 18 +++--- tasks/task_cloudsync.c | 55 ++++++++++++++++++- 5 files changed, 82 insertions(+), 25 deletions(-) diff --git a/Makefile.common b/Makefile.common index 94e383f3ce..181e74cf7c 100644 --- a/Makefile.common +++ b/Makefile.common @@ -2193,6 +2193,10 @@ ifeq ($(HAVE_NETWORKING), 1) ifneq ($(findstring Linux,$(OS)),) HAVE_CLOUDSYNC = 1 endif + + ifneq ($(findstring Win,$(OS)),) + HAVE_CLOUDSYNC = 1 + endif ifeq ($(HAVE_CLOUDSYNC), 1) DEFINES += -DHAVE_CLOUDSYNC diff --git a/network/cloud_sync_driver.c b/network/cloud_sync_driver.c index 4bf166c816..6e46c3604b 100644 --- a/network/cloud_sync_driver.c +++ b/network/cloud_sync_driver.c @@ -91,24 +91,24 @@ void cloud_sync_find_driver( bool cloud_sync_begin(cloud_sync_complete_handler_t cb, void *user_data) { const cloud_sync_driver_t *driver = cloud_sync_state_get_ptr()->driver; - if (driver && driver->sync_begin) - return driver->sync_begin(cb, user_data); + if (driver && driver->cloud_sync_begin) + return driver->cloud_sync_begin(cb, user_data); return false; } bool cloud_sync_end(cloud_sync_complete_handler_t cb, void *user_data) { const cloud_sync_driver_t *driver = cloud_sync_state_get_ptr()->driver; - if (driver && driver->sync_end) - return driver->sync_end(cb, user_data); + if (driver && driver->cloud_sync_end) + return driver->cloud_sync_end(cb, user_data); return false; } bool cloud_sync_read(const char *path, const char *file, cloud_sync_complete_handler_t cb, void *user_data) { const cloud_sync_driver_t *driver = cloud_sync_state_get_ptr()->driver; - if (driver && driver->read) - return driver->read(path, file, cb, user_data); + if (driver && driver->cloud_sync_read) + return driver->cloud_sync_read(path, file, cb, user_data); return false; } @@ -116,15 +116,15 @@ bool cloud_sync_update(const char *path, RFILE *file, cloud_sync_complete_handler_t cb, void *user_data) { const cloud_sync_driver_t *driver = cloud_sync_state_get_ptr()->driver; - if (driver && driver->update) - return driver->update(path, file, cb, user_data); + if (driver && driver->cloud_sync_update) + return driver->cloud_sync_update(path, file, cb, user_data); return false; } bool cloud_sync_free(const char *path, cloud_sync_complete_handler_t cb, void *user_data) { const cloud_sync_driver_t *driver = cloud_sync_state_get_ptr()->driver; - if (driver && driver->free) - return driver->free(path, cb, user_data); + if (driver && driver->cloud_sync_free) + return driver->cloud_sync_free(path, cb, user_data); return false; } diff --git a/network/cloud_sync_driver.h b/network/cloud_sync_driver.h index f834a5f8c4..0e2ca0b709 100644 --- a/network/cloud_sync_driver.h +++ b/network/cloud_sync_driver.h @@ -33,12 +33,12 @@ typedef void (*cloud_sync_complete_handler_t)(void *user_data, const char *path, typedef struct cloud_sync_driver { - bool (*sync_begin)(cloud_sync_complete_handler_t cb, void *user_data); - bool (*sync_end)(cloud_sync_complete_handler_t cb, void *user_data); + bool (*cloud_sync_begin)(cloud_sync_complete_handler_t cb, void *user_data); + bool (*cloud_sync_end)(cloud_sync_complete_handler_t cb, void *user_data); - bool (*read)(const char *path, const char *file, cloud_sync_complete_handler_t cb, void *user_data); - bool (*update)(const char *path, RFILE *file, cloud_sync_complete_handler_t cb, void *user_data); - bool (*free)(const char *path, cloud_sync_complete_handler_t cb, void *user_data); + bool (*cloud_sync_read)(const char *path, const char *file, cloud_sync_complete_handler_t cb, void *user_data); + bool (*cloud_sync_update)(const char *path, RFILE *file, cloud_sync_complete_handler_t cb, void *user_data); + bool (*cloud_sync_free)(const char *path, cloud_sync_complete_handler_t cb, void *user_data); const char *ident; } cloud_sync_driver_t; diff --git a/pkg/msvc-uwp/RetroArch-msvcUWP/RetroArch-msvcUWP.vcxproj b/pkg/msvc-uwp/RetroArch-msvcUWP/RetroArch-msvcUWP.vcxproj index fa7a6a7b58..7c9103b35c 100644 --- a/pkg/msvc-uwp/RetroArch-msvcUWP/RetroArch-msvcUWP.vcxproj +++ b/pkg/msvc-uwp/RetroArch-msvcUWP/RetroArch-msvcUWP.vcxproj @@ -92,7 +92,7 @@ $(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include\compat\zlib;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\7zip;$(MSBuildProjectDirectory)\..\..\..\deps\dr;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories) /bigobj %(AdditionalOptions) /utf-8 4453;28204 - WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;DEBUG;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_RGUI;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING + WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;DEBUG;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_RGUI;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_CLOUDSYNC;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING @@ -107,7 +107,7 @@ $(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include\compat\zlib;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\7zip;$(MSBuildProjectDirectory)\..\..\..\deps\dr;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;$(MSBuildProjectDirectory)\..\..\..\gfx\include\ANGLE;%(AdditionalIncludeDirectories) /bigobj %(AdditionalOptions) /utf-8 4453;28204 - WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;DEBUG;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_RGUI;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_ANGLE;HAVE_OPENGL;HAVE_OPENGLES;HAVE_OPENGLES2;HAVE_GLSL;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING + WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;DEBUG;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_RGUI;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_ANGLE;HAVE_OPENGL;HAVE_OPENGLES;HAVE_OPENGLES2;HAVE_GLSL;HAVE_CLOUDSYNC;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING @@ -122,7 +122,7 @@ $(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include\compat\zlib;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\7zip;$(MSBuildProjectDirectory)\..\..\..\deps\dr;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;%(AdditionalIncludeDirectories) /bigobj %(AdditionalOptions) /utf-8 4453;28204 - WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_RGUI;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING + WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_RGUI;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_CLOUDSYNC;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING @@ -137,7 +137,7 @@ $(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include\compat\zlib;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\7zip;$(MSBuildProjectDirectory)\..\..\..\deps\dr;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;$(MSBuildProjectDirectory)\..\..\..\gfx\include\ANGLE;%(AdditionalIncludeDirectories) /bigobj %(AdditionalOptions) /utf-8 4453;28204 - WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_RGUI;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_ANGLE;HAVE_OPENGL;HAVE_OPENGLES;HAVE_OPENGLES2;HAVE_GLSL;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING + WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_RGUI;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_ANGLE;HAVE_OPENGL;HAVE_OPENGLES;HAVE_OPENGLES2;HAVE_GLSL;HAVE_CLOUDSYNC;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING @@ -152,7 +152,7 @@ $(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include\compat\zlib;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\7zip;$(MSBuildProjectDirectory)\..\..\..\deps\dr;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\gfx\include;$(MSBuildProjectDirectory)\..\..\..\gfx\include\MESA;%(AdditionalIncludeDirectories) /bigobj %(AdditionalOptions) /utf-8 4453;28204 - WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;HAVE_OPENGL;HAVE_GLSL;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;DEBUG;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_RGUI;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING + WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;HAVE_OPENGL;HAVE_GLSL;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;DEBUG;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_RGUI;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_CLOUDSYNC;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING ProgramDatabase @@ -168,7 +168,7 @@ $(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include\compat\zlib;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\7zip;$(MSBuildProjectDirectory)\..\..\..\deps\dr;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\gfx\include;$(MSBuildProjectDirectory)\..\..\..\gfx\include\MESA;%(AdditionalIncludeDirectories) /bigobj %(AdditionalOptions) /utf-8 4453;28204 - WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;HAVE_OPENGL;HAVE_GLSL;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_RGUI;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING + WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;HAVE_OPENGL;HAVE_GLSL;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_RGUI;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_CLOUDSYNC;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING @@ -183,7 +183,7 @@ $(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include\compat\zlib;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\7zip;$(MSBuildProjectDirectory)\..\..\..\deps\dr;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;$(MSBuildProjectDirectory)\..\..\..\gfx\include\ANGLE;%(AdditionalIncludeDirectories) /bigobj %(AdditionalOptions) /utf-8 4453;28204 - WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_RGUI;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_ANGLE;HAVE_OPENGL;HAVE_OPENGLES;HAVE_OPENGLES2;HAVE_GLSL;HAVE_EGL;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING + WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;NDEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_RGUI;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_ANGLE;HAVE_OPENGL;HAVE_OPENGLES;HAVE_OPENGLES2;HAVE_GLSL;HAVE_EGL;HAVE_CLOUDSYNC;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING @@ -198,7 +198,7 @@ $(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include\compat\zlib;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\7zip;$(MSBuildProjectDirectory)\..\..\..\deps\dr;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;$(MSBuildProjectDirectory)\..\..\..\gfx\include\ANGLE;%(AdditionalIncludeDirectories) /bigobj %(AdditionalOptions) /utf-8 4453;28204 - WIN32;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;DEBUG;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_RGUI;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_ANGLE;HAVE_OPENGL;HAVE_OPENGLES;HAVE_OPENGLES2;HAVE_GLSL;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING + WIN32;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;DEBUG;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_RGUI;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_ANGLE;HAVE_OPENGL;HAVE_OPENGLES;HAVE_OPENGLES2;HAVE_GLSL;HAVE_CLOUDSYNC;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING @@ -213,7 +213,7 @@ $(MSBuildProjectDirectory);$(MSBuildProjectDirectory)\..\..\..\;$(MSBuildProjectDirectory)\..\..\..\deps\rcheevos\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include;$(MSBuildProjectDirectory)\..\..\..\libretro-common\include\compat\zlib;$(MSBuildProjectDirectory)\..\..\..\deps;$(MSBuildProjectDirectory)\..\..\..\deps\7zip;$(MSBuildProjectDirectory)\..\..\..\deps\dr;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\deps\glslang;$(MSBuildProjectDirectory)\..\..\..\deps\SPIRV-Cross;$(MSBuildProjectDirectory)\..\..\..\deps\stb;$(MSBuildProjectDirectory)\..\..\..\gfx\include;$(MSBuildProjectDirectory)\..\..\..\gfx\include\ANGLE;%(AdditionalIncludeDirectories) /bigobj %(AdditionalOptions) /utf-8 4453;28204 - WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;DEBUG;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_RGUI;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_ANGLE;HAVE_OPENGL;HAVE_OPENGLES;HAVE_OPENGLES2;HAVE_GLSL;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING + WIN32;HAVE_XDELTA;HAVE_MAIN;HAVE_DYNAMIC;HAVE_DYLIB;HAVE_XAUDIO2;RARCH_INTERNAL;HAVE_CC_RESAMPLER;WANT_GLSLANG;HAVE_GLSLANG;HAVE_BUILTINGLSLANG;HAVE_SLANG;HAVE_SPIRV_CROSS;HAVE_ONLINE_UPDATER;HAVE_UPDATE_ASSETS;HAVE_UPDATE_CORES;HAVE_UPDATE_CORE_INFO;HAVE_D3D;HAVE_D3D11;HAVE_D3D12;RC_DISABLE_LUA;HAVE_CHEEVOS;HAVE_CHD;HAVE_RUNAHEAD;HAVE_GRIFFIN;HAVE_LANGEXTRA;HAVE_ZLIB;HAVE_7ZIP;_7ZIP_ST;HAVE_TRANSLATE;HAVE_ACCESSIBILITY;HAVE_RPNG;HAVE_CORE_INFO_CACHE;HAVE_RJPEG;HAVE_RBMP;HAVE_RTGA;HAVE_IMAGEVIEWER;HAVE_XMB;HAVE_OZONE;HAVE_SHADERPIPELINE;DEBUG;_DEBUG;_WINDOWS;%(PreprocessorDefinitions);HAVE_XINPUT;HAVE_XINPUT2;HAVE_XAUDIO;HAVE_STB_VORBIS;HAVE_IBXM;HAVE_DR_FLAC;HAVE_DR_MP3;HAVE_DIRECTX;HAVE_NETWORKING;HAVE_IFINFO;HAVE_NETWORK_CMD;HAVE_NETPLAYDISCOVERY;HAVE_COMMAND;HAVE_STDIN_CMD;HAVE_THREADS;_CRT_NONSTDC_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;HAVE_OVERLAY;HAVE_RGUI;HAVE_MENU;HAVE_GFX_WIDGETS;HAVE_CONFIGFILE;HAVE_PATCH;HAVE_DSP_FILTER;HAVE_VIDEO_FILTER;HAVE_REWIND;HAVE_SCREENSHOTS;HAVE_CHEATS;HAVE_MATERIALUI;HAVE_LIBRETRODB;HAVE_AUDIOMIXER;HAVE_RWAV;HAVE_STB_FONT;HAVE_STATIC_DUMMY;HAVE_STATIC_VIDEO_FILTERS;HAVE_STATIC_AUDIO_FILTERS;HAVE_ANGLE;HAVE_OPENGL;HAVE_OPENGLES;HAVE_OPENGLES2;HAVE_GLSL;HAVE_CLOUDSYNC;_SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING ProgramDatabase diff --git a/tasks/task_cloudsync.c b/tasks/task_cloudsync.c index bfb57251be..5b51504d3f 100644 --- a/tasks/task_cloudsync.c +++ b/tasks/task_cloudsync.c @@ -55,8 +55,10 @@ typedef struct { enum task_cloud_sync_phase phase; uint32_t waiting; + /* Manifest present on the server (may be modified by other clients)*/ file_list_t *server_manifest; size_t server_idx; + /* Last-known state to compare agasint.*/ file_list_t *local_manifest; size_t local_idx; file_list_t *current_manifest; @@ -275,6 +277,15 @@ static bool task_cloud_sync_should_ignore_file(const char *filename) return false; } +/** + * task_cloud_sync_manifest_append_dir: + * @manifest : pointer to the current file_list + * @dir_fullpath : the full path to the directory to be added + * @dir_name : the name of the directory to be added + * + * Adds all the files within the given directory to the provided + * file list, with the exception of the ones that should be ignored + */ static void task_cloud_sync_manifest_append_dir(file_list_t *manifest, const char *dir_fullpath, char *dir_name) { @@ -307,11 +318,26 @@ static void task_cloud_sync_manifest_append_dir(file_list_t *manifest, if (task_cloud_sync_should_ignore_file(alt)) continue; + /* The "alt" refers to the relative path of whatever we're syncing relative to the retroarch folder + * whereas the full_path is the absolute disk path of the file. When building the manifest, adhere + * to a portable standard, but use that as the portable representation of paths. While the actual + * "manifest" is comprised of full, local-style paths associated with "alt"s which are portable. */ + pathname_make_slashes_portable(alt); file_list_append(manifest, full_path, NULL, 0, 0, 0); file_list_set_alt_at_offset(manifest, idx, alt); } + + /* TODO Is this freed anywhere else? Am I missing something? The dir_list's contents are strdup'ed, so freeing this shouldn't break anything + * Remove this comment once a decision has been taken*/ + string_list_free(dir_list); } +/** + * task_cloud_sync_directory_map: + * + * Returns a string_list containing the folders that should be synced. + * This is hard-coded for now, and syncs the config, the saves and the states + */ static struct string_list *task_cloud_sync_directory_map(void) { static struct string_list *list = NULL; @@ -358,6 +384,12 @@ static struct string_list *task_cloud_sync_directory_map(void) return list; } +/** + * task_cloud_sync_build_current_manifest: + * @sync_state : pointer to the current sync state + * + * Create an in-memory manifest of actual, current disk data + */ static void task_cloud_sync_build_current_manifest(task_cloud_sync_state_t *sync_state) { struct string_list *dirlist = task_cloud_sync_directory_map(); @@ -381,6 +413,8 @@ static void task_cloud_sync_build_current_manifest(task_cloud_sync_state_t *sync return; } + /* The userdata of the elements is actually the full path to the directory, while data is the name of the folder itself */ + /* The paths iterated here are not portable, because they are still used for iterating later on */ for (i = 0; i < dirlist->size; i++) task_cloud_sync_manifest_append_dir(sync_state->current_manifest, dirlist->elems[i].userdata, dirlist->elems[i].data); @@ -390,6 +424,16 @@ static void task_cloud_sync_build_current_manifest(task_cloud_sync_state_t *sync RARCH_LOG(CSPFX "created in-memory manifest of current disk state\n"); } +/** + * task_cloud_sync_update_progress: + * @task : pointer to the retro_task executing us + * + * Updates the percentage of the current task's progress based on + * current sync progress. It results in a percentage which is + * computed based on the total number of files to deal with and + * the current cumulative count that's been dealt with across + * the three types of manifests (server, old local, current local) + */ static void task_cloud_sync_update_progress(retro_task_t *task) { task_cloud_sync_state_t *sync_state = NULL; @@ -645,6 +689,15 @@ static void task_cloud_sync_upload_cb(void *user_data, const char *path, bool su slock_unlock(tcs_running_lock); } +/** + * task_cloud_sync_update_progress: + * @sync_state : pointer to the current sync task + * + * Uploads the current file to the cloud. The current file is defined + * as whatever file is indicated by the current manifest (that is, the + * local, actually true manifest) combined with whatever the iteration + * variable indicates (the one specific to the current manifest) + */ static void task_cloud_sync_upload_current_file(task_cloud_sync_state_t *sync_state) { struct item_file *item = &sync_state->current_manifest->list[sync_state->current_idx]; @@ -850,7 +903,7 @@ static void task_cloud_sync_diff_next(task_cloud_sync_state_t *sync_state) server_current_key_cmp = task_cloud_sync_key_cmp(server_file, current_file); if (server_current_key_cmp < 0) { - /* the server has a file we don't have */ + /* the server has a file we don't have, we check the hash */ if (!CS_FILE_DELETED(server_file)) task_cloud_sync_fetch_server_file(sync_state); else