summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/hxchfe_dsk.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/formats/hxchfe_dsk.h')
-rw-r--r--src/lib/formats/hxchfe_dsk.h64
1 files changed, 32 insertions, 32 deletions
diff --git a/src/lib/formats/hxchfe_dsk.h b/src/lib/formats/hxchfe_dsk.h
index 75dd4c3c371..c7a1eac08ff 100644
--- a/src/lib/formats/hxchfe_dsk.h
+++ b/src/lib/formats/hxchfe_dsk.h
@@ -47,44 +47,44 @@ public:
hfe_format();
- virtual int identify(io_generic *io, uint32_t form_factor) override;
- virtual bool load(io_generic *io, uint32_t form_factor, floppy_image *image) override;
- virtual bool save(io_generic *io, floppy_image *image) override;
+ virtual int identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const override;
+ virtual bool load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image &image) const override;
- virtual const char *name() const override;
- virtual const char *description() const override;
- virtual const char *extensions() const override;
- virtual bool supports_save() const override;
-
- void set_floppy_mode(floppymode_t mode) { m_selected_mode = mode; }
- void set_encoding(encoding_t enc) { m_selected_encoding = enc; }
+ virtual const char *name() const noexcept override;
+ virtual const char *description() const noexcept override;
+ virtual const char *extensions() const noexcept override;
+ virtual bool supports_save() const noexcept override;
private:
- void generate_track_from_hfe_bitstream(int track, int head, int samplelength, const uint8_t *trackbuf, int track_end, floppy_image *image);
- void generate_hfe_bitstream_from_track(int track, int head, int& samplelength, encoding_t& encoding, uint8_t *trackbuf, int track_end, floppy_image *image);
+ static void generate_track_from_hfe_bitstream(int track, int head, int samplelength, const uint8_t *trackbuf, int track_end, floppy_image &image);
// Header fields from the HFE format
- int m_cylinders; // Number of track in the file
- int m_heads; // Number of valid side
- encoding_t m_track_encoding; // Track Encoding mode
- int m_bit_rate; // Bitrate in Kbit/s (max: 500)
- int m_floppy_rpm; // Rotation per minute
- floppymode_t m_interface_mode; // Floppy interface mode.
-
- bool m_write_allowed;
- bool m_single_step;
- bool m_track0s0_has_altencoding;
- encoding_t m_track0s0_encoding; // alternate track_encoding for track 0 Side 0
- bool m_track0s1_has_altencoding;
- encoding_t m_track0s1_encoding; // alternate track_encoding for track 0 Side 1
-
- int m_cyl_offset[256];
- int m_cyl_length[256];
-
- floppymode_t m_selected_mode;
- encoding_t m_selected_encoding;
+ struct header_info {
+ int m_cylinders = 0; // Number of track in the file
+ int m_heads = 0; // Number of valid side
+ encoding_t m_track_encoding = UNKNOWN_ENCODING; // Track Encoding mode
+ int m_bit_rate = 0; // Bitrate in Kbit/s (max: 500)
+ int m_floppy_rpm = 0; // Rotation per minute
+ floppymode_t m_interface_mode = DISABLE_FLOPPYMODE; // Floppy interface mode.
+
+ bool m_write_allowed = true;
+ bool m_single_step = true;
+ bool m_track0s0_has_altencoding = false;
+ encoding_t m_track0s0_encoding = UNKNOWN_ENCODING; // alternate track_encoding for track 0 Side 0
+ bool m_track0s1_has_altencoding = false;
+ encoding_t m_track0s1_encoding = UNKNOWN_ENCODING; // alternate track_encoding for track 0 Side 1
+
+ int m_cyl_offset[256];
+ int m_cyl_length[256];
+
+ floppymode_t m_selected_mode = DISABLE_FLOPPYMODE;
+ encoding_t m_selected_encoding = UNKNOWN_ENCODING;
+ };
+
+ static void set_floppy_mode(header_info &info, floppymode_t mode) { info.m_selected_mode = mode; }
+ static void set_encoding(header_info &info, encoding_t enc) { info.m_selected_encoding = enc; }
};
-extern const floppy_format_type FLOPPY_HFE_FORMAT;
+extern const hfe_format FLOPPY_HFE_FORMAT;
#endif // MAME_FORMATS_HXCHFE_DSK_H