Move overridable device->rom_region(), device->machine_config_additions(), and

device->input_ports() to protected methods. Added non-virtual wrappers around
them.
This commit is contained in:
Aaron Giles 2011-03-30 06:27:49 +00:00
parent ee8ae2b1d8
commit 28fdb61512
13 changed files with 34 additions and 35 deletions

View File

@ -383,13 +383,11 @@ protected:
// construction/destruction // construction/destruction
legacy_cpu_device_config(const machine_config &mconfig, device_type _type, const char *_tag, const device_config *_owner, UINT32 _clock, cpu_get_info_func get_info); legacy_cpu_device_config(const machine_config &mconfig, device_type _type, const char *_tag, const device_config *_owner, UINT32 _clock, cpu_get_info_func get_info);
public:
// basic information getters // basic information getters
virtual const rom_entry *rom_region() const { return reinterpret_cast<const rom_entry *>(get_legacy_config_ptr(DEVINFO_PTR_ROM_REGION)); } virtual const rom_entry *device_rom_region() const { return reinterpret_cast<const rom_entry *>(get_legacy_config_ptr(DEVINFO_PTR_ROM_REGION)); }
virtual machine_config_constructor machine_config_additions() const { return reinterpret_cast<machine_config_constructor>(get_legacy_config_ptr(DEVINFO_PTR_MACHINE_CONFIG)); } virtual machine_config_constructor device_mconfig_additions() const { return reinterpret_cast<machine_config_constructor>(get_legacy_config_ptr(DEVINFO_PTR_MACHINE_CONFIG)); }
virtual const input_port_token *input_ports() const { return reinterpret_cast<const input_port_token *>(get_legacy_config_ptr(DEVINFO_PTR_INPUT_PORTS)); } virtual const input_port_token *device_input_ports() const { return reinterpret_cast<const input_port_token *>(get_legacy_config_ptr(DEVINFO_PTR_INPUT_PORTS)); }
protected:
// device_config_execute_interface overrides // device_config_execute_interface overrides
virtual UINT64 execute_clocks_to_cycles(UINT64 clocks) const; virtual UINT64 execute_clocks_to_cycles(UINT64 clocks) const;
virtual UINT64 execute_cycles_to_clocks(UINT64 cycles) const; virtual UINT64 execute_cycles_to_clocks(UINT64 cycles) const;

View File

