summaryrefslogtreecommitdiffstatshomepage
path: root/trunk/src/emu/mame.h
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/src/emu/mame.h')
-rw-r--r--trunk/src/emu/mame.h138
1 files changed, 138 insertions, 0 deletions
diff --git a/trunk/src/emu/mame.h b/trunk/src/emu/mame.h
new file mode 100644
index 00000000000..cdec7d1db1f
--- /dev/null
+++ b/trunk/src/emu/mame.h
@@ -0,0 +1,138 @@
+/***************************************************************************
+
+ 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>
+
+
+
+//**************************************************************************
+// 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
+//**************************************************************************
+
+// output channel callback
+typedef delegate<void (const char *, va_list)> output_delegate;
+
+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);
+};
+
+
+
+//**************************************************************************
+// GLOBAL VARIABLES
+//**************************************************************************
+
+extern const char build_version[];
+
+
+
+/***************************************************************************
+ FUNCTION PROTOTYPES
+***************************************************************************/
+
+
+/* ----- core system management ----- */
+
+/* execute as configured by the OPTION_SYSTEMNAME option on the specified options */
+int mame_execute(emu_options &options, osd_interface &osd);
+
+/* return true if the given machine is valid */
+int mame_is_valid_machine(running_machine &machine);
+
+
+
+/* ----- output management ----- */
+
+/* set the output handler for a channel, returns the current one */
+output_delegate mame_set_output_channel(output_channel channel, output_delegate callback);
+
+/* built-in default callbacks */
+void mame_file_output_callback(FILE *file, const char *format, va_list argptr);
+void mame_null_output_callback(FILE *param, const char *format, va_list argptr);
+
+/* calls to be used by the code */
+void mame_printf_error(const char *format, ...) ATTR_PRINTF(1,2);
+void mame_printf_warning(const char *format, ...) ATTR_PRINTF(1,2);
+void mame_printf_info(const char *format, ...) ATTR_PRINTF(1,2);
+void mame_printf_verbose(const char *format, ...) ATTR_PRINTF(1,2);
+void mame_printf_debug(const char *format, ...) ATTR_PRINTF(1,2);
+
+/* discourage the use of printf directly */
+/* sadly, can't do this because of the ATTR_PRINTF under GCC */
+/*
+#undef printf
+#define printf !MUST_USE_MAME_PRINTF_*_CALLS_WITHIN_THE_CORE!
+*/
+
+
+/* ----- 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__ */