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/astrocde | |
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/astrocde')
-rw-r--r-- | src/devices/bus/astrocde/slot.cpp | 7 | ||||
-rw-r--r-- | src/devices/bus/astrocde/slot.h | 2 |
2 files changed, 4 insertions, 5 deletions
diff --git a/src/devices/bus/astrocde/slot.cpp b/src/devices/bus/astrocde/slot.cpp index 6dfd7a47e33..d997b6454e5 100644 --- a/src/devices/bus/astrocde/slot.cpp +++ b/src/devices/bus/astrocde/slot.cpp @@ -175,12 +175,12 @@ image_init_result astrocade_cart_slot_device::call_load() get default card software -------------------------------------------------*/ -std::string astrocade_cart_slot_device::get_default_card_software() +std::string astrocade_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 size = m_file->size(); + uint32_t size = hook.image_file()->size(); int type = ASTROCADE_STD; if (size == 0x40000) @@ -191,7 +191,6 @@ std::string astrocade_cart_slot_device::get_default_card_software() slot_string = astrocade_get_slot(type); //printf("type: %s\n", slot_string); - clear(); return std::string(slot_string); } diff --git a/src/devices/bus/astrocde/slot.h b/src/devices/bus/astrocde/slot.h index 2d0ad1005a4..702342aad8c 100644 --- a/src/devices/bus/astrocde/slot.h +++ b/src/devices/bus/astrocde/slot.h @@ -74,7 +74,7 @@ public: virtual const char *file_extensions() const override { return "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_rom); |