summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/formats/ccvf_dsk.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/formats/ccvf_dsk.cpp')
-rw-r--r--src/lib/formats/ccvf_dsk.cpp32
1 files changed, 17 insertions, 15 deletions
diff --git a/src/lib/formats/ccvf_dsk.cpp b/src/lib/formats/ccvf_dsk.cpp
index 6ed0c14038a..d2c8da8e083 100644
--- a/src/lib/formats/ccvf_dsk.cpp
+++ b/src/lib/formats/ccvf_dsk.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Curt Coder
/*********************************************************************
- formats/ccvf_dsk.c
+ formats/ccvf_dsk.cpp
Compucolor Virtual Floppy Disk Image format
@@ -24,17 +24,17 @@ ccvf_format::ccvf_format(const format *_formats)
formats = _formats;
}
-const char *ccvf_format::name() const
+const char *ccvf_format::name() const noexcept
{
return "ccvf";
}
-const char *ccvf_format::description() const
+const char *ccvf_format::description() const noexcept
{
return "Compucolor Virtual Floppy Disk Image";
}
-const char *ccvf_format::extensions() const
+const char *ccvf_format::extensions() const noexcept
{
return "ccvf";
}
@@ -47,13 +47,15 @@ const ccvf_format::format ccvf_format::file_formats[] = {
{}
};
-int ccvf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants)
+int ccvf_format::identify(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants) const
{
char h[36];
- size_t actual;
- io.read_at(0, h, 36, actual);
+ auto const [err, actual] = read_at(io, 0, h, 36);
+ if (err || (36 != actual))
+ return 0;
+
if (!memcmp(h, "Compucolor Virtual Floppy Disk Image", 36))
- return 100;
+ return FIFID_SIGN;
return 0;
}
@@ -88,7 +90,7 @@ floppy_image_format_t::desc_e* ccvf_format::get_desc_8n1(const format &f, int &c
return desc;
}
-bool ccvf_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image *image)
+bool ccvf_format::load(util::random_read &io, uint32_t form_factor, const std::vector<uint32_t> &variants, floppy_image &image) const
{
const format &f = formats[0];
@@ -96,9 +98,9 @@ bool ccvf_format::load(util::random_read &io, uint32_t form_factor, const std::v
if (io.length(size))
return false;
- std::vector<uint8_t> img(size);
- size_t actual;
- io.read_at(0, &img[0], size, actual);
+ auto [err, img, actual] = read_at(io, 0, size);
+ if (err || (actual != size))
+ return false;
std::string ccvf = std::string((const char *)&img[0], size);
std::vector<uint8_t> bytes(78720);
@@ -146,14 +148,14 @@ bool ccvf_format::load(util::random_read &io, uint32_t form_factor, const std::v
generate_track_from_levels(track, 0, buffer, 0, image);
}
- image->set_variant(f.variant);
+ image.set_variant(f.variant);
return true;
}
-bool ccvf_format::supports_save() const
+bool ccvf_format::supports_save() const noexcept
{
return false;
}
-const floppy_format_type FLOPPY_CCVF_FORMAT = &floppy_image_format_creator<ccvf_format>;
+const ccvf_format FLOPPY_CCVF_FORMAT;