summaryrefslogtreecommitdiffstats
path: root/src/devices/imagedev/flopdrv.cpp
diff options
context:
space:
mode:
author Nathan Woods <npwoods@mess.org>2016-07-30 14:41:09 -0400
committer Nathan Woods <npwoods@mess.org>2016-07-30 14:41:09 -0400
commit5f1bb0526331ca6736dfef009e4048d6ac6c3add (patch)
treefe0f15b59cf1e5fb30fd82355881a3bd790309bc /src/devices/imagedev/flopdrv.cpp
parent33245e7945cf76422e8931b93e0c3320fd8e9c6c (diff)
Removed device_image_interface::has_been_created()
This method was necessary long ago when devices didn't have distinct load and create paths, which has since been addressed
Diffstat (limited to 'src/devices/imagedev/flopdrv.cpp')
-rw-r--r--src/devices/imagedev/flopdrv.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/devices/imagedev/flopdrv.cpp b/src/devices/imagedev/flopdrv.cpp
index 75da2d10f5d..e19340c40c9 100644
--- a/src/devices/imagedev/flopdrv.cpp
+++ b/src/devices/imagedev/flopdrv.cpp
@@ -375,7 +375,7 @@ void legacy_floppy_image_device::floppy_drive_write_sector_data(int side, int in
}
}
-void legacy_floppy_image_device::floppy_install_load_proc(void (*proc)(device_image_interface &image))
+void legacy_floppy_image_device::floppy_install_load_proc(void (*proc)(device_image_interface &image, bool is_created))
{
m_load_proc = proc;
}
@@ -417,7 +417,7 @@ void legacy_floppy_image_device::floppy_drive_set_controller(device_t *controlle
m_controller = controller;
}
-int legacy_floppy_image_device::internal_floppy_device_load(int create_format, util::option_resolution *create_args)
+int legacy_floppy_image_device::internal_floppy_device_load(bool is_create, int create_format, util::option_resolution *create_args)
{
floperr_t err;
const struct FloppyFormat *floppy_options;
@@ -428,7 +428,7 @@ int legacy_floppy_image_device::internal_floppy_device_load(int create_format, u
interface(image); /* figure out the floppy options */
floppy_options = m_config->formats;
- if (has_been_created())
+ if (is_create)
{
/* creating an image */
assert(create_format >= 0);
@@ -452,6 +452,10 @@ int legacy_floppy_image_device::internal_floppy_device_load(int create_format, u
/* disk changed */
m_dskchg = CLEAR_LINE;
+ // If we have one of our hacky load procs, call it
+ if (m_load_proc)
+ m_load_proc(*this, is_create);
+
return IMAGE_INIT_PASS;
error:
@@ -832,17 +836,12 @@ void legacy_floppy_image_device::device_config_complete()
bool legacy_floppy_image_device::call_create(int format_type, util::option_resolution *format_options)
{
- return internal_floppy_device_load(format_type, format_options);
+ return internal_floppy_device_load(true, format_type, format_options);
}
bool legacy_floppy_image_device::call_load()
{
- int retVal = internal_floppy_device_load(-1, nullptr);
- if (retVal==IMAGE_INIT_PASS) {
- /* if we have one of our hacky unload procs, call it */
- if (m_load_proc)
- m_load_proc(*this);
- }
+ int retVal = internal_floppy_device_load(false, -1, nullptr);
/* push disk halfway into drive */
m_wpt = CLEAR_LINE;