diff options
author | couriersud <couriersud@arcor.de> | 2015-01-14 01:05:38 +0100 |
---|---|---|
committer | couriersud <couriersud@arcor.de> | 2015-01-14 01:05:38 +0100 |
commit | 11af4265a0678b3e3835d12ff0852bd72592f439 (patch) | |
tree | be19aafe1f3dfd2dcad0f21cac2d9b7e6a93adaf | |
parent | 410c8e8a1b63a426ad2871270aeafc15720a2d68 (diff) |
OSD Updates:
- OSD can now use OPTION_COMMAND; added execute_command handler to
osd_interface.
- moved list_network_devices and list_midi_devices to OSD
-rw-r--r-- | src/emu/clifront.c | 92 | ||||
-rw-r--r-- | src/emu/clifront.h | 1 | ||||
-rw-r--r-- | src/emu/cliopts.c | 17 | ||||
-rw-r--r-- | src/emu/cliopts.h | 2 | ||||
-rw-r--r-- | src/emu/emu.mak | 2 | ||||
-rw-r--r-- | src/osd/modules/lib/osdobj_common.c | 38 | ||||
-rw-r--r-- | src/osd/modules/lib/osdobj_common.h | 24 | ||||
-rw-r--r-- | src/osd/osdepend.c | 2 | ||||
-rw-r--r-- | src/osd/osdepend.h | 9 |
9 files changed, 62 insertions, 125 deletions
diff --git a/src/emu/clifront.c b/src/emu/clifront.c index 934013cdb1f..5231d3079d3 100644 --- a/src/emu/clifront.c +++ b/src/emu/clifront.c @@ -18,6 +18,7 @@ #include "un7z.h" #include "validity.h" #include "sound/samples.h" +#include "cliopts.h" #include "clifront.h" #include "xmlfile.h" @@ -27,47 +28,6 @@ #include <ctype.h> -//************************************************************************** -// COMMAND-LINE OPTIONS -//************************************************************************** - -const options_entry cli_options::s_option_entries[] = -{ - /* core commands */ - { NULL, NULL, OPTION_HEADER, "CORE COMMANDS" }, - { CLICOMMAND_HELP ";h;?", "0", OPTION_COMMAND, "show help message" }, - { CLICOMMAND_VALIDATE ";valid", "0", OPTION_COMMAND, "perform driver validation on all game drivers" }, - - /* configuration commands */ - { NULL, NULL, OPTION_HEADER, "CONFIGURATION COMMANDS" }, - { CLICOMMAND_CREATECONFIG ";cc", "0", OPTION_COMMAND, "create the default configuration file" }, - { CLICOMMAND_SHOWCONFIG ";sc", "0", OPTION_COMMAND, "display running parameters" }, - { CLICOMMAND_SHOWUSAGE ";su", "0", OPTION_COMMAND, "show this help" }, - - /* frontend commands */ - { NULL, NULL, OPTION_HEADER, "FRONTEND COMMANDS" }, - { CLICOMMAND_LISTXML ";lx", "0", OPTION_COMMAND, "all available info on driver in XML format" }, - { CLICOMMAND_LISTFULL ";ll", "0", OPTION_COMMAND, "short name, full name" }, - { CLICOMMAND_LISTSOURCE ";ls", "0", OPTION_COMMAND, "driver sourcefile" }, - { CLICOMMAND_LISTCLONES ";lc", "0", OPTION_COMMAND, "show clones" }, - { CLICOMMAND_LISTBROTHERS ";lb", "0", OPTION_COMMAND, "show \"brothers\", or other drivers from same sourcefile" }, - { CLICOMMAND_LISTCRC, "0", OPTION_COMMAND, "CRC-32s" }, - { CLICOMMAND_LISTROMS ";lr", "0", OPTION_COMMAND, "list required roms for a driver" }, - { CLICOMMAND_LISTSAMPLES, "0", OPTION_COMMAND, "list optional samples for a driver" }, - { CLICOMMAND_VERIFYROMS, "0", OPTION_COMMAND, "report romsets that have problems" }, - { CLICOMMAND_VERIFYSAMPLES, "0", OPTION_COMMAND, "report samplesets that have problems" }, - { CLICOMMAND_ROMIDENT, "0", OPTION_COMMAND, "compare files with known MAME roms" }, - { CLICOMMAND_LISTDEVICES ";ld", "0", OPTION_COMMAND, "list available devices" }, - { CLICOMMAND_LISTSLOTS ";lslot", "0", OPTION_COMMAND, "list available slots and slot devices" }, - { CLICOMMAND_LISTMEDIA ";lm", "0", OPTION_COMMAND, "list available media for the system" }, - { CLICOMMAND_LISTSOFTWARE ";lsoft", "0", OPTION_COMMAND, "list known software for the system" }, - { CLICOMMAND_VERIFYSOFTWARE ";vsoft", "0", OPTION_COMMAND, "verify known software for the system" }, - { CLICOMMAND_GETSOFTLIST ";glist", "0", OPTION_COMMAND, "retrieve software list by name" }, - { CLICOMMAND_VERIFYSOFTLIST ";vlist", "0", OPTION_COMMAND, "verify software list by name" }, - { CLICOMMAND_LIST_MIDI_DEVICES ";mlist", "0", OPTION_COMMAND, "list available MIDI I/O devices" }, - { CLICOMMAND_LIST_NETWORK_ADAPTERS ";nlist", "0", OPTION_COMMAND, "list available network adapters" }, - { NULL } -}; // media_identifier class identifies media by hash via a search in // the driver database @@ -98,23 +58,6 @@ private: }; - -//************************************************************************** -// CLI OPTIONS -//************************************************************************** - -//------------------------------------------------- -// cli_options - constructor -//------------------------------------------------- - -cli_options::cli_options() -: emu_options() -{ - add_entries(cli_options::s_option_entries); -} - - - //************************************************************************** // CLI FRONTEND //************************************************************************** @@ -805,28 +748,6 @@ void cli_frontend::listmedia(const char *gamename) } //------------------------------------------------- -// listmididevices - output the list of MIDI devices -// available in the current system to be used -//------------------------------------------------- - -void cli_frontend::listmididevices(const char *gamename) -{ - m_osd.list_midi_devices(); -} - - -//------------------------------------------------- -// listnetworkadapters - output the list of network -// adapters available in the current system to be used -//------------------------------------------------- - -void cli_frontend::listnetworkadapters(const char *gamename) -{ - m_osd.list_network_adapters(); -} - - -//------------------------------------------------- // verifyroms - verify the ROM sets of one or // more games //------------------------------------------------- @@ -1679,12 +1600,10 @@ void cli_frontend::execute_commands(const char *exename) { CLICOMMAND_VERIFYSAMPLES, &cli_frontend::verifysamples }, { CLICOMMAND_LISTMEDIA, &cli_frontend::listmedia }, { CLICOMMAND_LISTSOFTWARE, &cli_frontend::listsoftware }, - { CLICOMMAND_VERIFYSOFTWARE, &cli_frontend::verifysoftware }, + { CLICOMMAND_VERIFYSOFTWARE,&cli_frontend::verifysoftware }, { CLICOMMAND_ROMIDENT, &cli_frontend::romident }, { CLICOMMAND_GETSOFTLIST, &cli_frontend::getsoftlist }, - { CLICOMMAND_VERIFYSOFTLIST, &cli_frontend::verifysoftlist }, - { CLICOMMAND_LIST_MIDI_DEVICES, &cli_frontend::listmididevices }, - { CLICOMMAND_LIST_NETWORK_ADAPTERS, &cli_frontend::listnetworkadapters }, + { CLICOMMAND_VERIFYSOFTLIST,&cli_frontend::verifysoftlist }, }; // find the command @@ -1697,8 +1616,9 @@ void cli_frontend::execute_commands(const char *exename) return; } - // if we get here, we don't know what has been requested - throw emu_fatalerror(MAMERR_INVALID_CONFIG, "Unknown command '%s' specified", m_options.command()); + if (!m_osd.execute_command(m_options.command())) + // if we get here, we don't know what has been requested + throw emu_fatalerror(MAMERR_INVALID_CONFIG, "Unknown command '%s' specified", m_options.command()); } diff --git a/src/emu/clifront.h b/src/emu/clifront.h index 6c5ade6adc1..81655e60a85 100644 --- a/src/emu/clifront.h +++ b/src/emu/clifront.h @@ -13,6 +13,7 @@ #ifndef __CLIFRONT_H__ #define __CLIFRONT_H__ +#include "emu.h" #include "cliopts.h" #include "osdepend.h" diff --git a/src/emu/cliopts.c b/src/emu/cliopts.c index 9195dfe0786..3264749123b 100644 --- a/src/emu/cliopts.c +++ b/src/emu/cliopts.c @@ -7,6 +7,7 @@ ***************************************************************************/ #include "cliopts.h" +#include "clifront.h" //************************************************************************** // COMMAND-LINE OPTIONS @@ -45,8 +46,20 @@ const options_entry cli_options::s_option_entries[] = { CLICOMMAND_VERIFYSOFTWARE ";vsoft", "0", OPTION_COMMAND, "verify known software for the system" }, { CLICOMMAND_GETSOFTLIST ";glist", "0", OPTION_COMMAND, "retrieve software list by name" }, { CLICOMMAND_VERIFYSOFTLIST ";vlist", "0", OPTION_COMMAND, "verify software list by name" }, - { CLICOMMAND_LIST_MIDI_DEVICES ";mlist", "0", OPTION_COMMAND, "list available MIDI I/O devices" }, - { CLICOMMAND_LIST_NETWORK_ADAPTERS ";nlist", "0", OPTION_COMMAND, "list available network adapters" }, { NULL } }; +//************************************************************************** +// CLI OPTIONS +//************************************************************************** + +//------------------------------------------------- +// cli_options - constructor +//------------------------------------------------- + +cli_options::cli_options() +: emu_options() +{ + add_entries(cli_options::s_option_entries); +} + diff --git a/src/emu/cliopts.h b/src/emu/cliopts.h index 75354729110..ce0cb7a9c58 100644 --- a/src/emu/cliopts.h +++ b/src/emu/cliopts.h @@ -47,8 +47,6 @@ #define CLICOMMAND_VERIFYSOFTWARE "verifysoftware" #define CLICOMMAND_GETSOFTLIST "getsoftlist" #define CLICOMMAND_VERIFYSOFTLIST "verifysoftlist" -#define CLICOMMAND_LIST_MIDI_DEVICES "listmidi" -#define CLICOMMAND_LIST_NETWORK_ADAPTERS "listnetwork" //************************************************************************** diff --git a/src/emu/emu.mak b/src/emu/emu.mak index 1d7ee55c4aa..37c0631fb44 100644 --- a/src/emu/emu.mak +++ b/src/emu/emu.mak @@ -55,6 +55,7 @@ EMUOBJS = \ $(EMUOBJ)/audit.o \ $(EMUOBJ)/cheat.o \ $(EMUOBJ)/clifront.o \ + $(EMUOBJ)/cliopts.o \ $(EMUOBJ)/config.o \ $(EMUOBJ)/crsshair.o \ $(EMUOBJ)/debugger.o \ @@ -145,7 +146,6 @@ EMUOBJS = \ $(EMUOBJ)/profiler.o \ $(EMUOBJ)/webengine.o \ $(OSDOBJ)/osdcore.o \ - $(OSDOBJ)/osdepend.o \ $(OSDOBJ)/osdnet.o \ $(OSDOBJ)/modules/sound/none.o \ $(OSDOBJ)/modules/debugger/none.o \ diff --git a/src/osd/modules/lib/osdobj_common.c b/src/osd/modules/lib/osdobj_common.c index 79c7eb15c2f..2395fa461df 100644 --- a/src/osd/modules/lib/osdobj_common.c +++ b/src/osd/modules/lib/osdobj_common.c @@ -20,6 +20,10 @@ extern bool g_print_verbose; const options_entry osd_options::s_option_entries[] = { + { NULL, NULL, OPTION_HEADER, "OSD CLI OPTIONS" }, + { OSDCOMMAND_LIST_MIDI_DEVICES ";mlist", "0", OPTION_COMMAND, "list available MIDI I/O devices" }, + { OSDCOMMAND_LIST_NETWORK_ADAPTERS ";nlist", "0", OPTION_COMMAND, "list available network adapters" }, + // debugging options { NULL, NULL, OPTION_HEADER, "OSD DEBUGGING OPTIONS" }, { OSDOPTION_DEBUGGER, OSDOPTVAL_AUTO, OPTION_STRING, "debugger used : " }, @@ -375,11 +379,36 @@ bool osd_common_t::font_get_bitmap(osd_font font, unicode_char chnum, bitmap_arg // get_slider_list - allocate and populate a // list of OS-dependent slider values. //------------------------------------------------- + void *osd_common_t::get_slider_list() { return NULL; } +//------------------------------------------------- +// execute_command - execute a command not yet +// handled by the core +//------------------------------------------------- + +bool osd_common_t::execute_command(const char *command) +{ + if (strcmp(command, OSDCOMMAND_LIST_NETWORK_ADAPTERS) == 0) + { + network_init(); + osd_list_network_adapters(); + network_exit(); + return true; + } + else if (strcmp(command, OSDCOMMAND_LIST_MIDI_DEVICES) == 0) + { + osd_list_midi_devices(); + return true; + } + + return false; + +} + void osd_common_t::init_subsystems() { if (!video_init()) @@ -537,15 +566,6 @@ bool osd_common_t::midi_init() return osd_midi_init(); } -//------------------------------------------------- -// list_midi_devices - list available midi devices -//------------------------------------------------- - -void osd_common_t::list_midi_devices(void) -{ - osd_list_midi_devices(); -} - void osd_common_t::midi_exit() { osd_midi_exit(); diff --git a/src/osd/modules/lib/osdobj_common.h b/src/osd/modules/lib/osdobj_common.h index 67c57a61c73..3a9ee4d9783 100644 --- a/src/osd/modules/lib/osdobj_common.h +++ b/src/osd/modules/lib/osdobj_common.h @@ -20,9 +20,8 @@ // Defines //============================================================ -/* FIXME: void cli_frontend::listnetworkadapters should be - * moved here. - */ +#define OSDCOMMAND_LIST_MIDI_DEVICES "listmidi" +#define OSDCOMMAND_LIST_NETWORK_ADAPTERS "listnetwork" #define OSDOPTION_DEBUGGER "debugger" #define OSDOPTION_WATCHDOG "watchdog" @@ -161,17 +160,8 @@ public: // video overridables virtual void *get_slider_list(); - // midi overridables - // FIXME: this should return a list of devices, not list them on stdout - virtual void list_midi_devices(void); - - virtual void list_network_adapters() - { - network_init(); - osd_list_network_adapters(); - network_exit(); - } - + // command option overrides + virtual bool execute_command(const char *command); // FIXME: everything below seems to be osd specific and not part of // this INTERFACE but part of the osd IMPLEMENTATION @@ -193,8 +183,6 @@ public: virtual bool sound_init(); virtual void sound_register(); - virtual bool input_init(); - virtual void input_pause(); virtual void input_resume(); virtual bool output_init(); virtual bool network_init(); @@ -217,6 +205,10 @@ public: osd_options &options() { return m_options; } +protected: + virtual bool input_init(); + virtual void input_pause(); + private: // internal state running_machine * m_machine; diff --git a/src/osd/osdepend.c b/src/osd/osdepend.c deleted file mode 100644 index be19e70bf7c..00000000000 --- a/src/osd/osdepend.c +++ /dev/null @@ -1,2 +0,0 @@ -#include "osdepend.h" - diff --git a/src/osd/osdepend.h b/src/osd/osdepend.h index 04b10eda10c..9e18bc9691f 100644 --- a/src/osd/osdepend.h +++ b/src/osd/osdepend.h @@ -49,7 +49,6 @@ public: virtual void set_mastervolume(int attenuation) = 0; virtual bool no_sound() = 0; - // input overridables virtual void customize_input_type_list(simple_list<input_type_entry> &typelist) = 0; @@ -61,12 +60,8 @@ public: // video overridables virtual void *get_slider_list() = 0; // FIXME: returns slider_state * - // midi overridables - // FIXME: this should return a list of devices, not list them on stdout, even better - // move this to OSD_OPTIONS - virtual void list_midi_devices(void) = 0; - - virtual void list_network_adapters() = 0; + // command option overrides + virtual bool execute_command(const char *command) = 0; }; |