diff options
Diffstat (limited to 'src/lib/formats/hxchfe_dsk.h')
-rw-r--r-- | src/lib/formats/hxchfe_dsk.h | 64 |
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 |