mirror of
https://github.com/TomHarte/CLK.git
synced 2025-04-21 02:37:44 +00:00
Promote validation.
This commit is contained in:
parent
9461e6f285
commit
7f5d290b66
@ -22,28 +22,25 @@ Log::Logger<Log::Source::TZX> 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<FormatSerialiser> TZX::format_serialiser() const {
|
||||
return std::make_unique<Serialiser>(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();
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user