mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
This implements a subset of D88, only supporting the first floppy in an image. It only supports images with equal sector sizes, equal numbers of sectors per track, and no bad sectors.
40 lines
1.4 KiB
C++
40 lines
1.4 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);
|
|
|
|
public:
|
|
virtual std::unique_ptr<Image> readImage() = 0;
|
|
|
|
protected:
|
|
const ImageReaderProto& _config;
|
|
};
|
|
|
|
#endif
|
|
|