Files
fluxengine/lib/reader.h
David Given 12135b5dd6 Add support for FM decoding and Acorn DFS disks, requiring some rearrangement.
Also make the Brother two revolutions thing (which DFS also needs) the default.
2019-02-12 21:29:31 +01:00

45 lines
953 B
C++

#ifndef READER_H
#define READER_H
class Fluxmap;
class BitmapDecoder;
class RecordParser;
class ReaderTrack
{
public:
virtual ~ReaderTrack() {}
int drive;
int track;
int side;
std::unique_ptr<Fluxmap> read();
virtual std::unique_ptr<Fluxmap> reallyRead() = 0;
virtual void recalibrate() = 0;
};
class CapturedReaderTrack : public ReaderTrack
{
public:
std::unique_ptr<Fluxmap> reallyRead();
void recalibrate();
};
class FileReaderTrack : public ReaderTrack
{
public:
std::unique_ptr<Fluxmap> reallyRead();
void recalibrate();
};
extern void setReaderDefaultSource(const std::string& source);
extern void setReaderRevolutions(int revolutions);
extern std::vector<std::unique_ptr<ReaderTrack>> readTracks();
extern void readDiskCommand(
const BitmapDecoder& bitmapDecoder, const RecordParser& recordParser,
const std::string& outputFilename);
#endif