1 /*  RetroArch - A frontend for libretro.
2  *  Copyright (C) 2011-2017 - Daniel De Matteis
3  *  Copyright (C) 2014-2017 - Jean-André Santoni
4  *  Copyright (C) 2016-2019 - Brad Parker
5  *  Copyright (C) 2018      - Alfredo Monclús
6  *  Copyright (C) 2018      - natinusala
7  *
8  *  RetroArch is free software: you can redistribute it and/or modify it under the terms
9  *  of the GNU General Public License as published by the Free Software Found-
10  *  ation, either version 3 of the License, or (at your option) any later version.
11  *
12  *  RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
13  *  without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
14  *  PURPOSE.  See the GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License along with RetroArch.
17  *  If not, see <http://www.gnu.org/licenses/>.
18  */
19 
20 #ifndef _OZONE_TEXTURE_H
21 #define _OZONE_TEXTURE_H
22 
23 #include "ozone.h"
24 
25 #include "../../menu_driver.h"
26 
27 enum OZONE_TEXTURE
28 {
29    OZONE_TEXTURE_RETROARCH = 0,
30    OZONE_TEXTURE_CURSOR_BORDER,
31 #if 0
32    OZONE_TEXTURE_DISCORD_OWN_AVATAR,
33 #endif
34    OZONE_TEXTURE_LAST
35 };
36 
37 enum OZONE_THEME_TEXTURES
38 {
39    OZONE_THEME_TEXTURE_SWITCH = 0,
40    OZONE_THEME_TEXTURE_CHECK,
41 
42    OZONE_THEME_TEXTURE_CURSOR_NO_BORDER,
43    OZONE_THEME_TEXTURE_CURSOR_STATIC,
44 
45    OZONE_THEME_TEXTURE_LAST
46 };
47 
48 enum OZONE_TAB_TEXTURES
49 {
50    OZONE_TAB_TEXTURE_MAIN_MENU = 0,
51    OZONE_TAB_TEXTURE_SETTINGS,
52    OZONE_TAB_TEXTURE_HISTORY,
53    OZONE_TAB_TEXTURE_FAVORITES,
54    OZONE_TAB_TEXTURE_MUSIC,
55    OZONE_TAB_TEXTURE_VIDEO,
56    OZONE_TAB_TEXTURE_IMAGE,
57    OZONE_TAB_TEXTURE_NETWORK,
58    OZONE_TAB_TEXTURE_SCAN_CONTENT,
59 
60    OZONE_TAB_TEXTURE_LAST
61 };
62 
63 enum
64 {
65    OZONE_ENTRIES_ICONS_TEXTURE_MAIN_MENU = 0,
66    OZONE_ENTRIES_ICONS_TEXTURE_SETTINGS,
67    OZONE_ENTRIES_ICONS_TEXTURE_HISTORY,
68    OZONE_ENTRIES_ICONS_TEXTURE_FAVORITES,
69    OZONE_ENTRIES_ICONS_TEXTURE_MUSICS,
70 #if defined(HAVE_FFMPEG) || defined(HAVE_MPV)
71    OZONE_ENTRIES_ICONS_TEXTURE_MOVIES,
72 #endif
73 #ifdef HAVE_NETWORKING
74    OZONE_ENTRIES_ICONS_TEXTURE_NETPLAY,
75    OZONE_ENTRIES_ICONS_TEXTURE_ROOM,
76    OZONE_ENTRIES_ICONS_TEXTURE_ROOM_LAN,
77    OZONE_ENTRIES_ICONS_TEXTURE_ROOM_RELAY,
78 #endif
79 #ifdef HAVE_IMAGEVIEWER
80    OZONE_ENTRIES_ICONS_TEXTURE_IMAGES,
81 #endif
82    OZONE_ENTRIES_ICONS_TEXTURE_SETTING,
83    OZONE_ENTRIES_ICONS_TEXTURE_SUBSETTING,
84    OZONE_ENTRIES_ICONS_TEXTURE_ARROW,
85    OZONE_ENTRIES_ICONS_TEXTURE_RUN,
86    OZONE_ENTRIES_ICONS_TEXTURE_CLOSE,
87    OZONE_ENTRIES_ICONS_TEXTURE_RESUME,
88    OZONE_ENTRIES_ICONS_TEXTURE_SAVESTATE,
89    OZONE_ENTRIES_ICONS_TEXTURE_LOADSTATE,
90    OZONE_ENTRIES_ICONS_TEXTURE_UNDO,
91    OZONE_ENTRIES_ICONS_TEXTURE_CORE_INFO,
92    OZONE_ENTRIES_ICONS_TEXTURE_BLUETOOTH,
93    OZONE_ENTRIES_ICONS_TEXTURE_WIFI,
94    OZONE_ENTRIES_ICONS_TEXTURE_CORE_OPTIONS,
95    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_REMAPPING_OPTIONS,
96    OZONE_ENTRIES_ICONS_TEXTURE_CHEAT_OPTIONS,
97    OZONE_ENTRIES_ICONS_TEXTURE_DISK_OPTIONS,
98    OZONE_ENTRIES_ICONS_TEXTURE_SHADER_OPTIONS,
99    OZONE_ENTRIES_ICONS_TEXTURE_ACHIEVEMENT_LIST,
100    OZONE_ENTRIES_ICONS_TEXTURE_SCREENSHOT,
101    OZONE_ENTRIES_ICONS_TEXTURE_RELOAD,
102    OZONE_ENTRIES_ICONS_TEXTURE_RENAME,
103    OZONE_ENTRIES_ICONS_TEXTURE_FILE,
104    OZONE_ENTRIES_ICONS_TEXTURE_FOLDER,
105    OZONE_ENTRIES_ICONS_TEXTURE_ZIP,
106    OZONE_ENTRIES_ICONS_TEXTURE_FAVORITE,
107    OZONE_ENTRIES_ICONS_TEXTURE_ADD_FAVORITE,
108    OZONE_ENTRIES_ICONS_TEXTURE_MUSIC,
109    OZONE_ENTRIES_ICONS_TEXTURE_IMAGE,
110    OZONE_ENTRIES_ICONS_TEXTURE_MOVIE,
111    OZONE_ENTRIES_ICONS_TEXTURE_CORE,
112    OZONE_ENTRIES_ICONS_TEXTURE_RDB,
113    OZONE_ENTRIES_ICONS_TEXTURE_CURSOR,
114    OZONE_ENTRIES_ICONS_TEXTURE_SWITCH_ON,
115    OZONE_ENTRIES_ICONS_TEXTURE_SWITCH_OFF,
116    OZONE_ENTRIES_ICONS_TEXTURE_CLOCK,
117    OZONE_ENTRIES_ICONS_TEXTURE_BATTERY_FULL,
118    OZONE_ENTRIES_ICONS_TEXTURE_BATTERY_CHARGING,
119    OZONE_ENTRIES_ICONS_TEXTURE_BATTERY_80,
120    OZONE_ENTRIES_ICONS_TEXTURE_BATTERY_60,
121    OZONE_ENTRIES_ICONS_TEXTURE_BATTERY_40,
122    OZONE_ENTRIES_ICONS_TEXTURE_BATTERY_20,
123    OZONE_ENTRIES_ICONS_TEXTURE_POINTER,
124    OZONE_ENTRIES_ICONS_TEXTURE_ADD,
125    OZONE_ENTRIES_ICONS_TEXTURE_DISC,
126    OZONE_ENTRIES_ICONS_TEXTURE_KEY,
127    OZONE_ENTRIES_ICONS_TEXTURE_KEY_HOVER,
128    OZONE_ENTRIES_ICONS_TEXTURE_DIALOG_SLICE,
129    OZONE_ENTRIES_ICONS_TEXTURE_ACHIEVEMENTS,
130    OZONE_ENTRIES_ICONS_TEXTURE_AUDIO,
131    OZONE_ENTRIES_ICONS_TEXTURE_EXIT,
132    OZONE_ENTRIES_ICONS_TEXTURE_FRAMESKIP,
133    OZONE_ENTRIES_ICONS_TEXTURE_INFO,
134    OZONE_ENTRIES_ICONS_TEXTURE_HELP,
135    OZONE_ENTRIES_ICONS_TEXTURE_NETWORK,
136    OZONE_ENTRIES_ICONS_TEXTURE_POWER,
137    OZONE_ENTRIES_ICONS_TEXTURE_SAVING,
138    OZONE_ENTRIES_ICONS_TEXTURE_UPDATER,
139    OZONE_ENTRIES_ICONS_TEXTURE_VIDEO,
140    OZONE_ENTRIES_ICONS_TEXTURE_RECORD,
141    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_SETTINGS,
142    OZONE_ENTRIES_ICONS_TEXTURE_MIXER,
143    OZONE_ENTRIES_ICONS_TEXTURE_LOG,
144    OZONE_ENTRIES_ICONS_TEXTURE_OSD,
145    OZONE_ENTRIES_ICONS_TEXTURE_UI,
146    OZONE_ENTRIES_ICONS_TEXTURE_USER,
147    OZONE_ENTRIES_ICONS_TEXTURE_PRIVACY,
148    OZONE_ENTRIES_ICONS_TEXTURE_LATENCY,
149    OZONE_ENTRIES_ICONS_TEXTURE_DRIVERS,
150    OZONE_ENTRIES_ICONS_TEXTURE_PLAYLIST,
151    OZONE_ENTRIES_ICONS_TEXTURE_QUICKMENU,
152    OZONE_ENTRIES_ICONS_TEXTURE_REWIND,
153    OZONE_ENTRIES_ICONS_TEXTURE_OVERLAY,
154    OZONE_ENTRIES_ICONS_TEXTURE_OVERRIDE,
155    OZONE_ENTRIES_ICONS_TEXTURE_NOTIFICATIONS,
156    OZONE_ENTRIES_ICONS_TEXTURE_STREAM,
157    OZONE_ENTRIES_ICONS_TEXTURE_SHUTDOWN,
158    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_U,
159    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_D,
160    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_L,
161    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_DPAD_R,
162    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_U,
163    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_D,
164    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_L,
165    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_R,
166    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_STCK_P,
167    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_SELECT,
168    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_START,
169    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_U,
170    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_D,
171    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_L,
172    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BTN_R,
173    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_LB,
174    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_RB,
175    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_LT,
176    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_RT,
177    OZONE_ENTRIES_ICONS_TEXTURE_CHECKMARK,
178    OZONE_ENTRIES_ICONS_TEXTURE_MENU_ADD,
179    OZONE_ENTRIES_ICONS_TEXTURE_BRIGHTNESS,
180    OZONE_ENTRIES_ICONS_TEXTURE_PAUSE,
181    OZONE_ENTRIES_ICONS_TEXTURE_MENU_APPLY_TOGGLE,
182    OZONE_ENTRIES_ICONS_TEXTURE_MENU_APPLY_COG,
183    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_ADC,
184    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_BIND_ALL,
185    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_MOUSE,
186    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_LGUN,
187    OZONE_ENTRIES_ICONS_TEXTURE_INPUT_TURBO,
188    OZONE_ENTRIES_ICONS_TEXTURE_LAST
189 };
190 
191 const char *ozone_entries_icon_texture_path(unsigned id);
192 
193 uintptr_t ozone_entries_icon_get_texture(ozone_handle_t *ozone,
194       enum msg_hash_enums enum_idx, unsigned type, bool active);
195 
196 bool ozone_reset_theme_textures(ozone_handle_t *ozone);
197 void ozone_unload_theme_textures(ozone_handle_t *ozone);
198 
199 #endif
200