diff options
author | 2017-04-08 20:43:15 -0400 | |
---|---|---|
committer | 2017-04-10 20:47:40 -0400 | |
commit | afa6a83728be7339b7f9e76c719736665af611a2 (patch) | |
tree | b4d5c4abc6a41367736cbd57619165f10eeb4b61 /src/devices/bus/pce | |
parent | 5671a5eeab28af55588c0d0e722fd164a89e5f0c (diff) |
Changes to make get_default_card_software() less stupid
The goals with this change is to make get_default_card_software() a bit more standalone by making it a const method that does not mutate the state of the device_image_interface. This is done by passing in a small structure that encapsulates the minimum of information that get_default_card_software() needs.
This also eliminates the need for device_image_interface::open_image_file()
I agree with Sarayan that get_default_card_software() is terrible and needs to ultimately go away. This is a small step in that direction.
Lastly, I don't care for the name of get_default_card_software_hook (or get_default_card_software() for that matter). If anybody has better ideas, let me know.
Diffstat (limited to 'src/devices/bus/pce')
-rw-r--r-- | src/devices/bus/pce/pce_slot.cpp | 9 | ||||
-rw-r--r-- | src/devices/bus/pce/pce_slot.h | 2 |
2 files changed, 5 insertions, 6 deletions
diff --git a/src/devices/bus/pce/pce_slot.cpp b/src/devices/bus/pce/pce_slot.cpp index 3d8987efbea..fb9676a22fc 100644 --- a/src/devices/bus/pce/pce_slot.cpp +++ b/src/devices/bus/pce/pce_slot.cpp @@ -315,22 +315,21 @@ int pce_cart_slot_device::get_cart_type(const uint8_t *ROM, uint32_t len) get default card software -------------------------------------------------*/ -std::string pce_cart_slot_device::get_default_card_software() +std::string pce_cart_slot_device::get_default_card_software(get_default_card_software_hook &hook) const { - if (open_image_file(mconfig().options())) + if (hook.image_file()) { const char *slot_string; - uint32_t len = m_file->size(); + uint32_t len = hook.image_file()->size(); std::vector<uint8_t> rom(len); int type; - m_file->read(&rom[0], len); + hook.image_file()->read(&rom[0], len); type = get_cart_type(&rom[0], len); slot_string = pce_get_slot(type); //printf("type: %s\n", slot_string); - clear(); return std::string(slot_string); } diff --git a/src/devices/bus/pce/pce_slot.h b/src/devices/bus/pce/pce_slot.h index 5b24c6d27ae..3aa6b3593dd 100644 --- a/src/devices/bus/pce/pce_slot.h +++ b/src/devices/bus/pce/pce_slot.h @@ -89,7 +89,7 @@ public: virtual const char *file_extensions() const override { return "pce,bin"; } // slot interface overrides - virtual std::string get_default_card_software() override; + virtual std::string get_default_card_software(get_default_card_software_hook &hook) const override; // reading and writing virtual DECLARE_READ8_MEMBER(read_cart); |