RetroArch/file_path_special.h

151 lines
6.1 KiB
C
Raw Permalink Normal View History

2016-05-01 06:07:45 -07:00
/* RetroArch - A frontend for libretro.
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
* Copyright (C) 2011-2016 - Daniel De Matteis
2019-06-23 15:23:39 -07:00
* Copyright (C) 2016-2019 - Brad Parker
2017-11-23 03:58:19 -08:00
*
2016-05-01 06:07:45 -07:00
* RetroArch is free software: you can redistribute it and/or modify it under the terms
* of the GNU General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version.
*
* RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along with RetroArch.
* If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef _FILE_PATH_SPECIAL_H
#define _FILE_PATH_SPECIAL_H
#include <stdint.h>
#include <stddef.h>
#include <boolean.h>
2017-12-30 04:45:29 -08:00
#include <retro_common_api.h>
2017-12-30 04:35:47 -08:00
#include <retro_environment.h>
RETRO_BEGIN_DECLS
2016-05-01 06:07:45 -07:00
2020-08-21 16:06:10 -07:00
#define FILE_PATH_UNKNOWN "null"
#define FILE_PATH_CONTENT_BASENAME "content.png"
2020-08-23 12:36:09 -07:00
#define FILE_PATH_BUILTIN "builtin"
2020-08-21 16:06:10 -07:00
#define FILE_PATH_DETECT "DETECT"
#define FILE_PATH_LUTRO_PLAYLIST "Lutro.lpl"
#define FILE_PATH_NUL "nul"
#define FILE_PATH_CGP_EXTENSION ".cgp"
#define FILE_PATH_GLSLP_EXTENSION ".glslp"
#define FILE_PATH_SLANGP_EXTENSION ".slangp"
#define FILE_PATH_AUTO_EXTENSION ".auto"
#define FILE_PATH_BSV_EXTENSION ".replay"
2020-08-21 16:06:10 -07:00
#define FILE_PATH_OPT_EXTENSION ".opt"
#define FILE_PATH_CORE_INFO_EXTENSION ".info"
#define FILE_PATH_CONFIG_EXTENSION ".cfg"
#define FILE_PATH_REMAP_EXTENSION ".rmp"
#define FILE_PATH_RTC_EXTENSION ".rtc"
#define FILE_PATH_CHT_EXTENSION ".cht"
#define FILE_PATH_SRM_EXTENSION ".srm"
#define FILE_PATH_STATE_EXTENSION ".state"
#define FILE_PATH_LPL_EXTENSION ".lpl"
#define FILE_PATH_LPL_EXTENSION_NO_DOT "lpl"
#define FILE_PATH_PNG_EXTENSION ".png"
#define FILE_PATH_MP3_EXTENSION ".mp3"
#define FILE_PATH_FLAC_EXTENSION ".flac"
#define FILE_PATH_OGG_EXTENSION ".ogg"
#define FILE_PATH_WAV_EXTENSION ".wav"
#define FILE_PATH_MOD_EXTENSION ".mod"
#define FILE_PATH_S3M_EXTENSION ".s3m"
#define FILE_PATH_XM_EXTENSION ".xm"
#define FILE_PATH_JPEG_EXTENSION ".jpeg"
#define FILE_PATH_BMP_EXTENSION ".bmp"
#define FILE_PATH_TGA_EXTENSION ".tga"
#define FILE_PATH_JPG_EXTENSION ".jpg"
#define FILE_PATH_UPS_EXTENSION ".ups"
#define FILE_PATH_IPS_EXTENSION ".ips"
#define FILE_PATH_BPS_EXTENSION ".bps"
XDelta patch support (Take 2) (#15915) * Add xdelta in deps * Include <assert.h> in xdelta3.h - Otherwise the static_assert calls can fail * Build xdelta3 in Makefile.common * Add xdelta support to the softpatching infrastructure - The patching itself isn't fully implemented yet * Adjust how xdelta3.h checks the sizes of some types - Now checks max values instead of relying on autotools * Add some enums that were excluded by the cherry-pick * Remove stray whitespace * Adjust SIZE macros in xdelta3.h - Move them outside the XD3_USE_LARGEFILE64 block - Add more SIZE declarations - Make SIZEOF_UNSIGNED_LONG_LONG contingent on the presence of ULLONG_MAX * Reintegrate xdelta support * Enable support for xdelta's secondary compressors - Necessary for some patches * Fix some format specifiers * Remove unnecessary files from xdelta * Include xdelta3.h with a relative path * Add xdelta3 headers to HEADERS variable * Gate Xdelta support behind HAVE_XDELTA - HAVE_XDELTA is on by default - HAVE_PATCH is still required for HAVE_XDELTA to be meaningful - Support is mostly contingent on the availability of LZMA - Anything modern should be okay - Legacy platforms (e.g. DOS) may need to have Xdelta support disabled - At least until some other solution can be found * Disable HAVE_XDELTA on platforms where the build recently failed - These come from looking at the failed builds on GitHub - These are guesses, and may turn out to be wrong * Fix a potential memory leak - Whoops, looks like I need to call two cleanup functions - xd3_close_stream exists separately from xd3_free_stream * Split the --help printout for --xdelta into its own strlcat call - GCC was complaining about #ifdefs within macro arguments being non-portable * Fix some incorrect printf format specifiers * Modify Xdelta to adhere to C89 - It's mostly using RetroArch's INLINE macro instead of the inline keyword * Slight cleanups * Remove a stray comma that was hindering C89 builds * Add XDelta support to CHANGES.md * Change how the xdelta patch's name is computed - To be in line with other recent refactoring * Fix an incorrect merge - Whoops, this part was from before I figured out how to get the size of a patched file * Explain the song-and-dance behind computing a patched file's size * Define some XDelta3-related constants to 0 on 32-bit platforms * Adjust some Xdelta-related macro definitions - Exclude the encoder, since we're not making patches - Move some #defines to after inclusion of <stdint.h>, to fix undefined behavior - Remove _WIN32_WINNT overrides, since they were for code that we're not using * Fix Xdelta support * Wrap an encoder-only function in `#if XD3_ENCODER`
2023-11-23 20:19:07 -08:00
#define FILE_PATH_XDELTA_EXTENSION ".xdelta"
2020-08-21 16:06:10 -07:00
#define FILE_PATH_RDB_EXTENSION ".rdb"
#define FILE_PATH_RDB_EXTENSION_NO_DOT "rdb"
#define FILE_PATH_ZIP_EXTENSION ".zip"
#define FILE_PATH_7Z_EXTENSION ".7z"
#define FILE_PATH_INDEX_URL ".index"
#define FILE_PATH_INDEX_DIRS_URL ".index-dirs"
#define FILE_PATH_INDEX_EXTENDED_URL ".index-extended"
#define FILE_PATH_NETPLAY_ROOM_LIST_URL "registry.lpl"
2020-09-01 12:51:11 -07:00
#define FILE_PATH_RETROACHIEVEMENTS_URL "http://i.retroachievements.org"
2020-08-31 16:18:30 -07:00
#define FILE_PATH_LOBBY_LIBRETRO_URL "http://lobby.libretro.com/"
2020-08-22 03:51:34 -07:00
#define FILE_PATH_CORE_THUMBNAILS_URL "http://thumbnails.libretro.com"
#define FILE_PATH_CORE_THUMBNAILPACKS_URL "http://thumbnailpacks.libretro.com"
2020-08-21 16:06:10 -07:00
#define FILE_PATH_SHADERS_GLSL_ZIP "shaders_glsl.zip"
#define FILE_PATH_SHADERS_SLANG_ZIP "shaders_slang.zip"
#define FILE_PATH_SHADERS_CG_ZIP "shaders_cg.zip"
#define FILE_PATH_DATABASE_RDB_ZIP "database-rdb.zip"
#define FILE_PATH_OVERLAYS_ZIP "overlays.zip"
#define FILE_PATH_CORE_INFO_ZIP "info.zip"
#define FILE_PATH_CHEATS_ZIP "cheats.zip"
#define FILE_PATH_ASSETS_ZIP "assets.zip"
#define FILE_PATH_AUTOCONFIG_ZIP "autoconfig.zip"
#define FILE_PATH_CONTENT_FAVORITES "content_favorites.lpl"
#define FILE_PATH_CONTENT_HISTORY "content_history.lpl"
#define FILE_PATH_CONTENT_IMAGE_HISTORY "content_image_history.lpl"
2020-08-21 16:06:10 -07:00
#define FILE_PATH_CONTENT_MUSIC_HISTORY "content_music_history.lpl"
#define FILE_PATH_CONTENT_VIDEO_HISTORY "content_video_history.lpl"
#define FILE_PATH_CORE_OPTIONS_CONFIG "retroarch-core-options.cfg"
#define FILE_PATH_MAIN_CONFIG "retroarch.cfg"
#define FILE_PATH_SALAMANDER_CONFIG "retroarch-salamander.cfg"
2020-08-21 16:06:10 -07:00
#define FILE_PATH_BACKGROUND_IMAGE "bg.png"
#define FILE_PATH_TTF_FONT "font.ttf"
#define FILE_PATH_RUNTIME_EXTENSION ".lrtl"
#define FILE_PATH_DEFAULT_EVENT_LOG "retroarch.log"
#define FILE_PATH_EVENT_LOG_EXTENSION ".log"
#define FILE_PATH_DISK_CONTROL_INDEX_EXTENSION ".ldci"
#define FILE_PATH_CORE_BACKUP_EXTENSION ".lcbk"
#define FILE_PATH_CORE_BACKUP_EXTENSION_NO_DOT "lcbk"
#define FILE_PATH_LOCK_EXTENSION ".lck"
#define FILE_PATH_LOCK_EXTENSION_NO_DOT "lck"
#define FILE_PATH_STANDALONE_EXEMPT_EXTENSION ".lsae"
#define FILE_PATH_STANDALONE_EXEMPT_EXTENSION_NO_DOT "lsae"
#define FILE_PATH_BACKUP_EXTENSION ".bak"
#if defined(RARCH_MOBILE)
#define FILE_PATH_DEFAULT_OVERLAY "gamepads/neo-retropad/neo-retropad.cfg"
#endif
#define FILE_PATH_CORE_INFO_CACHE "core_info.cache"
#define FILE_PATH_CORE_INFO_CACHE_REFRESH "core_info.refresh"
2016-06-19 20:11:01 -07:00
#ifdef HAVE_LAKKA
#ifdef HAVE_LAKKA_SERVER
#define FILE_PATH_LAKKA_URL HAVE_LAKKA_SERVER
#else
#error "Building for Lakka, but no update server was defined! Add -DHAVE_LAKKA_SERVER=\\\"http://...\\\""
#endif
#ifdef HAVE_LAKKA_PROJECT
#define LAKKA_PROJECT HAVE_LAKKA_PROJECT
#else
#error "Building for Lakka, but no target device name was defined! Add -DHAVE_LAKKA_PROJECT=\\\"DeviceName.arch\\\""
#endif
#endif
2016-06-11 10:55:27 -07:00
enum application_special_type
{
2016-06-11 10:55:27 -07:00
APPLICATION_SPECIAL_NONE = 0,
APPLICATION_SPECIAL_DIRECTORY_CONFIG,
2016-06-11 10:55:27 -07:00
APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB,
2016-06-11 11:11:36 -07:00
APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_BG,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS,
2016-06-11 11:34:49 -07:00
APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT,
2020-08-03 10:37:34 -07:00
APPLICATION_SPECIAL_DIRECTORY_ASSETS_OZONE_ICONS,
2020-12-09 08:48:09 -08:00
APPLICATION_SPECIAL_DIRECTORY_ASSETS_RGUI_FONT,
2019-01-27 08:22:16 -08:00
APPLICATION_SPECIAL_DIRECTORY_ASSETS_SOUNDS,
APPLICATION_SPECIAL_DIRECTORY_ASSETS_SYSICONS,
APPLICATION_SPECIAL_DIRECTORY_THUMBNAILS_CHEEVOS_BADGES,
APPLICATION_SPECIAL_DIRECTORY_THUMBNAILS_DISCORD_AVATARS
};
2016-05-01 06:07:45 -07:00
bool fill_pathname_application_data(char *s, size_t len);
2016-06-11 10:55:27 -07:00
void fill_pathname_application_special(char *s, size_t len, enum application_special_type type);
2017-12-30 04:35:47 -08:00
RETRO_END_DECLS
2016-05-01 06:07:45 -07:00
#endif