diff options
author | 2008-05-15 16:25:03 +0000 | |
---|---|---|
committer | 2008-05-15 16:25:03 +0000 | |
commit | 096331c8562467a67fb5674f46dbb26bb032d2a6 (patch) | |
tree | 1f9329631b6fb62a81f4bdd894403389d2f70759 /src/emu/render.c | |
parent | bc4b470ebbee405c6f48253acc225451f52a9b70 (diff) |
Restructured input port internals and cleaned up inptport.c:
* Input ports are now maintained hierarchically. At the top
level are input ports, which contain a list of fields. Each
field represents one or more bits of the port. Certain fields
such as DIP switches and configuration switches contain a
list of settings, which can be selected. DIP switch fields
can also contain a list of DIP switch locations.
* Normalized behavior of port overrides (via PORT_INCLUDE or
by defining multiple overlapping bits). All fields within a
port are kept in strict increasing bit order, so altered DIP
switches are now kept in the appropriate order. This addresses
MAMETesters bug 01671.
* Live port state is now fully separate from configured
state. This is manifested in a similar way to devices, where
a const list of ports can be managed either offline or live.
Each port has a pointer to an opaque set of live state which
is NULL when offline or valid when live. Each port also has
a running_machine * which is also NULL when offline.
* Because of this new arrangement, the conversion from tokens
to a list of ports now requires reasonably complex memory
allocation, so these port lists must be explicitly allocated
and freed (they are not mantained by automatic resource
allocation).
* Custom and changed callbacks now take a pointer to a field
config instead of a running machine. This provides more
information about what field triggered the change notification.
The machine can be found by referenced field->port->machine.
* The inptport.c module has been cleaned up and many
ambiguities resolved. Most of this is internal, though it did
result in osd_customize_inputport_list() being changed to
osd_customize_input_type_list(). The parameter to this function
is now a linked list instead of an array, and the structures
referenced have been reorganized somewhat.
* Updated config.c to pass machine parameters to its callbacks.
* Updated validity checks, XML output, and UI system to handle
the new structures.
* Moved large table of default input settings to a separate
include file inpttype.h.
* Removed gross hacks in trackfld and hyperspt NVRAM. These
may be broken as a result.
Diffstat (limited to 'src/emu/render.c')
-rw-r--r-- | src/emu/render.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/emu/render.c b/src/emu/render.c index 8425e4892cf..75933a435fe 100644 --- a/src/emu/render.c +++ b/src/emu/render.c @@ -252,8 +252,8 @@ static const render_quad_texuv oriented_texcoords[8] = /* core system */ static void render_exit(running_machine *machine); -static void render_load(int config_type, xml_data_node *parentnode); -static void render_save(int config_type, xml_data_node *parentnode); +static void render_load(running_machine *machine, int config_type, xml_data_node *parentnode); +static void render_save(running_machine *machine, int config_type, xml_data_node *parentnode); /* render targets */ static void release_render_list(render_primitive_list *list); @@ -537,7 +537,7 @@ void render_init(running_machine *machine) *current_container_ptr = NULL; /* register callbacks */ - config_register("video", render_load, render_save); + config_register(machine, "video", render_load, render_save); } @@ -615,7 +615,7 @@ static void render_exit(running_machine *machine) configuration file -------------------------------------------------*/ -static void render_load(int config_type, xml_data_node *parentnode) +static void render_load(running_machine *machine, int config_type, xml_data_node *parentnode) { xml_data_node *targetnode; xml_data_node *screennode; @@ -733,7 +733,7 @@ static void render_load(int config_type, xml_data_node *parentnode) file -------------------------------------------------*/ -static void render_save(int config_type, xml_data_node *parentnode) +static void render_save(running_machine *machine, int config_type, xml_data_node *parentnode) { render_target *target; render_container *container; |