diff --git a/Storage/Tape/Formats/TZX.cpp b/Storage/Tape/Formats/TZX.cpp index e130e3ade..c5907c4fc 100644 --- a/Storage/Tape/Formats/TZX.cpp +++ b/Storage/Tape/Formats/TZX.cpp @@ -22,28 +22,25 @@ Log::Logger logger; } TZX::TZX(const std::string &file_name) : file_name_(file_name) { - format_serialiser(); + Storage::FileHolder file(file_name, FileHolder::FileMode::Read); + + // Check for signature followed by a 0x1a + if(!file.check_signature("ZXTape!")) throw ErrorNotTZX; + if(file.get8() != 0x1a) throw ErrorNotTZX; + + // Get version number + const uint8_t major_version = file.get8(); + const uint8_t minor_version = file.get8(); + + // Reject if an incompatible version + if(major_version != 1 || minor_version > 21) throw ErrorNotTZX; } std::unique_ptr TZX::format_serialiser() const { return std::make_unique(file_name_); } -TZX::Serialiser::Serialiser(const std::string &file_name) : - file_(file_name, FileHolder::FileMode::Read), - current_level_(false) { - - // Check for signature followed by a 0x1a - if(!file_.check_signature("ZXTape!")) throw ErrorNotTZX; - if(file_.get8() != 0x1a) throw ErrorNotTZX; - - // Get version number - const uint8_t major_version = file_.get8(); - const uint8_t minor_version = file_.get8(); - - // Reject if an incompatible version - if(major_version != 1 || minor_version > 21) throw ErrorNotTZX; - +TZX::Serialiser::Serialiser(const std::string &file_name) : file_(file_name, FileHolder::FileMode::Read) { reset(); }