@ -383,7 +383,7 @@ bool device_config::device_validity_check(emu_options &options, const game_drive
// rom region description for this device // rom region description for this device
//------------------------------------------------- //-------------------------------------------------
const rom_entry *device_config::rom_region() const const rom_entry *device_config::device_rom_region() const
{ {
return NULL; return NULL;
} }
@ -395,7 +395,7 @@ const rom_entry *device_config::rom_region() const
// this device // this device
//------------------------------------------------- //-------------------------------------------------
machine_config_constructor device_config::machine_config_additions() const machine_config_constructor device_config::device_mconfig_additions() const
{ {
return NULL; return NULL;
} }
@ -407,7 +407,7 @@ machine_config_constructor device_config::machine_config_additions() const
// input ports description for this device // input ports description for this device
//------------------------------------------------- //-------------------------------------------------
const input_port_token *device_config::input_ports() const const input_port_token *device_config::device_input_ports() const
{ {
return NULL; return NULL;
} }

View File

@ -292,7 +292,10 @@ public:
const char *tag() const { return m_tag; } const char *tag() const { return m_tag; }
const void *static_config() const { return m_static_config; } const void *static_config() const { return m_static_config; }
const machine_config &mconfig() const { return m_machine_config; } const machine_config &mconfig() const { return m_machine_config; }
const input_device_default *input_ports_defaults() const { return m_input_defaults; } const input_device_default *input_ports_defaults() const { return m_input_defaults; }
const rom_entry *rom_region() const { return device_rom_region(); }
machine_config_constructor machine_config_additions() const { return device_mconfig_additions(); }
const input_port_token *input_ports() const { return device_input_ports(); }
// methods that wrap both interface-level and device-level behavior // methods that wrap both interface-level and device-level behavior
void config_complete(); void config_complete();
@ -313,15 +316,13 @@ protected:
virtual void device_config_complete(); virtual void device_config_complete();
virtual bool device_validity_check(emu_options &options, const game_driver &driver) const; virtual bool device_validity_check(emu_options &options, const game_driver &driver) const;
public:
// optional information overrides // optional information overrides
virtual const rom_entry *rom_region() const; virtual const rom_entry *device_rom_region() const;
virtual machine_config_constructor machine_config_additions() const; virtual machine_config_constructor device_mconfig_additions() const;
virtual const input_port_token *input_ports() const; virtual const input_port_token *device_input_ports() const;
//------------------- end derived class overrides //------------------- end derived class overrides
protected:
// device relationships // device relationships
device_config * m_next; // next device (of any type/class) device_config * m_next; // next device (of any type/class)
device_config * m_owner; // device that owns us, or NULL if nobody device_config * m_owner; // device that owns us, or NULL if nobody

View File

@ -436,10 +436,6 @@ protected:
// basic information getters // basic information getters
public: public:
virtual const rom_entry *rom_region() const { return reinterpret_cast<const rom_entry *>(get_legacy_config_ptr(DEVINFO_PTR_ROM_REGION)); }
virtual machine_config_constructor machine_config_additions() const { return reinterpret_cast<machine_config_constructor>(get_legacy_config_ptr(DEVINFO_PTR_MACHINE_CONFIG)); }
virtual const input_port_token *input_ports() const { return reinterpret_cast<const input_port_token *>(get_legacy_config_ptr(DEVINFO_PTR_INPUT_PORTS)); }
// access to legacy inline configuartion // access to legacy inline configuartion
void *inline_config() const { return m_inline_config; } void *inline_config() const { return m_inline_config; }
@ -451,6 +447,9 @@ public:
protected: protected:
// overrides // overrides
virtual bool device_validity_check(emu_options &options, const game_driver &driver) const; virtual bool device_validity_check(emu_options &options, const game_driver &driver) const;
virtual const rom_entry *device_rom_region() const { return reinterpret_cast<const rom_entry *>(get_legacy_config_ptr(DEVINFO_PTR_ROM_REGION)); }
virtual machine_config_constructor device_mconfig_additions() const { return reinterpret_cast<machine_config_constructor>(get_legacy_config_ptr(DEVINFO_PTR_MACHINE_CONFIG)); }
virtual const input_port_token *device_input_ports() const { return reinterpret_cast<const input_port_token *>(get_legacy_config_ptr(DEVINFO_PTR_INPUT_PORTS)); }
// access to legacy configuration info // access to legacy configuration info
INT64 get_legacy_config_int(UINT32 state) const; INT64 get_legacy_config_int(UINT32 state) const;

View File

@ -1053,9 +1053,8 @@ static void print_game_info(FILE *out, const game_driver *game, emu_options &opt
input_port_list_init(portlist, game->ipt, NULL, 0, FALSE, NULL); input_port_list_init(portlist, game->ipt, NULL, 0, FALSE, NULL);
for (device_config *cfg = config.m_devicelist.first(); cfg != NULL; cfg = cfg->next()) for (device_config *cfg = config.m_devicelist.first(); cfg != NULL; cfg = cfg->next())
{ {
if (cfg->input_ports()!=NULL) { if (cfg->input_ports() != NULL)
input_port_list_init(portlist, cfg->input_ports(), NULL, 0, FALSE, cfg); input_port_list_init(portlist, cfg->input_ports(), NULL, 0, FALSE, cfg);
}
} }
/* print the header and the game name */ /* print the header and the game name */

View File

@ -1000,7 +1000,8 @@ time_t input_port_init(running_machine &machine, const input_port_token *tokens,
for (device_config *config = devicelist.first(); config != NULL; config = config->next()) for (device_config *config = devicelist.first(); config != NULL; config = config->next())
{ {
if (config->input_ports()!=NULL) { if (config->input_ports() != NULL)
{
input_port_list_init(machine.m_portlist, config->input_ports(), errorbuf, sizeof(errorbuf), TRUE, config); input_port_list_init(machine.m_portlist, config->input_ports(), errorbuf, sizeof(errorbuf), TRUE, config);
if (errorbuf[0] != 0) if (errorbuf[0] != 0)
mame_printf_error("Input port errors:\n%s", errorbuf); mame_printf_error("Input port errors:\n%s", errorbuf);

View File

@ -977,7 +977,7 @@ void driver_device_config_base::static_set_palette_init(device_config *device, p
// regions specified for the current game // regions specified for the current game
//------------------------------------------------- //-------------------------------------------------
const rom_entry *driver_device_config_base::rom_region() const const rom_entry *driver_device_config_base::device_rom_region() const
{ {
return m_system->rom; return m_system->rom;
} }

View File

@ -563,7 +563,7 @@ public:
protected: protected:
// optional information overrides // optional information overrides
virtual const rom_entry *rom_region() const; virtual const rom_entry *device_rom_region() const;
// internal state // internal state
const game_driver * m_system; // pointer to the game driver const game_driver * m_system; // pointer to the game driver

View File

@ -155,7 +155,7 @@ void bsmt2000_device_config::static_set_ready_callback(device_config *device, re
// internal ROM region // internal ROM region
//------------------------------------------------- //-------------------------------------------------
const rom_entry *bsmt2000_device_config::rom_region() const const rom_entry *bsmt2000_device_config::device_rom_region() const
{ {
return ROM_NAME( bsmt2000 ); return ROM_NAME( bsmt2000 );
} }
@ -166,7 +166,7 @@ const rom_entry *bsmt2000_device_config::rom_region() const
// the device's machine fragment // the device's machine fragment
//------------------------------------------------- //-------------------------------------------------
machine_config_constructor bsmt2000_device_config::machine_config_additions() const machine_config_constructor bsmt2000_device_config::device_mconfig_additions() const
{ {
return MACHINE_CONFIG_NAME( bsmt2000 ); return MACHINE_CONFIG_NAME( bsmt2000 );
} }

View File

@ -88,11 +88,11 @@ public:
// inline configuration helpers // inline configuration helpers
static void static_set_ready_callback(device_config *device, ready_callback callback); static void static_set_ready_callback(device_config *device, ready_callback callback);
// optional information overrides
virtual const rom_entry *rom_region() const;
virtual machine_config_constructor machine_config_additions() const;
protected: protected:
// optional information overrides
virtual const rom_entry *device_rom_region() const;
virtual machine_config_constructor device_mconfig_additions() const;
// device_config overrides // device_config overrides
virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const; virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const;

View File

@ -962,7 +962,8 @@ static bool validate_inputs(const machine_config &config, int_map &defstr_map, i
} }
for (device_config *cfg = config.m_devicelist.first(); cfg != NULL; cfg = cfg->next()) for (device_config *cfg = config.m_devicelist.first(); cfg != NULL; cfg = cfg->next())
{ {
if (cfg->input_ports()!=NULL) { if (cfg->input_ports() != NULL)
{
input_port_list_init(portlist, cfg->input_ports(), errorbuf, sizeof(errorbuf), FALSE, cfg); input_port_list_init(portlist, cfg->input_ports(), errorbuf, sizeof(errorbuf), FALSE, cfg);
if (errorbuf[0] != 0) if (errorbuf[0] != 0)
{ {
@ -1106,7 +1107,7 @@ static bool validate_devices(const machine_config &config, const ioport_list &po
break; break;
} }
if (devconfig->rom_region()!=NULL && (strcmp(devconfig->shortname(),"") == 0)) { if (devconfig->rom_region() != NULL && (strcmp(devconfig->shortname(),"") == 0)) {
mame_printf_warning("Device %s does not have short name defined\n", devconfig->name()); mame_printf_warning("Device %s does not have short name defined\n", devconfig->name());
} }
/* check for device-specific validity check */ /* check for device-specific validity check */

View File

@ -124,7 +124,7 @@ const address_space_config *hd61830_device_config::memory_space_config(address_s
// rom_region - device-specific ROM region // rom_region - device-specific ROM region
//------------------------------------------------- //-------------------------------------------------
const rom_entry *hd61830_device_config::rom_region() const const rom_entry *hd61830_device_config::device_rom_region() const
{ {
return ROM_NAME(hd61830); return ROM_NAME(hd61830);
} }

View File

@ -68,13 +68,13 @@ public:
static device_config *static_alloc_device_config(const machine_config &mconfig, const char *tag, const device_config *owner, UINT32 clock); static device_config *static_alloc_device_config(const machine_config &mconfig, const char *tag, const device_config *owner, UINT32 clock);
virtual device_t *alloc_device(running_machine &machine) const; virtual device_t *alloc_device(running_machine &machine) const;
// optional information overrides
virtual const rom_entry *rom_region() const;
protected: protected:
// device_config overrides // device_config overrides
virtual void device_config_complete(); virtual void device_config_complete();
// optional information overrides
virtual const rom_entry *device_rom_region() const;
// device_config_memory_interface overrides // device_config_memory_interface overrides
virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const; virtual const address_space_config *memory_space_config(address_spacenum spacenum = AS_0) const;