Vas Crabb feedback: Replacing the enum with a class hierarchy, derived from 'software_list_loader'

This commit is contained in:
Nathan Woods 2016-07-23 09:10:14 -04:00
parent ae5dab64d7
commit e45d316bc9
61 changed files with 153 additions and 82 deletions

View File

@ -96,7 +96,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_cart_type() { return m_type; };
bool has_cart() { return m_cart != nullptr; }

View File

@ -96,7 +96,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_cart_type() { return m_type; };
int identify_cart_type(UINT8 *header);

View File

@ -73,7 +73,7 @@ protected:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }

View File

@ -67,7 +67,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override {}
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }

View File

@ -58,7 +58,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override {}
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }

View File

@ -58,7 +58,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override {}
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }

View File

@ -135,7 +135,7 @@ protected:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }

View File

@ -82,7 +82,7 @@ protected:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }

View File

@ -70,7 +70,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override {}
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }

View File

@ -88,7 +88,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }

View File

@ -79,7 +79,7 @@ protected:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }

View File

@ -63,7 +63,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override {}
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }

View File

@ -118,7 +118,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }
int get_cart_type(UINT8 *ROM, UINT32 len);

View File

@ -87,7 +87,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }
int get_cart_type(UINT8 *ROM, UINT32 len);

View File

@ -114,7 +114,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
UINT32 common_get_size(const char *region);
void common_load_rom(UINT8 *ROM, UINT32 len, const char *region);

View File

@ -43,7 +43,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
virtual bool is_readable() const override { return true; }

View File

@ -102,7 +102,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override {}
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }
int load_fullpath();

View File

@ -93,7 +93,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
virtual bool is_readable() const override { return 1; }

View File

@ -30,7 +30,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::SOFTWARE; }
virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); }
virtual void call_unload() override;
virtual iodevice_t image_type() const override { return IO_MAGTAPE; }

View File

@ -91,7 +91,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
virtual bool is_readable() const override { return 1; }

View File

@ -70,7 +70,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override {}
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }

View File

@ -153,7 +153,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
virtual bool is_readable() const override { return 1; }

View File

@ -43,7 +43,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
virtual bool is_readable() const override { return true; }
virtual bool is_writeable() const override { return false; }

View File

@ -195,7 +195,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
virtual bool is_readable() const override { return 1; }

View File

@ -52,7 +52,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
virtual bool is_readable() const override { return 1; }

View File

@ -54,7 +54,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
virtual bool is_readable() const override { return 1; }

View File

@ -51,7 +51,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
virtual bool is_readable() const override { return 1; }

View File

@ -346,7 +346,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
void call_load_ines();
void call_load_unif();

View File

@ -48,7 +48,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
virtual bool is_readable() const override { return 1; }

View File

@ -69,7 +69,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override {}
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }

View File

@ -68,7 +68,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }
int get_cart_type(UINT8 *ROM, UINT32 len);

View File

@ -121,7 +121,7 @@ protected:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }

View File

@ -96,7 +96,7 @@ protected:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }

View File

@ -74,7 +74,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_cart_type();

View File

@ -70,7 +70,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override {}
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }
int get_cart_type(UINT8 *ROM, UINT32 len);

View File

@ -110,7 +110,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }
int get_cart_type(UINT8 *ROM, UINT32 len);

View File

@ -159,7 +159,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
void get_cart_type_addon(UINT8 *ROM, UINT32 len, int &type, int &addon);
UINT32 snes_skip_header(UINT8 *ROM, UINT32 snes_rom_size);

View File

@ -108,7 +108,7 @@ protected:
// Image handling: implementation of methods which are abstract in the parent
bool call_load() override;
void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual void loaded_through_softlist() override;
void prepare_cartridge();

View File

@ -66,7 +66,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }

View File

@ -68,7 +68,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override {}
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }

View File

@ -96,7 +96,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_cart_type() { return m_type; };
int identify_cart_type(UINT8 *ROM, UINT32 len);

View File

@ -68,7 +68,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override {}
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }
int get_vec3d() { return m_vec3d; }

View File

@ -120,7 +120,7 @@ protected:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }

View File

@ -111,7 +111,7 @@ protected:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }

View File

@ -136,7 +136,7 @@ protected:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }

View File

@ -76,7 +76,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
int get_type() { return m_type; }
int get_is_rotated() { return m_cart->get_is_rotated(); }

View File

@ -96,7 +96,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
virtual bool is_readable() const override { return 1; }

View File

@ -59,7 +59,7 @@ public:
virtual bool call_create(int format_type, util::option_resolution *format_options) override;
virtual void call_unload() override;
virtual std::string call_display() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::SOFTWARE; }
virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CASSETTE; }

View File

@ -33,7 +33,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CDROM; }

View File

@ -33,7 +33,7 @@ public:
virtual bool call_load() override;
virtual bool call_create(int create_format, util::option_resolution *create_args) override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_HARDDISK; }

View File

@ -100,7 +100,7 @@ public:
template<class _Object> static devcb_base &set_out_idx_func(device_t &device, _Object object) { return downcast<legacy_floppy_image_device &>(device).m_out_idx_func.set_callback(object); }
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::SOFTWARE; }
virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); }
virtual bool call_create(int format_type, util::option_resolution *format_options) override;
virtual void call_unload() override;

View File

@ -83,7 +83,7 @@ public:
virtual bool call_load() override;
virtual void call_unload() override;
virtual bool call_create(int format_type, util::option_resolution *format_options) override;
virtual softlist_type get_softlist_type() const override { return softlist_type::SOFTWARE; }
virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); }
virtual const char *image_interface() const override = 0;
virtual iodevice_t image_type() const override { return IO_FLOPPY; }

