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