1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
/***************************************************************************
mame.h
Controls execution of the core MAME system.
Copyright Nicola Salmoria and the MAME Team.
Visit http://mamedev.org for licensing and usage restrictions.
***************************************************************************/
#pragma once
#ifndef __EMU_H__
#error Dont include this file directly; include emu.h instead.
#endif
#ifndef __MAME_H__
#define __MAME_H__
#include <time.h>
#include "webengine.h"
//**************************************************************************
// CONSTANTS
//**************************************************************************
// return values from run_game
enum
{
MAMERR_NONE = 0, /* no error */
MAMERR_FAILED_VALIDITY = 1, /* failed validity checks */
MAMERR_MISSING_FILES = 2, /* missing files */
MAMERR_FATALERROR = 3, /* some other fatal error */
MAMERR_DEVICE = 4, /* device initialization error (MESS-specific) */
MAMERR_NO_SUCH_GAME = 5, /* game was specified but doesn't exist */
MAMERR_INVALID_CONFIG = 6, /* some sort of error in configuration */
MAMERR_IDENT_NONROMS = 7, /* identified all non-ROM files */
MAMERR_IDENT_PARTIAL = 8, /* identified some files but not all */
MAMERR_IDENT_NONE = 9 /* identified no files */
};
//**************************************************************************
// TYPE DEFINITIONS
//**************************************************************************
class emulator_info
{
public:
// construction/destruction
emulator_info() {};
static const char * get_appname();
static const char * get_appname_lower();
static const char * get_configname();
static const char * get_applongname();
static const char * get_fulllongname();
static const char * get_capgamenoun();
static const char * get_capstartgamenoun();
static const char * get_gamenoun();
static const char * get_gamesnoun();
static const char * get_copyright();
static const char * get_copyright_info();
static const char * get_disclaimer();
static const char * get_usage();
static const char * get_xml_root();
static const char * get_xml_top();
static const char * get_state_magic_num();
static void printf_usage(const char *par1, const char *par2);
};
// ======================> machine_manager
class machine_manager
{
DISABLE_COPYING(machine_manager);
private:
// construction/destruction
machine_manager(emu_options &options, osd_interface &osd);
public:
static machine_manager *instance(emu_options &options, osd_interface &osd);
static machine_manager *instance();
~machine_manager();
osd_interface &osd() const { return m_osd; }
emu_options &options() const { return m_options; }
web_engine *web() { return &m_web; }
lua_engine *lua() { return &m_lua; }
running_machine *machine() { return m_machine; }
void set_machine(running_machine *machine) { m_machine = machine; }
void update_machine();
/* execute as configured by the OPTION_SYSTEMNAME option on the specified options */
int execute();
void schedule_new_driver(const game_driver &driver);
private:
osd_interface & m_osd; // reference to OSD system
emu_options & m_options; // reference to options
web_engine m_web;
lua_engine m_lua;
const game_driver * m_new_driver_pending; // pointer to the next pending driver
running_machine *m_machine;
static machine_manager* m_manager;
};
//**************************************************************************
// GLOBAL VARIABLES
//**************************************************************************
extern const char build_version[];
/***************************************************************************
FUNCTION PROTOTYPES
***************************************************************************/
/* ----- miscellaneous bits & pieces ----- */
// pop-up a user visible message
void CLIB_DECL popmessage(const char *format, ...) ATTR_PRINTF(1,2);
// log to the standard error.log file
void CLIB_DECL logerror(const char *format, ...) ATTR_PRINTF(1,2);
void CLIB_DECL vlogerror(const char *format, va_list arg);
#endif /* __MAME_H__ */
|