1 // license:BSD-3-Clause
2 // copyright-holders:Vas Crabb
3 /**********************************************************************
4  * emufwd.h
5  *
6  * Forward declarations for MAME famework.
7  *
8  * Please place forward declarations here rather than littering them
9  * throughout headers in src/emu.  It makes it much easier to update
10  * them and remove obsolete ones.
11  **********************************************************************/
12 #ifndef MAME_EMU_EMUFWD_H
13 #define MAME_EMU_EMUFWD_H
14 
15 #pragma once
16 
17 #include <type_traits>
18 
19 
20 //----------------------------------
21 // 3rdparty
22 //----------------------------------
23 
24 // declared in expat.h
25 struct XML_ParserStruct;
26 
27 
28 
29 //----------------------------------
30 // osd
31 //----------------------------------
32 
33 // declared in modules/output/output_module.h
34 class output_module;
35 
36 // declared in osdepend.h
37 class osd_font;
38 class osd_interface;
39 
40 
41 
42 //----------------------------------
43 // lib/util
44 //----------------------------------
45 
46 // declared in aviio.h
47 class avi_file;
48 
49 // declared in chd.h
50 class chd_file;
51 
52 // declared in unzip.h
53 namespace util { class archive_file; }
54 
55 // declared in wavwrite.h
56 struct wav_file;
57 
58 // declared in xmlfile.h
59 namespace util { namespace xml { class data_node; } }
60 
61 
62 
63 //----------------------------------
64 // emu
65 //----------------------------------
66 
67 // declared in addrmap.h
68 class address_map;
69 class address_map_entry;
70 
71 // declared in bookkeeping.h
72 class bookkeeping_manager;
73 
74 // declared in config.h
75 enum class config_type;
76 class configuration_manager;
77 
78 // declared in crsshair.h
79 class crosshair_manager;
80 
81 // declared in debug/debugcmd.h
82 class debugger_commands;
83 
84 // declared in debug/debugcmd.h
85 class debugger_console;
86 
87 // declared in debug/debugcpu.h
88 class debugger_cpu;
89 class device_debug;
90 
91 // declared in debug/debugvw.h
92 class debug_view;
93 class debug_view_manager;
94 
95 // declared in debug/express.h
96 class parsed_expression;
97 class symbol_table;
98 
99 // declared in debug/points.h
100 class debug_breakpoint;
101 class debug_watchpoint;
102 class debug_registerpoint;
103 
104 // declared in debugger.h
105 class debugger_manager;
106 
107 // declared in devcb.h
108 class devcb_base;
109 template <typename Input, std::make_unsigned_t<Input> DefaultMask> class devcb_write;
110 
111 // declared in devfind.h
112 class finder_base;
113 template <class DeviceClass, bool Required> class device_finder;
114 
115 // declared in device.h
116 class device_interface;
117 class device_t;
118 
119 // declared in didisasm.h
120 class device_disasm_interface;
121 
122 // declared in diexec.h
123 class device_execute_interface;
124 
125 // declared in digfx.h
126 struct gfx_decode_entry;
127 
128 // declared in diimage.h
129 class device_image_interface;
130 
131 // declared in dimemory.h
132 class device_memory_interface;
133 
134 // declared in dipalette.h
135 class device_palette_interface;
136 
137 // declared in distate.h
138 class device_state_interface;
139 
140 // declared in drawgfx.h
141 class gfx_element;
142 
143 // declared in driver.h
144 class driver_device;
145 
146 // declared in emumem.h
147 class address_space;
148 class memory_bank;
149 class memory_block;
150 class memory_manager;
151 class memory_region;
152 class memory_share;
153 
154 // declared in emuopts.h
155 class emu_options;
156 
157 // declared in gamedrv.h
158 class game_driver;
159 
160 // declared in input.h
161 class input_manager;
162 
163 // declared in inputdev.h
164 class input_class;
165 class input_device;
166 class input_device_item;
167 
168 // declared in image.h
169 class image_manager;
170 
171 // declared in ioport.h
172 class analog_field;
173 struct input_device_default;
174 class ioport_field;
175 struct ioport_field_live;
176 class ioport_list;
177 class ioport_manager;
178 class ioport_port;
179 struct ioport_port_live;
180 
181 // declared in machine.h
182 class running_machine;
183 
184 // declared in mconfig.h
185 namespace emu { namespace detail { class machine_config_replace; } }
186 class machine_config;
187 
188 // declared in natkeyboard.h
189 class natural_keyboard;
190 
191 // declared in network.h
192 class network_manager;
193 
194 // declared in output.h
195 class output_manager;
196 
197 // declared in render.h
198 class layout_element;
199 class layout_view;
200 class render_container;
201 class render_manager;
202 class render_target;
203 class render_texture;
204 
205 // declared in rendfont.h
206 class render_font;
207 
208 // declared in romentry.h
209 class rom_entry;
210 
211 // declared in romload.h
212 class rom_load_manager;
213 
214 // declared in schedule.h
215 class device_scheduler;
216 class emu_timer;
217 
218 // declared in screen.h
219 class screen_device;
220 
221 // declared in softlist.h
222 class software_info;
223 class software_part;
224 
225 // declared in softlist_dev.h
226 class software_list_device;
227 class software_list_loader;
228 
229 // declared in sound.h
230 class sound_manager;
231 class sound_stream;
232 
233 // declared in speaker.h
234 class speaker_device;
235 
236 // declared in tilemap.h
237 class tilemap_device;
238 class tilemap_manager;
239 class tilemap_t;
240 
241 // declared in ui/uimain.h
242 class ui_manager;
243 
244 // declared in uiinput.h
245 class ui_input_manager;
246 
247 // declared in validity.h
248 class validity_checker;
249 
250 // declared in video.h
251 class video_manager;
252 
253 #endif // MAME_EMU_EMUFWD_H
254