View File

@ -35,7 +35,7 @@ public:
virtual bool call_load() override;
virtual bool call_create(int create_format, util::option_resolution *create_args) override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::ROM; }
virtual const software_list_loader &get_software_list_loader() const override { return rom_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_HARDDISK; }

View File

@ -27,7 +27,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::SOFTWARE; }
virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_SNAPSHOT; }
virtual bool is_readable() const override { return 1; }

View File

@ -216,7 +216,7 @@ public:
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::SOFTWARE; }
virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); }
protected:
// device-level overrides

View File

@ -1332,23 +1332,8 @@ const software_part *device_image_interface::find_software_item(const char *path
bool device_image_interface::call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry)
{
bool result = false;
switch (get_softlist_type())
{
case softlist_type::ROM:
device().machine().rom_load().load_software_part_region(*this, swlist, swname, start_entry);
result = true;
break;
case softlist_type::SOFTWARE:
result = load_software(swlist, swname, start_entry);
break;
case softlist_type::NONE:
default:
result = false;
break;
}
const software_list_loader &loader = get_software_list_loader();
bool result = loader.load_software(*this, swlist, swname, start_entry);
// this is a hook that seems to only be used by TI99
if (result)

View File

@ -21,6 +21,8 @@
#include <string>
#include <vector>
#include "softlist.h"
//**************************************************************************
// TYPE DEFINITIONS
@ -137,13 +139,6 @@ class device_image_interface : public device_interface
public:
typedef std::vector<std::unique_ptr<image_device_format>> formatlist_type;
enum class softlist_type
{
NONE,
ROM,
SOFTWARE
};
// construction/destruction
device_image_interface(const machine_config &mconfig, device_t &device);
virtual ~device_image_interface();
@ -253,7 +248,7 @@ public:
bool user_loadable() const { return m_user_loadable; }
protected:
virtual softlist_type get_softlist_type() const { return softlist_type::NONE; }
virtual const software_list_loader &get_software_list_loader() const { return false_software_list_loader::instance(); }
virtual void loaded_through_softlist() { }
bool load_internal(const char *path, bool is_create, int create_format, util::option_resolution *create_args, bool just_load);

View File

@ -91,9 +91,47 @@ private:
// device type definition
const device_type SOFTWARE_LIST = &device_creator<software_list_device>;
false_software_list_loader false_software_list_loader::s_instance;
rom_software_list_loader rom_software_list_loader::s_instance;
image_software_list_loader image_software_list_loader::s_instance;
//**************************************************************************
// SOFTWARE LIST LOADER
//**************************************************************************
//-------------------------------------------------
// false_software_list_loader::load_software
//-------------------------------------------------
bool false_software_list_loader::load_software(device_image_interface &device, software_list_device &swlist, const char *swname, const rom_entry *start_entry) const
{
return false;
}
//-------------------------------------------------
// rom_software_list_loader::load_software
//-------------------------------------------------
bool rom_software_list_loader::load_software(device_image_interface &device, software_list_device &swlist, const char *swname, const rom_entry *start_entry) const
{
swlist.machine().rom_load().load_software_part_region(device, swlist, swname, start_entry);
return true;
}
//-------------------------------------------------
// image_software_list_loader::load_software
//-------------------------------------------------
bool image_software_list_loader::load_software(device_image_interface &device, software_list_device &swlist, const char *swname, const rom_entry *start_entry) const
{
return device.load_software(swlist, swname, start_entry);
}
//**************************************************************************
// FEATURE LIST ITEM
//**************************************************************************

View File

@ -73,6 +73,59 @@ enum software_compatibility
// TYPE DEFINITIONS
//**************************************************************************
struct rom_entry;
class software_info;
class device_image_interface;
class software_list_device;
// ======================> software_list_loader
class software_list_loader
{
public:
virtual bool load_software(device_image_interface &device, software_list_device &swlist, const char *swname, const rom_entry *start_entry) const = 0;
};
// ======================> false_software_list_loader
class false_software_list_loader : public software_list_loader
{
public:
virtual bool load_software(device_image_interface &device, software_list_device &swlist, const char *swname, const rom_entry *start_entry) const override;
static const software_list_loader &instance() { return s_instance; }
private:
static false_software_list_loader s_instance;
};
// ======================> rom_software_list_loader
class rom_software_list_loader : public software_list_loader
{
public:
virtual bool load_software(device_image_interface &device, software_list_device &swlist, const char *swname, const rom_entry *start_entry) const override;
static const software_list_loader &instance() { return s_instance; }
private:
static rom_software_list_loader s_instance;
};
// ======================> image_software_list_loader
class image_software_list_loader : public software_list_loader
{
public:
virtual bool load_software(device_image_interface &device, software_list_device &swlist, const char *swname, const rom_entry *start_entry) const override;
static const software_list_loader &instance() { return s_instance; }
private:
static image_software_list_loader s_instance;
};
// ======================> feature_list_item
// an item in a list of name/value pairs

View File

@ -50,7 +50,7 @@ public:
// image-level overrides
virtual bool call_load() override;
virtual void call_unload() override;
virtual softlist_type get_softlist_type() const override { return softlist_type::SOFTWARE; }
virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CASSETTE; }

View File

@ -28,7 +28,7 @@ public:
virtual bool call_load() override;
virtual void call_unload() override;
virtual bool call_create(int format_type, util::option_resolution *create_args) override;
virtual softlist_type get_softlist_type() const override { return softlist_type::SOFTWARE; }
virtual const software_list_loader &get_software_list_loader() const override { return image_software_list_loader::instance(); }
virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
virtual bool is_readable() const override { return 1; }