summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author balr0g <balrog032@gmail.com>2016-03-16 01:56:08 -0400
committer balr0g <balrog032@gmail.com>2016-03-16 01:56:08 -0400
commitd83d2a22335c340e96bbf48ed9a4a7ac91fab4fe (patch)
treed54dfb00b2bfdb5427307a1d358d943d61c77e33
parenteaed2fb593e34a0b67597a1e1a0de9148f9e20b3 (diff)
Begin documenting machine config macros (nw)
-rw-r--r--src/emu/mconfig.h79
1 files changed, 67 insertions, 12 deletions
diff --git a/src/emu/mconfig.h b/src/emu/mconfig.h
index dc1a2e99b0a..4fb118ca1c5 100644
--- a/src/emu/mconfig.h
+++ b/src/emu/mconfig.h
@@ -1,12 +1,13 @@
// license:BSD-3-Clause
// copyright-holders:Aaron Giles
-/***************************************************************************
+/***************************************************************************/
+/**
+ * @file mconfig.h
+ * @defgroup MACHINE_CONFIG Machine configuration macros and functions
+ * @{
+ */
+/***************************************************************************/
- mconfig.h
-
- Machine configuration macros and functions.
-
-***************************************************************************/
#pragma once
@@ -81,26 +82,52 @@ private:
};
+//*************************************************************************/
+/** @name Machine config start/end macros */
+//*************************************************************************/
-//**************************************************************************
-// MACHINE CONFIG MACROS
-//**************************************************************************
-
-// start/end tags for the machine driver
+/**
+ @def MACHINE_CONFIG_NAME(_name)
+ Returns the internal name for the machine config.
+ @param _name name of desired config
+ @hideinitializer
+ */
#define MACHINE_CONFIG_NAME(_name) construct_machine_config_##_name
+/**
+ @def MACHINE_CONFIG_START(_name, _class)
+ Begins a new machine config.
+ @param _name name of this config
+ @param _class driver_device class for this config
+ @hideinitializer
+ */
#define MACHINE_CONFIG_START(_name, _class) \
ATTR_COLD device_t *MACHINE_CONFIG_NAME(_name)(machine_config &config, device_t *owner, device_t *device) \
{ \
devcb_base *devcb = NULL; \
(void)devcb; \
if (owner == NULL) owner = config.device_add(NULL, "root", &driver_device_creator<_class>, 0);
+
+/**
+ @def MACHINE_CONFIG_FRAGMENT(_name)
+ Begins a partial machine_config that can only be included in another "root" machine_config. This is also used for machine_configs that are specified as part of a device.
+ @param _name name of this config fragment
+ @hideinitializer
+*/
#define MACHINE_CONFIG_FRAGMENT(_name) \
ATTR_COLD device_t *MACHINE_CONFIG_NAME(_name)(machine_config &config, device_t *owner, device_t *device) \
{ \
devcb_base *devcb = NULL; \
(void)devcb; \
assert(owner != NULL);
+
+/**
+ @def MACHINE_CONFIG_DERIVED(_name, _base)
+ Begins a machine_config that is derived from another machine_config.
+ @param _name name of this config
+ @param _base name of the parent config
+ @hideinitializer
+*/
#define MACHINE_CONFIG_DERIVED(_name, _base) \
ATTR_COLD device_t *MACHINE_CONFIG_NAME(_name)(machine_config &config, device_t *owner, device_t *device) \
{ \
@@ -108,6 +135,15 @@ ATTR_COLD device_t *MACHINE_CONFIG_NAME(_name)(machine_config &config, device_t
(void)devcb; \
owner = MACHINE_CONFIG_NAME(_base)(config, owner, device); \
assert(owner != NULL);
+
+/**
+@def MACHINE_CONFIG_DERIVED_CLASS(_name, _base, _class)
+Begins a machine_config that is derived from another machine_config that can specify an alternate driver_device class
+@param _name name of this config
+@param _base name of the parent config
+@param _class name of the alternate driver_device class
+@hideinitializer
+*/
#define MACHINE_CONFIG_DERIVED_CLASS(_name, _base, _class) \
ATTR_COLD device_t *MACHINE_CONFIG_NAME(_name)(machine_config &config, device_t *owner, device_t *device) \
{ \
@@ -115,14 +151,32 @@ ATTR_COLD device_t *MACHINE_CONFIG_NAME(_name)(machine_config &config, device_t
(void)devcb; \
if (owner == NULL) owner = config.device_add(NULL, "root", &driver_device_creator<_class>, 0); \
owner = MACHINE_CONFIG_NAME(_base)(config, owner, device);
+
+/**
+@def MACHINE_CONFIG_END
+Ends a machine_config.
+@hideinitializer
+*/
#define MACHINE_CONFIG_END \
return owner; \
}
-// use this to declare external references to a machine driver
+//*************************************************************************/
+/** @name Standalone machine config macros */
+//*************************************************************************/
+
+/**
+@def MACHINE_CONFIG_EXTERN(_name)
+References an external machine config.
+@param _name Name of the machine config to reference
+@hideinitializer
+*/
#define MACHINE_CONFIG_EXTERN(_name) \
extern device_t *MACHINE_CONFIG_NAME(_name)(machine_config &config, device_t *owner, device_t *device)
+//*************************************************************************/
+/** @name Core machine config options */
+//*************************************************************************/
// importing data from other machine drivers
#define MCFG_FRAGMENT_ADD(_name) \
@@ -160,3 +214,4 @@ ATTR_COLD device_t *MACHINE_CONFIG_NAME(_name)(machine_config &config, device_t
device = config.device_find(owner, _tag);
#endif /* __MCONFIG_H__ */
+ /** @} */