2016-05-01 13:07:45 +00:00
|
|
|
/* RetroArch - A frontend for libretro.
|
|
|
|
* Copyright (C) 2010-2014 - Hans-Kristian Arntzen
|
|
|
|
* Copyright (C) 2011-2016 - Daniel De Matteis
|
2017-11-23 11:58:19 +00:00
|
|
|
*
|
2016-05-01 13:07:45 +00: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 12:45:29 +00:00
|
|
|
#include <retro_common_api.h>
|
2017-12-30 12:35:47 +00:00
|
|
|
#include <retro_environment.h>
|
|
|
|
|
|
|
|
RETRO_BEGIN_DECLS
|
2016-05-01 13:07:45 +00:00
|
|
|
|
2016-06-20 03:11:01 +00:00
|
|
|
enum file_path_enum
|
|
|
|
{
|
|
|
|
FILE_PATH_UNKNOWN = 0,
|
2016-07-23 02:36:22 +00:00
|
|
|
FILE_PATH_CONTENT_BASENAME,
|
2016-06-27 05:52:48 +00:00
|
|
|
FILE_PATH_PROGRAM_NAME,
|
2016-06-30 04:07:44 +00:00
|
|
|
FILE_PATH_DETECT,
|
2016-06-28 09:10:30 +00:00
|
|
|
FILE_PATH_NUL,
|
2016-06-30 03:19:25 +00:00
|
|
|
FILE_PATH_LUTRO_PLAYLIST,
|
2016-06-28 06:42:50 +00:00
|
|
|
FILE_PATH_LOG_WARN,
|
|
|
|
FILE_PATH_LOG_ERROR,
|
|
|
|
FILE_PATH_LOG_INFO,
|
2016-06-20 03:20:14 +00:00
|
|
|
FILE_PATH_CONTENT_HISTORY,
|
2017-08-12 15:10:14 +00:00
|
|
|
FILE_PATH_CONTENT_FAVORITES,
|
2016-07-30 20:32:52 +00:00
|
|
|
FILE_PATH_CONTENT_MUSIC_HISTORY,
|
|
|
|
FILE_PATH_CONTENT_VIDEO_HISTORY,
|
|
|
|
FILE_PATH_CONTENT_IMAGE_HISTORY,
|
2016-06-27 05:47:15 +00:00
|
|
|
FILE_PATH_BACKGROUND_IMAGE,
|
|
|
|
FILE_PATH_TTF_FONT,
|
2016-06-20 03:29:53 +00:00
|
|
|
FILE_PATH_MAIN_CONFIG,
|
2016-06-20 19:03:54 +00:00
|
|
|
FILE_PATH_CORE_OPTIONS_CONFIG,
|
|
|
|
FILE_PATH_ASSETS_ZIP,
|
|
|
|
FILE_PATH_AUTOCONFIG_ZIP,
|
|
|
|
FILE_PATH_CORE_INFO_ZIP,
|
|
|
|
FILE_PATH_OVERLAYS_ZIP,
|
|
|
|
FILE_PATH_DATABASE_RDB_ZIP,
|
2016-09-06 03:49:31 +00:00
|
|
|
FILE_PATH_SHADERS_SLANG_ZIP,
|
2016-06-20 19:03:54 +00:00
|
|
|
FILE_PATH_SHADERS_GLSL_ZIP,
|
|
|
|
FILE_PATH_SHADERS_CG_ZIP,
|
|
|
|
FILE_PATH_CHEATS_ZIP,
|
|
|
|
FILE_PATH_LAKKA_URL,
|
|
|
|
FILE_PATH_CORE_THUMBNAILS_URL,
|
2016-06-20 21:39:40 +00:00
|
|
|
FILE_PATH_INDEX_DIRS_URL,
|
2017-01-19 05:52:53 +00:00
|
|
|
FILE_PATH_NETPLAY_ROOM_LIST_URL,
|
2016-06-20 19:03:54 +00:00
|
|
|
FILE_PATH_INDEX_URL,
|
2016-06-26 07:56:55 +00:00
|
|
|
FILE_PATH_INDEX_EXTENDED_URL,
|
2016-07-01 09:16:56 +00:00
|
|
|
FILE_PATH_CGP_EXTENSION,
|
|
|
|
FILE_PATH_GLSLP_EXTENSION,
|
|
|
|
FILE_PATH_SLANGP_EXTENSION,
|
2016-06-26 07:56:55 +00:00
|
|
|
FILE_PATH_SRM_EXTENSION,
|
2016-07-01 15:04:11 +00:00
|
|
|
FILE_PATH_PNG_EXTENSION,
|
2016-07-23 09:28:24 +00:00
|
|
|
FILE_PATH_BMP_EXTENSION,
|
|
|
|
FILE_PATH_TGA_EXTENSION,
|
|
|
|
FILE_PATH_JPEG_EXTENSION,
|
|
|
|
FILE_PATH_JPG_EXTENSION,
|
2016-06-27 23:10:58 +00:00
|
|
|
FILE_PATH_UPS_EXTENSION,
|
2016-06-29 16:45:12 +00:00
|
|
|
FILE_PATH_OPT_EXTENSION,
|
2016-06-27 23:10:58 +00:00
|
|
|
FILE_PATH_IPS_EXTENSION,
|
|
|
|
FILE_PATH_BPS_EXTENSION,
|
2016-06-26 07:56:55 +00:00
|
|
|
FILE_PATH_STATE_EXTENSION,
|
2016-06-26 08:15:25 +00:00
|
|
|
FILE_PATH_RTC_EXTENSION,
|
2016-06-29 16:43:00 +00:00
|
|
|
FILE_PATH_REMAP_EXTENSION,
|
2016-06-26 08:12:28 +00:00
|
|
|
FILE_PATH_CHT_EXTENSION,
|
2016-06-27 05:18:02 +00:00
|
|
|
FILE_PATH_LPL_EXTENSION,
|
2016-07-23 07:48:29 +00:00
|
|
|
FILE_PATH_LPL_EXTENSION_NO_DOT,
|
2016-06-28 09:22:44 +00:00
|
|
|
FILE_PATH_RDB_EXTENSION,
|
2016-07-01 03:59:36 +00:00
|
|
|
FILE_PATH_BSV_EXTENSION,
|
2016-07-01 05:07:06 +00:00
|
|
|
FILE_PATH_AUTO_EXTENSION,
|
2016-07-01 03:53:55 +00:00
|
|
|
FILE_PATH_ZIP_EXTENSION,
|
|
|
|
FILE_PATH_7Z_EXTENSION,
|
2017-05-13 23:40:52 +00:00
|
|
|
FILE_PATH_OGG_EXTENSION,
|
2018-04-28 12:18:04 +00:00
|
|
|
FILE_PATH_MP3_EXTENSION,
|
2018-04-28 09:17:37 +00:00
|
|
|
FILE_PATH_FLAC_EXTENSION,
|
2017-05-13 23:40:52 +00:00
|
|
|
FILE_PATH_WAV_EXTENSION,
|
2017-08-04 13:05:29 +00:00
|
|
|
FILE_PATH_MOD_EXTENSION,
|
|
|
|
FILE_PATH_S3M_EXTENSION,
|
|
|
|
FILE_PATH_XM_EXTENSION,
|
2016-06-27 06:19:39 +00:00
|
|
|
FILE_PATH_CONFIG_EXTENSION,
|
2016-06-27 05:18:02 +00:00
|
|
|
FILE_PATH_CORE_INFO_EXTENSION
|
2016-06-20 03:11:01 +00:00
|
|
|
};
|
|
|
|
|
2016-06-11 17:55:27 +00:00
|
|
|
enum application_special_type
|
2016-06-11 17:21:58 +00:00
|
|
|
{
|
2016-06-11 17:55:27 +00:00
|
|
|
APPLICATION_SPECIAL_NONE = 0,
|
2016-06-11 19:51:28 +00:00
|
|
|
APPLICATION_SPECIAL_DIRECTORY_AUTOCONFIG,
|
2016-06-11 19:55:55 +00:00
|
|
|
APPLICATION_SPECIAL_DIRECTORY_CONFIG,
|
2016-06-11 17:55:27 +00:00
|
|
|
APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI,
|
2016-06-11 17:57:45 +00:00
|
|
|
APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_FONT,
|
2016-06-11 17:55:27 +00:00
|
|
|
APPLICATION_SPECIAL_DIRECTORY_ASSETS_MATERIALUI_ICONS,
|
|
|
|
APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB,
|
2016-06-11 18:11:36 +00:00
|
|
|
APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_BG,
|
2016-06-11 17:57:45 +00:00
|
|
|
APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_ICONS,
|
2016-06-11 18:34:49 +00:00
|
|
|
APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_FONT,
|
2019-01-27 16:22:16 +00:00
|
|
|
APPLICATION_SPECIAL_DIRECTORY_ASSETS_OZONE,
|
|
|
|
APPLICATION_SPECIAL_DIRECTORY_ASSETS_SOUNDS,
|
2018-10-17 06:08:15 +00:00
|
|
|
APPLICATION_SPECIAL_DIRECTORY_THUMBNAILS_CHEEVOS_BADGES,
|
|
|
|
APPLICATION_SPECIAL_DIRECTORY_THUMBNAILS_DISCORD_AVATARS
|
2016-06-11 17:21:58 +00:00
|
|
|
};
|
|
|
|
|
2016-12-17 10:54:46 +00:00
|
|
|
/**
|
|
|
|
* fill_short_pathname_representation:
|
|
|
|
* @out_rep : output representation
|
|
|
|
* @in_path : input path
|
|
|
|
* @size : size of output representation
|
|
|
|
*
|
|
|
|
* Generates a short representation of path. It should only
|
|
|
|
* be used for displaying the result; the output representation is not
|
|
|
|
* binding in any meaningful way (for a normal path, this is the same as basename)
|
|
|
|
* In case of more complex URLs, this should cut everything except for
|
|
|
|
* the main image file.
|
|
|
|
*
|
|
|
|
* E.g.: "/path/to/game.img" -> game.img
|
|
|
|
* "/path/to/myarchive.7z#folder/to/game.img" -> game.img
|
|
|
|
*/
|
|
|
|
void fill_short_pathname_representation_wrapper(char* out_rep,
|
|
|
|
const char *in_path, size_t size);
|
|
|
|
|
2016-06-20 03:11:01 +00:00
|
|
|
const char *file_path_str(enum file_path_enum enum_idx);
|
|
|
|
|
2016-05-01 13:07:45 +00:00
|
|
|
bool fill_pathname_application_data(char *s, size_t len);
|
|
|
|
|
2016-06-11 17:55:27 +00:00
|
|
|
void fill_pathname_application_special(char *s, size_t len, enum application_special_type type);
|
2016-06-11 17:21:58 +00:00
|
|
|
|
2017-12-30 12:35:47 +00:00
|
|
|
RETRO_END_DECLS
|
|
|
|
|
2016-05-01 13:07:45 +00:00
|
|
|
#endif
|