summaryrefslogblamecommitdiffstatshomepage
path: root/src/frontend/mame/info.h
blob: 4ba53f885acab1f433b061635dec2dc7fbca0255 (plain) (tree)
1
2
3
4
5
6
7
8

                                





                                                                            






                                                                            
                        
 
 









                                                                            
 
                 
                                                       





                               
                                          
                                  
                                             
                                                                  
                                                                    
                                            
                                                       
                                                                                                                                      
                                                       
                                                           
                             

                                                                   


                                    
                                                                     
                              
 


                                                                     


                                                 
 

                                         
 
 
                        
// license:BSD-3-Clause
// copyright-holders:Aaron Giles
/***************************************************************************

    info.h

    Dumps the MAME internal data as an XML file.

***************************************************************************/

#pragma once

#ifndef __INFO_H__
#define __INFO_H__

class driver_enumerator;


//**************************************************************************
//  FUNCTION PROTOTYPES
//**************************************************************************

// helper class to putput
class info_xml_creator
{
public:
	// construction/destruction
	info_xml_creator(driver_enumerator &drivlist);

	// output
	void output(FILE *out, bool nodevices = false);

private:
	// internal helper
	void output_one();
	void output_sampleof();
	void output_bios();
	void output_rom(device_t &device);
	void output_device_roms();
	void output_sample(device_t &device);
	void output_chips(device_t &device, const char *root_tag);
	void output_display(device_t &device, const char *root_tag);
	void output_sound(device_t &device);
	void output_input(const ioport_list &portlist);
	void output_switches(const ioport_list &portlist, const char *root_tag, int type, const char *outertag, const char *innertag);
	void output_ports(const ioport_list &portlist);
	void output_adjusters(const ioport_list &portlist);
	void output_driver();
	void output_images(device_t &device, const char *root_tag);
	void output_slots(device_t &device, const char *root_tag);
	void output_software_list();
	void output_ramoptions();

	void output_one_device(device_t &device, const char *devtag);
	void output_devices();

	const char *get_merge_name(const hash_collection &romhashes);

	// internal state
	FILE *                  m_output;
	driver_enumerator &     m_drivlist;
	emu_options             m_lookup_options;

	static const char s_dtd_string[];
};


#endif  /* __INFO_H__ */