Files
fluxengine/lib/imagereader/imagereader.h
Thomas Daede a4f44933ec Add NFD r0 image reader.
This format is very similar to D88, but used mostly for PC-98
rather than PC-88.
2022-01-22 08:33:43 -08:00

41 lines
1.5 KiB
C++

#ifndef IMAGEREADER_H
#define IMAGEREADER_H
#include "image.h"
class ImageSpec;
class ImageReaderProto;
class ImageReader
{
public:
ImageReader(const ImageReaderProto& config);
virtual ~ImageReader() {};
public:
static std::unique_ptr<ImageReader> create(const ImageReaderProto& config);
static void updateConfigForFilename(ImageReaderProto* proto, const std::string& filename);
public:
static std::unique_ptr<ImageReader> createD64ImageReader(const ImageReaderProto& config);
static std::unique_ptr<ImageReader> createDiskCopyImageReader(const ImageReaderProto& config);
static std::unique_ptr<ImageReader> createImgImageReader(const ImageReaderProto& config);
static std::unique_ptr<ImageReader> createJv3ImageReader(const ImageReaderProto& config);
static std::unique_ptr<ImageReader> createIMDImageReader(const ImageReaderProto& config);
static std::unique_ptr<ImageReader> createNsiImageReader(const ImageReaderProto& config);
static std::unique_ptr<ImageReader> createTd0ImageReader(const ImageReaderProto& config);
static std::unique_ptr<ImageReader> createDimImageReader(const ImageReaderProto& config);
static std::unique_ptr<ImageReader> createFdiImageReader(const ImageReaderProto& config);
static std::unique_ptr<ImageReader> createD88ImageReader(const ImageReaderProto& config);
static std::unique_ptr<ImageReader> createNFDImageReader(const ImageReaderProto& config);
public:
virtual std::unique_ptr<Image> readImage() = 0;
protected:
const ImageReaderProto& _config;
};
#endif