RetroArch
core_info.h
Go to the documentation of this file.
1 /* RetroArch - A frontend for libretro.
2  * Copyright (C) 2010-2014 - Hans-Kristian Arntzen
3  * Copyright (C) 2011-2017 - Daniel De Matteis
4  * Copyright (C) 2016-2017 - 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 CORE_INFO_H_
19 #define CORE_INFO_H_
20 
21 #include <stddef.h>
22 
23 #include <lists/string_list.h>
24 #include <retro_common_api.h>
25 
27 
28 typedef struct
29 {
30  char *path;
31  char *desc;
32  /* Set missing once to avoid opening
33  * the same file several times. */
34  bool missing;
35  bool optional;
37 
38 typedef struct
39 {
43  char *path;
44  void *config_data;
45  char *display_name;
47  char *core_name;
49  char *systemname;
50  char *system_id;
52  char *authors;
53  char *permissions;
54  char *licenses;
55  char *categories;
56  char *databases;
57  char *notes;
66  void *userdata;
67 } core_info_t;
68 
69 typedef struct
70 {
72  size_t count;
73  char *all_ext;
75 
76 typedef struct core_info_ctx_firmware
77 {
78  const char *path;
79  struct
80  {
81  const char *system;
82  } directory;
84 
85 typedef struct core_info_ctx_find
86 {
88  const char *path;
90 
92 
93 /* Non-reentrant, does not allocate. Returns pointer to internal state. */
95  const char *path, const core_info_t **infos, size_t *num_infos);
96 
98  const char *path, char *s, size_t len);
99 
100 bool core_info_get_display_name(const char *path, char *s, size_t len);
101 
102 void core_info_get_name(const char *path, char *s, size_t len,
103  const char *path_info, const char *dir_cores,
104  const char *exts, bool show_hidden_files);
105 
106 core_info_t *core_info_get(core_info_list_t *list, size_t i);
107 
108 void core_info_free_current_core(void);
109 
110 bool core_info_init_current_core(void);
111 
113 
114 void core_info_deinit_list(void);
115 
116 bool core_info_init_list(const char *path_info, const char *dir_cores,
117  const char *exts, bool show_hidden_files);
118 
120 
122  bool *set_missing_bios);
123 
124 bool core_info_find(core_info_ctx_find_t *info, const char *name);
125 
127 
128 bool core_info_database_supports_content_path(const char *database_path, const char *path);
129 
130 bool core_info_database_match_archive_member(const char *database_path);
131 
132 bool core_info_unsupported_content_path(const char *path);
133 
135 
136 #endif /* CORE_INFO_H_ */
bool core_info_database_match_archive_member(const char *database_path)
Definition: core_info.c:874
bool core_info_unsupported_content_path(const char *path)
GLuint const GLchar * name
Definition: glext.h:6671
Definition: core_info.h:69
struct core_info_ctx_firmware::@24 directory
struct string_list * licenses_list
Definition: core_info.h:64
#define RETRO_BEGIN_DECLS
Definition: retro_common_api.h:41
struct core_info_ctx_firmware core_info_ctx_firmware_t
struct string_list * supported_extensions_list
Definition: core_info.h:61
Definition: libretro.h:2275
GLsizei const GLchar ** path
Definition: glext.h:7901
GLenum GLsizei len
Definition: glext.h:7389
Definition: core_info.h:38
struct core_info_ctx_find core_info_ctx_find_t
bool core_info_get_display_name(const char *path, char *s, size_t len)
Definition: core_info.c:980
char * licenses
Definition: core_info.h:54
char * categories
Definition: core_info.h:55
char * databases
Definition: core_info.h:56
bool core_info_database_supports_content_path(const char *database_path, const char *path)
Definition: core_info.c:914
bool supports_no_game
Definition: core_info.h:40
void * config_data
Definition: core_info.h:44
char * supported_extensions
Definition: core_info.h:51
GLdouble s
Definition: glext.h:6390
const char * path
Definition: core_info.h:78
bool core_info_init_current_core(void)
Definition: core_info.c:655
bool core_info_init_list(const char *path_info, const char *dir_cores, const char *exts, bool show_hidden_files)
Definition: core_info.c:678
char * all_ext
Definition: core_info.h:73
char * display_name
Definition: core_info.h:45
bool core_info_list_get_display_name(core_info_list_t *list, const char *path, char *s, size_t len)
Definition: core_info.c:955
Definition: core_info.h:76
void core_info_free_current_core(void)
Definition: core_info.c:648
char * notes
Definition: core_info.h:57
char * desc
Definition: core_info.h:31
bool missing
Definition: core_info.h:34
const char * system
Definition: core_info.h:81
bool core_info_get_current_core(core_info_t **core)
Definition: core_info.c:663
size_t firmware_count
Definition: core_info.h:42
char * system_id
Definition: core_info.h:50
bool optional
Definition: core_info.h:35
const char * path
Definition: core_info.h:88
struct string_list * authors_list
Definition: core_info.h:62
char * display_version
Definition: core_info.h:46
struct string_list * permissions_list
Definition: core_info.h:63
bool core_info_find(core_info_ctx_find_t *info, const char *name)
Definition: core_info.c:730
bool core_info_get_list(core_info_list_t **core)
Definition: core_info.c:689
struct string_list * note_list
Definition: core_info.h:60
#define RETRO_END_DECLS
Definition: retro_common_api.h:42
bool core_info_list_update_missing_firmware(core_info_ctx_firmware_t *info, bool *set_missing_bios)
Definition: core_info.c:697
static bool show_hidden_files
Definition: config.def.h:261
char * systemname
Definition: core_info.h:49
core_info_t * inf
Definition: core_info.h:87
void core_info_get_name(const char *path, char *s, size_t len, const char *path_info, const char *dir_cores, const char *exts, bool show_hidden_files)
Definition: core_info.c:798
Unknown compiler Device disconnected from port File already exists Saving to backup buffer Got connection No arguments supplied and no menu displaying help Waiting for client Enable horizontal animation for the menu This will have a performance hit Hard synchronize the CPU and GPU Reduces latency at the cost of performance Audio volume Auto loading savestate from Connecting to netplay host Connection slot Password Username Accounts List Endpoint Achievements Scan Content Import content Assets Audio Device Audio DSP Plugin Audio Filter Audio Audio Maximum Timing Skew Audio Output Dynamic Audio Rate Control Audio Audio Volume SaveRAM Autosave Interval Load Remap Files Automatically Back Info Scroll Down Start Toggle Menu Confirm OK Quit Defaults Toggle Menu Bluetooth Enable Cache Camera Driver Apply Cheat Changes Cheat File Save Cheat File As Description Locked Locked Test Unofficial Achievements Unlocked Config Configuration Collections Content Quick Menu Downloads Core Counters Core Information Categories Core name Permissions System manufacturer Controls Options Start a Core Automatically Buildbot Cores URL Updater CPU Cursor Custom Ratio Database Selection Favorites< Default > Directory not found Disk Cycle Tray Status Disk Index Don t care Download Core DPI Override Enable Driver Dynamic Wallpaper Enable Achievements Menu entry normal color Maximum Run Speed Limit Maximum Run Speed Frontend Counters Create game options file help Changing Virtual Gamepad Overlay Help Scanning For Content History List Enable Horizontal Menu Information Analog To Digital Type Left Analog X Left analog Left Analog Y Left analog Right Analog X Right analog Right Analog Y Right analog Gun Trigger Gun Aux A Gun Aux C Gun Select Gun D pad Down Gun D pad Right Analog Stick Deadzone Bind All Bind Timeout Hide Unbound Core Input Descriptors Device Index Input Driver Input Hotkey Binds A B Down D pad L3 L Left D pad R3 R Right D pad Start button X Y Mouse Mouse Mouse Wheel Down Wheel Right Max Users Cheat index Cheat toggle Disk next Enable hotkeys Fast forward toggle Fullscreen toggle Load state Movie record toggle On screen keyboard toggle Pause toggle Reset game Save state Next shader Slow motion Savestate slot Volume Hide Overlay In Menu Early Normal Input Remapping Save Autoconfig Small Keyboard Enable Turbo enable Input User u Binds Input Autoconfig Services Dutch Esperanto German Japanese Polish Russian Vietnamese Left Analog Core Info Linear Load Recent Load State Location Driver Logging Verbosity Database Settings Blue Dark Blue Shield Yellow Header Opacity Throttle Menu Framerate Menu Linear Filter Appearance Background opacity Multimedia Filter unknown extensions Nearest Netplay Check Frames Disconnect Connect to Netplay host Stop netplay host Netplay Client Enable Netplay settings Netplay TCP UDP Port Network Command Port Network Gamepad Network None No achievements to display No cores available No core options available No history available No items No playlists No settings found OFF Online Onscreen Display Onscreen Notifications Optional Autoload Preferred Overlay Overlay Opacity Overlay Scale Use PAL60 Mode Pause when menu activated Performance Counters Playlist Touch Support Present Quit RetroArch BBFC Rating Co op supported Description Edge Magazine Issue Edge Magazine Review Enhancement Hardware Famitsu Magazine Rating Genre Name PEGI Rating Releasedate Month Rumble supported SHA1 TGDB Rating Recording Config Recording Record Driver Save Output Recording as Remap File Save Core Remap File Required Restart RetroArch Resume RetroPad Achievements Rewind Granularity File Browser Display Start Screen Run Savefile Auto Load State Savestate Save Core Overrides Save New Configuration Saving Scan File Screenshot Search Settings Shader Shaders Simple Snow Show Advanced Settings Shutdown Sort Saves In Folders SSH Enable Start Remote RetroPad State Slot stdin Commands Suspend Screensaver System BIOS support Build date Cocoa support CoreText support Display metric DPI Display metric DirectSound support Dynamic library support EGL support FFmpeg support STB TrueType support Frontend name Git version HLSL support KMS EGL support Libusb support Network Command interface support OpenAL support OpenGL support OpenVG support Overlay support Charged Discharging PulseAudio support BMP RetroRating level RoarAudio support RSound support SDL2 support SDL1 support Threading support Video4Linux2 support Vulkan support X11 support XVideo support Take Screenshot Thumbnails Thumbnails Updater Screenshots Display time date True UI Companion Start On Boot Unable to read compressed file Undo Save State Updater Update Joypad Profiles Update Cheats Update Databases Update Lakka Update Slang Shaders User Interface User Use Builtin Media Player Allow rotation Aspect Ratio Crop Disable Desktop Composition Video Driver Video Filter Enable Onscreen Notifications Onscreen Notification Size Force disable sRGB FBO Use Fullscreen Mode Use GPU Recording Hard GPU Sync Max swapchain images Onscreen Notification Y Position Use Post Filter Recording Estimated Screen Framerate Rotation Integer Scale Video Shader Preview Shader Parameters Save Shader Preset As Save Game Preset Bilinear Filtering Vertical Video Deflicker Custom Viewport Width Custom Viewport Y Pos Vertical Windowed Fullscreen Mode Window Height Wi Fi Menu Font Red Color Menu Font Blue Color Custom Monochrome Systematic Pixel Retrosystem Menu Color Theme Dark Electric Blue Legacy Red Plain Volcanic Red Menu Scale Factor Display History Tab Display Music Tab Display Video Tab Menu Icon Theme Shader Preset Enable or disable unofficial achievements and or beta features for testing purposes Change drivers for this system Change settings for the core Change settings for display keyboard overlay and onscreen notifications Change settings for the saving Change settings for the user interface Change your privacy settings Change settings for the playlists Scan contents and add to the database Enable or disable bluetooth Change default settings for configuration files Amount of cores that the CPU has Configure hotkey settings Adjusts settings for keyboard and mouse Enable or disable logging to the terminal Display core
Definition: msg_hash_eo.h:1757
char * system_manufacturer
Definition: core_info.h:48
void * userdata
Definition: core_info.h:66
char * core_name
Definition: core_info.h:47
Definition: core_info.h:28
size_t count
Definition: core_info.h:72
struct string_list * categories_list
Definition: core_info.h:58
char * permissions
Definition: core_info.h:53
core_info_firmware_t * firmware
Definition: core_info.h:65
struct string_list * databases_list
Definition: core_info.h:59
char * authors
Definition: core_info.h:52
void core_info_deinit_list(void)
Definition: core_info.c:671
Definition: core_info.h:85
void core_info_list_get_supported_cores(core_info_list_t *list, const char *path, const core_info_t **infos, size_t *num_infos)
Definition: core_info.c:753
bool database_match_archive_member
Definition: core_info.h:41
core_info_t * list
Definition: core_info.h:71
char * path
Definition: core_info.h:43
size_t core_info_list_num_info_files(core_info_list_t *list)
Definition: core_info.c:857
Definition: string_list.h:47
bool core_info_load(core_info_ctx_find_t *info)
Definition: core_info.c:708
char * path
Definition: core_info.h:30
core_info_t * core_info_get(core_info_list_t *list, size_t i)
Definition: core_info.c:740