Previous 199869 Revisions Next

r34382 Wednesday 14th January, 2015 at 00:05:38 UTC by Couriersud
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
[src/emu]clifront.c clifront.h cliopts.c cliopts.h emu.mak
[src/osd]osdepend.c osdepend.h
[src/osd/modules/lib]osdobj_common.c osdobj_common.h

trunk/src/emu/clifront.c
r242893r242894
1818#include "un7z.h"
1919#include "validity.h"
2020#include "sound/samples.h"
21#include "cliopts.h"
2122#include "clifront.h"
2223#include "xmlfile.h"
2324
r242893r242894
2728#include <ctype.h>
2829
2930
30//**************************************************************************
31//  COMMAND-LINE OPTIONS
32//**************************************************************************
3331
34const options_entry cli_options::s_option_entries[] =
35{
36   /* core commands */
37   { NULL,                            NULL,       OPTION_HEADER,     "CORE COMMANDS" },
38   { CLICOMMAND_HELP ";h;?",           "0",       OPTION_COMMAND,    "show help message" },
39   { CLICOMMAND_VALIDATE ";valid",     "0",       OPTION_COMMAND,    "perform driver validation on all game drivers" },
40
41   /* configuration commands */
42   { NULL,                            NULL,       OPTION_HEADER,     "CONFIGURATION COMMANDS" },
43   { CLICOMMAND_CREATECONFIG ";cc",    "0",       OPTION_COMMAND,    "create the default configuration file" },
44   { CLICOMMAND_SHOWCONFIG ";sc",      "0",       OPTION_COMMAND,    "display running parameters" },
45   { CLICOMMAND_SHOWUSAGE ";su",       "0",       OPTION_COMMAND,    "show this help" },
46
47   /* frontend commands */
48   { NULL,                            NULL,       OPTION_HEADER,     "FRONTEND COMMANDS" },
49   { CLICOMMAND_LISTXML ";lx",         "0",       OPTION_COMMAND,    "all available info on driver in XML format" },
50   { CLICOMMAND_LISTFULL ";ll",        "0",       OPTION_COMMAND,    "short name, full name" },
51   { CLICOMMAND_LISTSOURCE ";ls",      "0",       OPTION_COMMAND,    "driver sourcefile" },
52   { CLICOMMAND_LISTCLONES ";lc",      "0",       OPTION_COMMAND,    "show clones" },
53   { CLICOMMAND_LISTBROTHERS ";lb",    "0",       OPTION_COMMAND,    "show \"brothers\", or other drivers from same sourcefile" },
54   { CLICOMMAND_LISTCRC,               "0",       OPTION_COMMAND,    "CRC-32s" },
55   { CLICOMMAND_LISTROMS ";lr",        "0",       OPTION_COMMAND,    "list required roms for a driver" },
56   { CLICOMMAND_LISTSAMPLES,           "0",       OPTION_COMMAND,    "list optional samples for a driver" },
57   { CLICOMMAND_VERIFYROMS,            "0",       OPTION_COMMAND,    "report romsets that have problems" },
58   { CLICOMMAND_VERIFYSAMPLES,         "0",       OPTION_COMMAND,    "report samplesets that have problems" },
59   { CLICOMMAND_ROMIDENT,              "0",       OPTION_COMMAND,    "compare files with known MAME roms" },
60   { CLICOMMAND_LISTDEVICES ";ld",     "0",       OPTION_COMMAND,    "list available devices" },
61   { CLICOMMAND_LISTSLOTS ";lslot",    "0",       OPTION_COMMAND,    "list available slots and slot devices" },
62   { CLICOMMAND_LISTMEDIA ";lm",       "0",       OPTION_COMMAND,    "list available media for the system" },
63   { CLICOMMAND_LISTSOFTWARE ";lsoft", "0",       OPTION_COMMAND,    "list known software for the system" },
64   { CLICOMMAND_VERIFYSOFTWARE ";vsoft", "0",     OPTION_COMMAND,    "verify known software for the system" },
65   { CLICOMMAND_GETSOFTLIST ";glist",  "0",       OPTION_COMMAND,    "retrieve software list by name" },
66   { CLICOMMAND_VERIFYSOFTLIST ";vlist", "0",     OPTION_COMMAND,    "verify software list by name" },
67   { CLICOMMAND_LIST_MIDI_DEVICES ";mlist", "0",  OPTION_COMMAND,    "list available MIDI I/O devices" },
68   { CLICOMMAND_LIST_NETWORK_ADAPTERS ";nlist", "0",  OPTION_COMMAND,    "list available network adapters" },
69   { NULL }
70};
71
7232// media_identifier class identifies media by hash via a search in
7333// the driver database
7434class media_identifier
r242893r242894
9858};
9959
10060
101
10261//**************************************************************************
103//  CLI OPTIONS
104//**************************************************************************
105
106//-------------------------------------------------
107//  cli_options - constructor
108//-------------------------------------------------
109
110cli_options::cli_options()
111: emu_options()
112{
113   add_entries(cli_options::s_option_entries);
114}
115
116
117
118//**************************************************************************
11962//  CLI FRONTEND
12063//**************************************************************************
12164
r242893r242894
805748}
806749
807750//-------------------------------------------------
808//  listmididevices - output the list of MIDI devices
809//  available in the current system to be used
810//-------------------------------------------------
811
812void cli_frontend::listmididevices(const char *gamename)
813{
814   m_osd.list_midi_devices();
815}
816
817
818//-------------------------------------------------
819//  listnetworkadapters - output the list of network
820//  adapters available in the current system to be used
821//-------------------------------------------------
822
823void cli_frontend::listnetworkadapters(const char *gamename)
824{
825    m_osd.list_network_adapters();
826}
827
828
829//-------------------------------------------------
830751//  verifyroms - verify the ROM sets of one or
831752//  more games
832753//-------------------------------------------------
r242893r242894
16791600      { CLICOMMAND_VERIFYSAMPLES, &cli_frontend::verifysamples },
16801601      { CLICOMMAND_LISTMEDIA,     &cli_frontend::listmedia },
16811602      { CLICOMMAND_LISTSOFTWARE,  &cli_frontend::listsoftware },
1682      { CLICOMMAND_VERIFYSOFTWARE,    &cli_frontend::verifysoftware },
1603      { CLICOMMAND_VERIFYSOFTWARE,&cli_frontend::verifysoftware },
16831604      { CLICOMMAND_ROMIDENT,      &cli_frontend::romident },
16841605      { CLICOMMAND_GETSOFTLIST,   &cli_frontend::getsoftlist },
1685      { CLICOMMAND_VERIFYSOFTLIST,    &cli_frontend::verifysoftlist },
1686      { CLICOMMAND_LIST_MIDI_DEVICES, &cli_frontend::listmididevices },
1687      { CLICOMMAND_LIST_NETWORK_ADAPTERS, &cli_frontend::listnetworkadapters },
1606      { CLICOMMAND_VERIFYSOFTLIST,&cli_frontend::verifysoftlist },
16881607   };
16891608
16901609   // find the command
r242893r242894
16971616         return;
16981617      }
16991618
1700   // if we get here, we don't know what has been requested
1701   throw emu_fatalerror(MAMERR_INVALID_CONFIG, "Unknown command '%s' specified", m_options.command());
1619   if (!m_osd.execute_command(m_options.command()))
1620        // if we get here, we don't know what has been requested
1621        throw emu_fatalerror(MAMERR_INVALID_CONFIG, "Unknown command '%s' specified", m_options.command());
17021622}
17031623
17041624
trunk/src/emu/clifront.h
r242893r242894
1313#ifndef __CLIFRONT_H__
1414#define __CLIFRONT_H__
1515
16#include "emu.h"
1617#include "cliopts.h"
1718#include "osdepend.h"
1819
trunk/src/emu/cliopts.c
r242893r242894
77***************************************************************************/
88
99#include "cliopts.h"
10#include "clifront.h"
1011
1112//**************************************************************************
1213//  COMMAND-LINE OPTIONS
r242893r242894
4546   { CLICOMMAND_VERIFYSOFTWARE ";vsoft", "0",     OPTION_COMMAND,    "verify known software for the system" },
4647   { CLICOMMAND_GETSOFTLIST ";glist",  "0",       OPTION_COMMAND,    "retrieve software list by name" },
4748   { CLICOMMAND_VERIFYSOFTLIST ";vlist", "0",     OPTION_COMMAND,    "verify software list by name" },
48   { CLICOMMAND_LIST_MIDI_DEVICES ";mlist", "0",  OPTION_COMMAND,    "list available MIDI I/O devices" },
49   { CLICOMMAND_LIST_NETWORK_ADAPTERS ";nlist", "0",  OPTION_COMMAND,    "list available network adapters" },
5049   { NULL }
5150};
5251
52//**************************************************************************
53//  CLI OPTIONS
54//**************************************************************************
55
56//-------------------------------------------------
57//  cli_options - constructor
58//-------------------------------------------------
59
60cli_options::cli_options()
61: emu_options()
62{
63    add_entries(cli_options::s_option_entries);
64}
65
trunk/src/emu/cliopts.h
r242893r242894
4747#define CLICOMMAND_VERIFYSOFTWARE       "verifysoftware"
4848#define CLICOMMAND_GETSOFTLIST          "getsoftlist"
4949#define CLICOMMAND_VERIFYSOFTLIST       "verifysoftlist"
50#define CLICOMMAND_LIST_MIDI_DEVICES    "listmidi"
51#define CLICOMMAND_LIST_NETWORK_ADAPTERS "listnetwork"
5250
5351
5452//**************************************************************************
trunk/src/emu/emu.mak
r242893r242894
5555   $(EMUOBJ)/audit.o \
5656   $(EMUOBJ)/cheat.o \
5757   $(EMUOBJ)/clifront.o \
58   $(EMUOBJ)/cliopts.o \
5859   $(EMUOBJ)/config.o \
5960   $(EMUOBJ)/crsshair.o \
6061   $(EMUOBJ)/debugger.o \
r242893r242894
145146   $(EMUOBJ)/profiler.o \
146147   $(EMUOBJ)/webengine.o \
147148   $(OSDOBJ)/osdcore.o \
148   $(OSDOBJ)/osdepend.o \
149149   $(OSDOBJ)/osdnet.o \
150150   $(OSDOBJ)/modules/sound/none.o \
151151   $(OSDOBJ)/modules/debugger/none.o \
trunk/src/osd/modules/lib/osdobj_common.c
r242893r242894
2020
2121const options_entry osd_options::s_option_entries[] =
2222{
23    { NULL,                                   NULL,       OPTION_HEADER,     "OSD CLI OPTIONS" },
24    { OSDCOMMAND_LIST_MIDI_DEVICES ";mlist",  "0",        OPTION_COMMAND,    "list available MIDI I/O devices" },
25    { OSDCOMMAND_LIST_NETWORK_ADAPTERS ";nlist", "0",     OPTION_COMMAND,    "list available network adapters" },
26
2327    // debugging options
2428    { NULL,                                   NULL,       OPTION_HEADER,     "OSD DEBUGGING OPTIONS" },
2529    { OSDOPTION_DEBUGGER,                     OSDOPTVAL_AUTO,      OPTION_STRING,    "debugger used : " },
r242893r242894
375379//  get_slider_list - allocate and populate a
376380//  list of OS-dependent slider values.
377381//-------------------------------------------------
382
378383void *osd_common_t::get_slider_list()
379384{
380385   return NULL;
381386}
382387
388//-------------------------------------------------
389//  execute_command - execute a command not yet
390//  handled by the core
391//-------------------------------------------------
392
393bool osd_common_t::execute_command(const char *command)
394{
395    if (strcmp(command, OSDCOMMAND_LIST_NETWORK_ADAPTERS) == 0)
396    {
397        network_init();
398        osd_list_network_adapters();
399        network_exit();
400        return true;
401    }
402    else if (strcmp(command, OSDCOMMAND_LIST_MIDI_DEVICES) == 0)
403    {
404        osd_list_midi_devices();
405        return true;
406    }
407
408    return false;
409
410}
411
383412void osd_common_t::init_subsystems()
384413{
385414   if (!video_init())
r242893r242894
537566    return osd_midi_init();
538567}
539568
540//-------------------------------------------------
541//  list_midi_devices - list available midi devices
542//-------------------------------------------------
543
544void osd_common_t::list_midi_devices(void)
545{
546    osd_list_midi_devices();
547}
548
549569void osd_common_t::midi_exit()
550570{
551571    osd_midi_exit();
trunk/src/osd/modules/lib/osdobj_common.h
r242893r242894
2020//  Defines
2121//============================================================
2222
23/* FIXME: void cli_frontend::listnetworkadapters should be
24 * moved here.
25 */
23#define OSDCOMMAND_LIST_MIDI_DEVICES    "listmidi"
24#define OSDCOMMAND_LIST_NETWORK_ADAPTERS "listnetwork"
2625
2726#define OSDOPTION_DEBUGGER              "debugger"
2827#define OSDOPTION_WATCHDOG              "watchdog"
r242893r242894
161160   // video overridables
162161   virtual void *get_slider_list();
163162
164   // midi overridables
165   // FIXME: this should return a list of devices, not list them on stdout
166   virtual void list_midi_devices(void);
163    // command option overrides
164    virtual bool execute_command(const char *command);
167165
168   virtual void list_network_adapters()
169    {
170        network_init();
171        osd_list_network_adapters();
172        network_exit();
173    }
174
175
176166   // FIXME: everything below seems to be osd specific and not part of
177167   //        this INTERFACE but part of the osd IMPLEMENTATION
178168
r242893r242894
193183    virtual bool sound_init();
194184    virtual void sound_register();
195185
196    virtual bool input_init();
197    virtual void input_pause();
198186    virtual void input_resume();
199187    virtual bool output_init();
200188    virtual bool network_init();
r242893r242894
217205
218206    osd_options &options() { return m_options; }
219207
208protected:
209    virtual bool input_init();
210    virtual void input_pause();
211
220212private:
221213   // internal state
222214   running_machine *   m_machine;
trunk/src/osd/osdepend.c
r242893r242894
1#include "osdepend.h"
2
trunk/src/osd/osdepend.h
r242893r242894
4949   virtual void set_mastervolume(int attenuation) = 0;
5050   virtual bool no_sound() = 0;
5151
52
5352   // input overridables
5453   virtual void customize_input_type_list(simple_list<input_type_entry> &typelist) = 0;
5554
r242893r242894
6160   // video overridables
6261   virtual void *get_slider_list() = 0; // FIXME: returns slider_state *
6362
64   // midi overridables
65   // FIXME: this should return a list of devices, not list them on stdout, even better
66   // move this to OSD_OPTIONS
67   virtual void list_midi_devices(void) = 0;
63   // command option overrides
64   virtual bool execute_command(const char *command) = 0;
6865
69    virtual void list_network_adapters() = 0;
70
7166};
7267
7368#endif  /* __OSDEPEND_H__ */


Previous 199869 Revisions Next


© 1997-2024 The MAME Team