Add the boilerplate for the Agat encoder.

This commit is contained in:
dg
2023-01-05 12:04:36 +00:00
parent 909f0d628b
commit b0c77653a2
7 changed files with 54 additions and 0 deletions

View File

@@ -3,7 +3,13 @@
#define AGAT_SECTOR_SIZE 256
class Encoder;
class EncoderProto;
class Decoder;
class DecoderProto;
extern std::unique_ptr<Decoder> createAgatDecoder(const DecoderProto& config);
extern std::unique_ptr<Encoder> createAgatEncoder(const EncoderProto& config);
extern uint8_t agatChecksum(const Bytes& bytes);

View File

@@ -2,4 +2,5 @@ syntax = "proto2";
message AgatDecoderProto {}
message AgatEncoderProto {}

37
arch/agat/encoder.cc Normal file
View File

@@ -0,0 +1,37 @@
#include "globals.h"
#include "decoders/decoders.h"
#include "encoders/encoders.h"
#include "agat.h"
#include "crc.h"
#include "readerwriter.h"
#include "image.h"
#include "arch/agat/agat.pb.h"
#include "lib/encoders/encoders.pb.h"
class AgatEncoder : public Encoder
{
public:
AgatEncoder(const EncoderProto& config):
Encoder(config),
_config(config.agat())
{
}
public:
std::unique_ptr<Fluxmap> encode(std::shared_ptr<const TrackInfo>& trackInfo,
const std::vector<std::shared_ptr<const Sector>>& sectors,
const Image& image) override
{
Error() << "unimplemented";
}
private:
const AgatEncoderProto& _config;
};
std::unique_ptr<Encoder> createAgatEncoder(const EncoderProto& config)
{
return std::unique_ptr<Encoder>(new AgatEncoder(config));
}

View File

@@ -2,6 +2,7 @@ LIBARCH_SRCS = \
arch/aeslanier/decoder.cc \
arch/agat/agat.cc \
arch/agat/decoder.cc \
arch/agat/encoder.cc \
arch/amiga/amiga.cc \
arch/amiga/decoder.cc \
arch/amiga/encoder.cc \