summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/devices/imagedev/floppy.cpp10
-rw-r--r--src/devices/imagedev/floppy.h5
-rw-r--r--src/lib/formats/fs_cbmdos.cpp9
-rw-r--r--src/lib/formats/fs_cbmdos.h2
-rw-r--r--src/lib/formats/fs_coco_os9.cpp9
-rw-r--r--src/lib/formats/fs_coco_os9.h2
-rw-r--r--src/lib/formats/fs_coco_rsdos.cpp9
-rw-r--r--src/lib/formats/fs_coco_rsdos.h2
-rw-r--r--src/lib/formats/fs_fat.cpp16
-rw-r--r--src/lib/formats/fs_fat.h2
-rw-r--r--src/lib/formats/fs_oric_jasmin.cpp8
-rw-r--r--src/lib/formats/fs_oric_jasmin.h2
-rw-r--r--src/lib/formats/fs_prodos.cpp8
-rw-r--r--src/lib/formats/fs_prodos.h2
-rw-r--r--src/lib/formats/fs_unformatted.cpp5
-rw-r--r--src/lib/formats/fs_unformatted.h2
-rw-r--r--src/lib/formats/fs_vtech.cpp5
-rw-r--r--src/lib/formats/fs_vtech.h2
-rw-r--r--src/lib/formats/fsmgr.cpp13
-rw-r--r--src/lib/formats/fsmgr.h21
-rw-r--r--src/tools/image_handler.cpp9
21 files changed, 78 insertions, 65 deletions
diff --git a/src/devices/imagedev/floppy.cpp b/src/devices/imagedev/floppy.cpp
index d5894530337..3c00336dcd8 100644
--- a/src/devices/imagedev/floppy.cpp
+++ b/src/devices/imagedev/floppy.cpp
@@ -318,7 +318,13 @@ void floppy_image_device::setup_led_cb(led_cb cb)
cur_led_cb = cb;
}
-void floppy_image_device::fs_enum::add(const floppy_image_format_t &type, u32 image_size, const char *name, const char *description)
+floppy_image_device::fs_enum::fs_enum(floppy_image_device *fid)
+ : fs::manager_t::floppy_enumerator(fid->form_factor, fid->variants)
+ , m_fid(fid)
+{
+}
+
+void floppy_image_device::fs_enum::add_format(const floppy_image_format_t &type, u32 image_size, const char *name, const char *description)
{
m_fid->m_fs.emplace_back(fs_info(m_manager, &type, image_size, name, description));
}
@@ -346,7 +352,7 @@ void floppy_image_device::register_formats()
for(const fs::manager_t *fmt : fr.m_fs)
{
fse.m_manager = fmt;
- fmt->enumerate_f(fse, form_factor, variants);
+ fmt->enumerate_f(fse);
m_fs_managers.push_back(fmt);
}
}
diff --git a/src/devices/imagedev/floppy.h b/src/devices/imagedev/floppy.h
index 02b181d5540..3d551ee72ab 100644
--- a/src/devices/imagedev/floppy.h
+++ b/src/devices/imagedev/floppy.h
@@ -157,10 +157,11 @@ protected:
floppy_image_device *m_fid;
const fs::manager_t *m_manager;
- fs_enum(floppy_image_device *fid) : fs::manager_t::floppy_enumerator(), m_fid(fid) {}
+ fs_enum(floppy_image_device *fid);
- virtual void add(const floppy_image_format_t &type, u32 image_size, const char *name, const char *description) override;
virtual void add_raw(const char *name, u32 key, const char *description) override;
+ protected:
+ virtual void add_format(const floppy_image_format_t &type, u32 image_size, const char *name, const char *description) override;
};
floppy_image_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
diff --git a/src/lib/formats/fs_cbmdos.cpp b/src/lib/formats/fs_cbmdos.cpp
index 387cbe6b863..ab0e2d59f17 100644
--- a/src/lib/formats/fs_cbmdos.cpp
+++ b/src/lib/formats/fs_cbmdos.cpp
@@ -109,13 +109,10 @@ const char *fs::cbmdos_image::description() const
// enumerate_f
//-------------------------------------------------
-void fs::cbmdos_image::enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const
+void fs::cbmdos_image::enumerate_f(floppy_enumerator &fe) const
{
- if (has(form_factor, variants, floppy_image::FF_525, floppy_image::SSSD))
- {
- fe.add(FLOPPY_D64_FORMAT, 174848, "d64_cbmdos_35", "D64 CBMDOS single-sided 35 tracks");
- fe.add(FLOPPY_D64_FORMAT, 192256, "d64_cbmdos_40", "D64 CBMDOS single-sided 40 tracks");
- }
+ fe.add(FLOPPY_D64_FORMAT, floppy_image::FF_525, floppy_image::SSSD, 174848, "d64_cbmdos_35", "D64 CBMDOS single-sided 35 tracks");
+ fe.add(FLOPPY_D64_FORMAT, floppy_image::FF_525, floppy_image::SSSD, 192256, "d64_cbmdos_40", "D64 CBMDOS single-sided 40 tracks");
}
diff --git a/src/lib/formats/fs_cbmdos.h b/src/lib/formats/fs_cbmdos.h
index 9732eb6b162..4226777461e 100644
--- a/src/lib/formats/fs_cbmdos.h
+++ b/src/lib/formats/fs_cbmdos.h
@@ -27,7 +27,7 @@ namespace fs {
virtual const char *name() const override;
virtual const char *description() const override;
- virtual void enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const override;
+ virtual void enumerate_f(floppy_enumerator &fe) const override;
virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const override;
virtual bool can_format() const override;
diff --git a/src/lib/formats/fs_coco_os9.cpp b/src/lib/formats/fs_coco_os9.cpp
index dd3f0f48f8d..f72ae772f8f 100644
--- a/src/lib/formats/fs_coco_os9.cpp
+++ b/src/lib/formats/fs_coco_os9.cpp
@@ -155,13 +155,10 @@ const char *coco_os9_image::description() const
// enumerate_f
//-------------------------------------------------
-void coco_os9_image::enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const
+void coco_os9_image::enumerate_f(floppy_enumerator &fe) const
{
- if (has(form_factor, variants, floppy_image::FF_525, floppy_image::SSDD))
- {
- fe.add(FLOPPY_COCO_RAWDSK_FORMAT, 161280, "coco_rawdsk_os9_35", "CoCo Raw Disk OS-9 single-sided 35 tracks");
- fe.add(FLOPPY_COCO_RAWDSK_FORMAT, 184320, "coco_rawdsk_os9_40", "CoCo Raw Disk OS-9 single-sided 40 tracks");
- }
+ fe.add(FLOPPY_COCO_RAWDSK_FORMAT, floppy_image::FF_525, floppy_image::SSSD, 161280, "coco_rawdsk_os9_35", "CoCo Raw Disk OS-9 single-sided 35 tracks");
+ fe.add(FLOPPY_COCO_RAWDSK_FORMAT, floppy_image::FF_525, floppy_image::SSSD, 184320, "coco_rawdsk_os9_40", "CoCo Raw Disk OS-9 single-sided 40 tracks");
}
diff --git a/src/lib/formats/fs_coco_os9.h b/src/lib/formats/fs_coco_os9.h
index cd0339f05c8..fcd0bcc421a 100644
--- a/src/lib/formats/fs_coco_os9.h
+++ b/src/lib/formats/fs_coco_os9.h
@@ -28,7 +28,7 @@ public:
virtual const char *name() const override;
virtual const char *description() const override;
- virtual void enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const override;
+ virtual void enumerate_f(floppy_enumerator &fe) const override;
virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const override;
virtual bool can_format() const override;
diff --git a/src/lib/formats/fs_coco_rsdos.cpp b/src/lib/formats/fs_coco_rsdos.cpp
index 0b97829e215..5984f6aee43 100644
--- a/src/lib/formats/fs_coco_rsdos.cpp
+++ b/src/lib/formats/fs_coco_rsdos.cpp
@@ -105,13 +105,10 @@ const char *coco_rsdos_image::description() const
// enumerate_f
//-------------------------------------------------
-void coco_rsdos_image::enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const
+void coco_rsdos_image::enumerate_f(floppy_enumerator &fe) const
{
- if (has(form_factor, variants, floppy_image::FF_525, floppy_image::SSDD))
- {
- fe.add(FLOPPY_COCO_RAWDSK_FORMAT, 161280, "coco_rawdsk_rsdos_35", "CoCo Raw Disk RS-DOS single-sided 35 tracks");
- fe.add(FLOPPY_COCO_RAWDSK_FORMAT, 184320, "coco_rawdsk_rsdos_40", "CoCo Raw Disk RS-DOS single-sided 40 tracks");
- }
+ fe.add(FLOPPY_COCO_RAWDSK_FORMAT, floppy_image::FF_525, floppy_image::SSSD, 161280, "coco_rawdsk_rsdos_35", "CoCo Raw Disk RS-DOS single-sided 35 tracks");
+ fe.add(FLOPPY_COCO_RAWDSK_FORMAT, floppy_image::FF_525, floppy_image::SSSD, 184320, "coco_rawdsk_rsdos_40", "CoCo Raw Disk RS-DOS single-sided 40 tracks");
}
diff --git a/src/lib/formats/fs_coco_rsdos.h b/src/lib/formats/fs_coco_rsdos.h
index 96b2265e51a..fc90145c49e 100644
--- a/src/lib/formats/fs_coco_rsdos.h
+++ b/src/lib/formats/fs_coco_rsdos.h
@@ -26,7 +26,7 @@ public:
virtual const char *name() const override;
virtual const char *description() const override;
- virtual void enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const override;
+ virtual void enumerate_f(floppy_enumerator &fe) const override;
virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const override;
virtual bool can_format() const override;
diff --git a/src/lib/formats/fs_fat.cpp b/src/lib/formats/fs_fat.cpp
index a2e5a4a5cc1..15977d72b0a 100644
--- a/src/lib/formats/fs_fat.cpp
+++ b/src/lib/formats/fs_fat.cpp
@@ -804,16 +804,12 @@ const char *fs::pc_fat_image::description() const
// pc_fat_image::enumerate_f
//-------------------------------------------------
-void pc_fat_image::enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const
-{
- if (has(form_factor, variants, floppy_image::FF_35, floppy_image::DSSD))
- fe.add(FLOPPY_PC_FORMAT, 368640, "pc_fat_dssd", "PC FAT 3.5\" dual-sided single density");
- if (has(form_factor, variants, floppy_image::FF_35, floppy_image::DSDD))
- fe.add(FLOPPY_PC_FORMAT, 737280, "pc_fat_dsdd", "PC FAT 3.5\" dual-sided double density");
- if (has(form_factor, variants, floppy_image::FF_35, floppy_image::DSHD))
- fe.add(FLOPPY_PC_FORMAT, 1474560, "pc_fat_dshd", "PC FAT 3.5\" dual-sided high density");
- if (has(form_factor, variants, floppy_image::FF_35, floppy_image::DSED))
- fe.add(FLOPPY_PC_FORMAT, 2949120, "pc_fat_dsed", "PC FAT 3.5\" dual-sided extra density");
+void pc_fat_image::enumerate_f(floppy_enumerator &fe) const
+{
+ fe.add(FLOPPY_PC_FORMAT, floppy_image::FF_35, floppy_image::DSSD, 368640, "pc_fat_dssd", "PC FAT 3.5\" dual-sided single density");
+ fe.add(FLOPPY_PC_FORMAT, floppy_image::FF_35, floppy_image::DSDD, 737280, "pc_fat_dsdd", "PC FAT 3.5\" dual-sided double density");
+ fe.add(FLOPPY_PC_FORMAT, floppy_image::FF_35, floppy_image::DSHD, 1474560, "pc_fat_dshd", "PC FAT 3.5\" dual-sided high density");
+ fe.add(FLOPPY_PC_FORMAT, floppy_image::FF_35, floppy_image::DSED, 2949120, "pc_fat_dsed", "PC FAT 3.5\" dual-sided extra density");
}
diff --git a/src/lib/formats/fs_fat.h b/src/lib/formats/fs_fat.h
index 71d44a32227..cc24319a8db 100644
--- a/src/lib/formats/fs_fat.h
+++ b/src/lib/formats/fs_fat.h
@@ -48,7 +48,7 @@ public:
virtual const char *name() const override;
virtual const char *description() const override;
- virtual void enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const override;
+ virtual void enumerate_f(floppy_enumerator &fe) const override;
virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const override;
};
diff --git a/src/lib/formats/fs_oric_jasmin.cpp b/src/lib/formats/fs_oric_jasmin.cpp
index 3f150d0bdff..f364d98c2fb 100644
--- a/src/lib/formats/fs_oric_jasmin.cpp
+++ b/src/lib/formats/fs_oric_jasmin.cpp
@@ -100,12 +100,10 @@ const char *oric_jasmin_image::description() const
return "Oric Jasmin";
}
-void oric_jasmin_image::enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const
+void oric_jasmin_image::enumerate_f(floppy_enumerator &fe) const
{
- if(has(form_factor, variants, floppy_image::FF_3, floppy_image::DSDD))
- fe.add(FLOPPY_ORIC_JASMIN_FORMAT, 356864, "oric_jasmin_ds", "Oric Jasmin dual-sided");
- if(has(form_factor, variants, floppy_image::FF_3, floppy_image::SSDD))
- fe.add(FLOPPY_ORIC_JASMIN_FORMAT, 178432, "oric_jasmin_ss", "Oric Jasmin single-sided");
+ fe.add(FLOPPY_ORIC_JASMIN_FORMAT, floppy_image::FF_3, floppy_image::DSDD, 356864, "oric_jasmin_ds", "Oric Jasmin dual-sided");
+ fe.add(FLOPPY_ORIC_JASMIN_FORMAT, floppy_image::FF_3, floppy_image::SSDD, 178432, "oric_jasmin_ss", "Oric Jasmin single-sided");
}
std::unique_ptr<filesystem_t> oric_jasmin_image::mount(fsblk_t &blockdev) const
diff --git a/src/lib/formats/fs_oric_jasmin.h b/src/lib/formats/fs_oric_jasmin.h
index 76bbce2403d..514227d9069 100644
--- a/src/lib/formats/fs_oric_jasmin.h
+++ b/src/lib/formats/fs_oric_jasmin.h
@@ -19,7 +19,7 @@ public:
virtual const char *name() const override;
virtual const char *description() const override;
- virtual void enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const override;
+ virtual void enumerate_f(floppy_enumerator &fe) const override;
virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const override;
virtual bool can_format() const override;
diff --git a/src/lib/formats/fs_prodos.cpp b/src/lib/formats/fs_prodos.cpp
index c7e7e47532f..8f0b972041e 100644
--- a/src/lib/formats/fs_prodos.cpp
+++ b/src/lib/formats/fs_prodos.cpp
@@ -86,12 +86,10 @@ const u8 prodos_impl::boot[512] = {
0xf0, 0xf5, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
-void prodos_image::enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const
+void prodos_image::enumerate_f(floppy_enumerator &fe) const
{
- if(has(form_factor, variants, floppy_image::FF_35, floppy_image::DSDD))
- fe.add(FLOPPY_APPLE_GCR_FORMAT, 819200, "prodos_800k", "Apple ProDOS 800K");
- if(has(form_factor, variants, floppy_image::FF_35, floppy_image::SSDD))
- fe.add(FLOPPY_APPLE_GCR_FORMAT, 409600, "prodos_400k", "Apple ProDOS 400K");
+ fe.add(FLOPPY_APPLE_GCR_FORMAT, floppy_image::FF_35, floppy_image::DSDD, 819200, "prodos_800k", "Apple ProDOS 800K");
+ fe.add(FLOPPY_APPLE_GCR_FORMAT, floppy_image::FF_35, floppy_image::SSDD, 409600, "prodos_400k", "Apple ProDOS 400K");
}
std::unique_ptr<filesystem_t> prodos_image::mount(fsblk_t &blockdev) const
diff --git a/src/lib/formats/fs_prodos.h b/src/lib/formats/fs_prodos.h
index 1d1ba5e2e8b..71ec4dce2e3 100644
--- a/src/lib/formats/fs_prodos.h
+++ b/src/lib/formats/fs_prodos.h
@@ -19,7 +19,7 @@ public:
virtual const char *name() const override;
virtual const char *description() const override;
- virtual void enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const override;
+ virtual void enumerate_f(floppy_enumerator &fe) const override;
virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const override;
virtual bool can_format() const override;
diff --git a/src/lib/formats/fs_unformatted.cpp b/src/lib/formats/fs_unformatted.cpp
index df0bbccecd4..f200f11894e 100644
--- a/src/lib/formats/fs_unformatted.cpp
+++ b/src/lib/formats/fs_unformatted.cpp
@@ -19,8 +19,11 @@ const char *unformatted_image::description() const
return "Unformatted floppy image";
}
-void unformatted_image::enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const
+void unformatted_image::enumerate_f(floppy_enumerator &fe) const
{
+ u32 form_factor = fe.form_factor();
+ const std::vector<u32> &variants = fe.variants();
+
bool all = form_factor == floppy_image::FF_UNKNOWN;
u32 best_8 =
form_factor == floppy_image::FF_8 ?
diff --git a/src/lib/formats/fs_unformatted.h b/src/lib/formats/fs_unformatted.h
index 8186ac1cdac..80973b4e7e3 100644
--- a/src/lib/formats/fs_unformatted.h
+++ b/src/lib/formats/fs_unformatted.h
@@ -45,7 +45,7 @@ public:
static void format(u32 key, floppy_image *image);
- virtual void enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const override;
+ virtual void enumerate_f(floppy_enumerator &fe) const override;
virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const override;
virtual bool can_format() const override;
diff --git a/src/lib/formats/fs_vtech.cpp b/src/lib/formats/fs_vtech.cpp
index f8126c2d58d..e4253638061 100644
--- a/src/lib/formats/fs_vtech.cpp
+++ b/src/lib/formats/fs_vtech.cpp
@@ -69,10 +69,9 @@ const char *vtech_image::description() const
return "VTech (Laser 200/300)";
}
-void vtech_image::enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const
+void vtech_image::enumerate_f(floppy_enumerator &fe) const
{
- if(has(form_factor, variants, floppy_image::FF_525, floppy_image::SSSD))
- fe.add(FLOPPY_VTECH_BIN_FORMAT, 163840, "vtech", "VTech");
+ fe.add(FLOPPY_VTECH_BIN_FORMAT, floppy_image::FF_525, floppy_image::SSSD, 163840, "vtech", "VTech");
}
std::unique_ptr<filesystem_t> vtech_image::mount(fsblk_t &blockdev) const
diff --git a/src/lib/formats/fs_vtech.h b/src/lib/formats/fs_vtech.h
index 360021708ac..efb591bcb12 100644
--- a/src/lib/formats/fs_vtech.h
+++ b/src/lib/formats/fs_vtech.h
@@ -19,7 +19,7 @@ public:
virtual const char *name() const override;
virtual const char *description() const override;
- virtual void enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const override;
+ virtual void enumerate_f(floppy_enumerator &fe) const override;
virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const override;
virtual bool can_format() const override;
diff --git a/src/lib/formats/fsmgr.cpp b/src/lib/formats/fsmgr.cpp
index 599a2f32d61..920c27873d5 100644
--- a/src/lib/formats/fsmgr.cpp
+++ b/src/lib/formats/fsmgr.cpp
@@ -48,7 +48,7 @@ bool refcounted_inner::unref_weak()
-void manager_t::enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const
+void manager_t::enumerate_f(floppy_enumerator &fe) const
{
}
@@ -428,5 +428,16 @@ err_t filesystem_t::format(const meta_data &meta)
return ERR_UNSUPPORTED;
}
+manager_t::floppy_enumerator::floppy_enumerator(u32 form_factor, const std::vector<u32> &variants)
+ : m_form_factor(form_factor)
+ , m_variants(variants)
+{
+}
+
+void manager_t::floppy_enumerator::add(const floppy_image_format_t &type, u32 form_factor, u32 variant, u32 image_size, const char *name, const char *description)
+{
+ if (has(m_form_factor, m_variants, form_factor, variant))
+ add_format(type, image_size, name, description);
+}
} // namespace fs
diff --git a/src/lib/formats/fsmgr.h b/src/lib/formats/fsmgr.h
index c75b932cce9..6e3220ad753 100644
--- a/src/lib/formats/fsmgr.h
+++ b/src/lib/formats/fsmgr.h
@@ -288,10 +288,21 @@ class unformatted_floppy_creator;
class manager_t {
public:
struct floppy_enumerator {
+ floppy_enumerator(u32 form_factor, const std::vector<u32> &variants);
virtual ~floppy_enumerator() = default;
- virtual void add(const floppy_image_format_t &type, u32 image_size, const char *name, const char *description) = 0;
+ void add(const floppy_image_format_t &type, u32 form_factor, u32 variant, u32 image_size, const char *name, const char *description);
virtual void add_raw(const char *name, u32 key, const char *description) = 0;
+
+ u32 form_factor() const { return m_form_factor; }
+ const std::vector<u32> &variants() const { return m_variants; }
+
+ protected:
+ virtual void add_format(const floppy_image_format_t &type, u32 image_size, const char *name, const char *description) = 0;
+
+ private:
+ u32 m_form_factor;
+ const std::vector<u32> & m_variants;
};
struct hd_enumerator {
@@ -312,7 +323,7 @@ public:
virtual const char *name() const = 0;
virtual const char *description() const = 0;
- virtual void enumerate_f(floppy_enumerator &fe, u32 form_factor, const std::vector<u32> &variants) const;
+ virtual void enumerate_f(floppy_enumerator &fe) const;
virtual void enumerate_h(hd_enumerator &he) const;
virtual void enumerate_c(cdrom_enumerator &ce) const;
@@ -331,11 +342,11 @@ public:
// Create a filesystem object from a block device
virtual std::unique_ptr<filesystem_t> mount(fsblk_t &blockdev) const = 0;
-protected:
- manager_t() = default;
-
static bool has(u32 form_factor, const std::vector<u32> &variants, u32 ff, u32 variant);
static bool has_variant(const std::vector<u32> &variants, u32 variant);
+
+protected:
+ manager_t() = default;
};
} // namespace fs
diff --git a/src/tools/image_handler.cpp b/src/tools/image_handler.cpp
index 02328059490..44d7fce7df3 100644
--- a/src/tools/image_handler.cpp
+++ b/src/tools/image_handler.cpp
@@ -42,10 +42,9 @@ namespace {
struct fs_enum : public fs::manager_t::floppy_enumerator {
filesystem_format *m_format;
+ fs_enum(filesystem_format *format, const std::vector<u32> &variants) : fs::manager_t::floppy_enumerator(floppy_image::FF_UNKNOWN, variants), m_format(format) {}
- fs_enum(filesystem_format *format) : m_format(format) {}
-
- virtual void add(const floppy_image_format_t &type, u32 image_size, const char *name, const char *description) override {
+ virtual void add_format(const floppy_image_format_t &type, u32 image_size, const char *name, const char *description) override {
m_format->m_floppy = true;
m_format->m_floppy_create.emplace_back(std::make_unique<floppy_create_info>(m_format->m_manager, &type, image_size, name, description));
}
@@ -65,8 +64,8 @@ void formats_table::init()
mame_formats_full_list(en);
for(auto &f : filesystem_formats) {
- fs_enum fen(f.get());
- f->m_manager->enumerate_f(fen, floppy_image::FF_UNKNOWN, variants);
+ fs_enum fen(f.get(), variants);
+ f->m_manager->enumerate_f(fen);
}
for(auto &f : floppy_format_infos) {