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-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 _LIST_SPECIAL_H
19 #define _LIST_SPECIAL_H
20 
21 #include <stdint.h>
22 #include <stddef.h>
23 
24 #include <lists/string_list.h>
25 #include <retro_environment.h>
26 
27 RETRO_BEGIN_DECLS
28 
29 enum dir_list_type
30 {
31    DIR_LIST_NONE = 0,
32    DIR_LIST_CORES,
33    DIR_LIST_CORE_INFO,
34    DIR_LIST_DATABASES,
35    DIR_LIST_COLLECTIONS,
36    DIR_LIST_PLAIN,
37    DIR_LIST_SHADERS,
38    DIR_LIST_AUTOCONFIG,
39    DIR_LIST_RECURSIVE
40 };
41 
42 enum string_list_type
43 {
44    STRING_LIST_NONE = 0,
45    STRING_LIST_MENU_DRIVERS,
46    STRING_LIST_CAMERA_DRIVERS,
47    STRING_LIST_BLUETOOTH_DRIVERS,
48    STRING_LIST_WIFI_DRIVERS,
49    STRING_LIST_LOCATION_DRIVERS,
50    STRING_LIST_AUDIO_DRIVERS,
51    STRING_LIST_AUDIO_RESAMPLER_DRIVERS,
52    STRING_LIST_VIDEO_DRIVERS,
53    STRING_LIST_INPUT_DRIVERS,
54    STRING_LIST_INPUT_JOYPAD_DRIVERS,
55    STRING_LIST_INPUT_HID_DRIVERS,
56    STRING_LIST_RECORD_DRIVERS,
57 #ifdef HAVE_LAKKA
58    STRING_LIST_TIMEZONES,
59 #endif
60    STRING_LIST_MIDI_DRIVERS
61 };
62 
63 struct string_list *dir_list_new_special(const char *input_dir,
64       enum dir_list_type type, const char *filter,
65       bool show_hidden_files);
66 
67 struct string_list *string_list_new_special(enum string_list_type type,
68       void *data, unsigned *len, size_t *list_size);
69 
70 const char *char_list_new_special(enum string_list_type type, void *data);
71 
72 RETRO_END_DECLS
73 
74 #endif
75