summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/diimage.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/diimage.h')
-rw-r--r--src/emu/diimage.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/emu/diimage.h b/src/emu/diimage.h
index 248db9cbbd2..5300392d57a 100644
--- a/src/emu/diimage.h
+++ b/src/emu/diimage.h
@@ -129,6 +129,9 @@ typedef void (*device_image_partialhash_func)(hash_collection &, const unsigned
#define DEVICE_IMAGE_UNLOAD_MEMBER(_class,_name) void DEVICE_IMAGE_UNLOAD_NAME(_class,_name)(device_image_interface &image)
#define DEVICE_IMAGE_UNLOAD_DELEGATE(_class,_name) device_image_func_delegate(&DEVICE_IMAGE_UNLOAD_NAME(_class,_name),#_class "::device_image_unload_" #_name, downcast<_class *>(device->owner()))
+#define MCFG_SET_IMAGE_LOADABLE(_usrload) \
+ device_image_interface::static_set_user_loadable(*device, _usrload);
+
// ======================> device_image_interface
@@ -223,8 +226,6 @@ public:
const char *image_type_name() const { return device_typename(image_type()); }
-
-
const char *instance_name() const { return m_instance_name.c_str(); }
const char *brief_instance_name() const { return m_brief_instance_name.c_str(); }
bool uses_file_extension(const char *file_extension) const;
@@ -239,6 +240,15 @@ public:
int reopen_for_write(const char *path);
static void software_name_split(const char *swlist_swname, std::string &swlist_name, std::string &swname, std::string &swpart);
+ static void static_set_user_loadable(device_t &device, bool user_loadable) {
+ device_image_interface *img;
+ if (!device.interface(img))
+ throw emu_fatalerror("MCFG_SET_IMAGE_LOADABLE called on device '%s' with no image interface\n", device.tag());
+
+ img->m_user_loadable = user_loadable;
+ }
+
+ bool user_loadable() const { return m_user_loadable; }
protected:
bool load_internal(const char *path, bool is_create, int create_format, option_resolution *create_args, bool just_load);
@@ -311,10 +321,14 @@ protected:
std::string m_brief_instance_name;
std::string m_instance_name;
-
+
/* creation info */
simple_list<image_device_format> m_formatlist;
+ /* in the case of arcade cabinet with fixed carts inserted,
+ we want to disable command line cart loading... */
+ bool m_user_loadable;
+
bool m_is_loading;
};