1 /*  RetroArch - A frontend for libretro.
2  *  Copyright (C) 2010-2014 - Hans-Kristian Arntzen
3  *  Copyright (C) 2011-2016 - Daniel De Matteis
4  *  Copyright (C) 2016-2019 - Brad Parker
5  *
6  *  RetroArch is free software: you can redistribute it and/or modify it under the terms
7  *  of the GNU General Public License as published by the Free Software Found-
8  *  ation, either version 3 of the License, or (at your option) any later version.
9  *
10  *  RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
11  *  without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  *  PURPOSE.  See the GNU General Public License for more details.
13  *
14  *  You should have received a copy of the GNU General Public License along with RetroArch.
15  *  If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef _FILE_PATH_SPECIAL_H
19 #define _FILE_PATH_SPECIAL_H
20 
21 #include <stdint.h>
22 #include <stddef.h>
23 
24 #include <boolean.h>
25 #include <retro_common_api.h>
26 #include <retro_environment.h>
27 
28 RETRO_BEGIN_DECLS
29 
30 #define FILE_PATH_UNKNOWN          "null"
31 #define FILE_PATH_CONTENT_BASENAME "content.png"
32 #define FILE_PATH_BUILTIN          "builtin"
33 #define FILE_PATH_DETECT           "DETECT"
34 #define FILE_PATH_LUTRO_PLAYLIST   "Lutro.lpl"
35 #define FILE_PATH_NUL              "nul"
36 #define FILE_PATH_CGP_EXTENSION ".cgp"
37 #define FILE_PATH_GLSLP_EXTENSION ".glslp"
38 #define FILE_PATH_SLANGP_EXTENSION ".slangp"
39 #define FILE_PATH_AUTO_EXTENSION ".auto"
40 #define FILE_PATH_BSV_EXTENSION ".bsv"
41 #define FILE_PATH_OPT_EXTENSION ".opt"
42 #define FILE_PATH_CORE_INFO_EXTENSION ".info"
43 #define FILE_PATH_CONFIG_EXTENSION ".cfg"
44 #define FILE_PATH_REMAP_EXTENSION ".rmp"
45 #define FILE_PATH_RTC_EXTENSION ".rtc"
46 #define FILE_PATH_CHT_EXTENSION ".cht"
47 #define FILE_PATH_SRM_EXTENSION ".srm"
48 #define FILE_PATH_STATE_EXTENSION ".state"
49 #define FILE_PATH_LPL_EXTENSION ".lpl"
50 #define FILE_PATH_LPL_EXTENSION_NO_DOT "lpl"
51 #define FILE_PATH_PNG_EXTENSION ".png"
52 #define FILE_PATH_MP3_EXTENSION ".mp3"
53 #define FILE_PATH_FLAC_EXTENSION ".flac"
54 #define FILE_PATH_OGG_EXTENSION ".ogg"
55 #define FILE_PATH_WAV_EXTENSION ".wav"
56 #define FILE_PATH_MOD_EXTENSION ".mod"
57 #define FILE_PATH_S3M_EXTENSION ".s3m"
58 #define FILE_PATH_XM_EXTENSION ".xm"
59 #define FILE_PATH_JPEG_EXTENSION ".jpeg"
60 #define FILE_PATH_BMP_EXTENSION ".bmp"
61 #define FILE_PATH_TGA_EXTENSION ".tga"
62 #define FILE_PATH_JPG_EXTENSION ".jpg"
63 #define FILE_PATH_UPS_EXTENSION ".ups"
64 #define FILE_PATH_IPS_EXTENSION ".ips"
65 #define FILE_PATH_BPS_EXTENSION ".bps"
66 #define FILE_PATH_RDB_EXTENSION ".rdb"
67 #define FILE_PATH_RDB_EXTENSION_NO_DOT "rdb"
68 #define FILE_PATH_ZIP_EXTENSION ".zip"
69 #define FILE_PATH_7Z_EXTENSION ".7z"
70 #define FILE_PATH_INDEX_URL ".index"
71 #define FILE_PATH_INDEX_DIRS_URL ".index-dirs"
72 #define FILE_PATH_INDEX_EXTENDED_URL ".index-extended"
73 #define FILE_PATH_NETPLAY_ROOM_LIST_URL "registry.lpl"
74 #define FILE_PATH_RETROACHIEVEMENTS_URL "http://i.retroachievements.org"
75 #define FILE_PATH_LOBBY_LIBRETRO_URL "http://lobby.libretro.com/"
76 #define FILE_PATH_CORE_THUMBNAILS_URL "http://thumbnails.libretro.com"
77 #define FILE_PATH_CORE_THUMBNAILPACKS_URL "http://thumbnailpacks.libretro.com"
78 #ifdef HAVE_LAKKA_NIGHTLY
79 #define FILE_PATH_LAKKA_URL "http://nightly.builds.lakka.tv/.updater"
80 #else
81 #define FILE_PATH_LAKKA_URL "http://le.builds.lakka.tv"
82 #endif
83 #define FILE_PATH_SHADERS_GLSL_ZIP "shaders_glsl.zip"
84 #define FILE_PATH_SHADERS_SLANG_ZIP "shaders_slang.zip"
85 #define FILE_PATH_SHADERS_CG_ZIP "shaders_cg.zip"
86 #define FILE_PATH_DATABASE_RDB_ZIP "database-rdb.zip"
87 #define FILE_PATH_OVERLAYS_ZIP "overlays.zip"
88 #define FILE_PATH_CORE_INFO_ZIP "info.zip"
89 #define FILE_PATH_CHEATS_ZIP "cheats.zip"
90 #define FILE_PATH_ASSETS_ZIP "assets.zip"
91 #define FILE_PATH_AUTOCONFIG_ZIP "autoconfig.zip"
92 #define FILE_PATH_CONTENT_FAVORITES "content_favorites.lpl"
93 #define FILE_PATH_CONTENT_HISTORY "content_history.lpl"
94 #define FILE_PATH_CONTENT_IMAGE_HISTORY "content_image_history.lpl"
95 #define FILE_PATH_CONTENT_MUSIC_HISTORY "content_music_history.lpl"
96 #define FILE_PATH_CONTENT_VIDEO_HISTORY "content_video_history.lpl"
97 #define FILE_PATH_CORE_OPTIONS_CONFIG "retroarch-core-options.cfg"
98 #define FILE_PATH_MAIN_CONFIG "retroarch.cfg"
99 #define FILE_PATH_SALAMANDER_CONFIG "retroarch-salamander.cfg"
100 #define FILE_PATH_BACKGROUND_IMAGE "bg.png"
101 #define FILE_PATH_TTF_FONT "font.ttf"
102 #define FILE_PATH_RUNTIME_EXTENSION ".lrtl"
103 #define FILE_PATH_DEFAULT_EVENT_LOG "retroarch.log"
104 #define FILE_PATH_EVENT_LOG_EXTENSION ".log"
105 #define FILE_PATH_DISK_CONTROL_INDEX_EXTENSION ".ldci"
106 #define FILE_PATH_CORE_BACKUP_EXTENSION ".lcbk"
107 #define FILE_PATH_CORE_BACKUP_EXTENSION_NO_DOT "lcbk"
108 #define FILE_PATH_LOCK_EXTENSION ".lck"
109 #define FILE_PATH_LOCK_EXTENSION_NO_DOT "lck"
110 #define FILE_PATH_BACKUP_EXTENSION ".bak"
111 #if defined(RARCH_MOBILE)
112 #define FILE_PATH_DEFAULT_OVERLAY "gamepads/neo-retropad/neo-retropad.cfg"
113 #endif
114 #define FILE_PATH_CORE_INFO_CACHE "core_info.cache"
115 #define FILE_PATH_CORE_INFO_CACHE_REFRESH "core_info.refresh"
116 
117 enum application_special_type
118 {
119    APPLICATION_SPECIAL_NONE = 0,
120    APPLICATION_SPECIAL_DIRECTORY_AUTOCONFIG,
121    APPLICATION_SPECIAL_DIRECTORY_CONFIG,
122    APPLICATION_SPECIAL_DIRECTORY_ASSETS_PKG,
123    APPLICATION_SPECIAL_DIRECTORY_ASSETS_PKG_AR_FONT,
124    APPLICATION_SPECIAL_DIRECTORY_ASSETS_PKG_CJK_FONT,
125    APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI,
126    APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT,
127    APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_ICONS,
128    APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB,
129    APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_BG,
130    APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS,
131    APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT,
132    APPLICATION_SPECIAL_DIRECTORY_ASSETS_OZONE,
133    APPLICATION_SPECIAL_DIRECTORY_ASSETS_OZONE_ICONS,
134    APPLICATION_SPECIAL_DIRECTORY_ASSETS_RGUI_FONT,
135    APPLICATION_SPECIAL_DIRECTORY_ASSETS_SOUNDS,
136    APPLICATION_SPECIAL_DIRECTORY_ASSETS_SYSICONS,
137    APPLICATION_SPECIAL_DIRECTORY_THUMBNAILS_CHEEVOS_BADGES,
138    APPLICATION_SPECIAL_DIRECTORY_THUMBNAILS_DISCORD_AVATARS
139 };
140 
141 bool fill_pathname_application_data(char *s, size_t len);
142 
143 void fill_pathname_application_special(char *s, size_t len, enum application_special_type type);
144 
145 RETRO_END_DECLS
146 
147 #endif
148