mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
51 lines
894 B
C++
51 lines
894 B
C++
#include "globals.h"
|
|
#include "flags.h"
|
|
#include "fluxmap.h"
|
|
#include "usb.h"
|
|
#include "fluxsource/fluxsource.h"
|
|
|
|
FlagGroup quickdiskFluxSourceFlags;
|
|
|
|
class QuickdiskFluxSource : public FluxSource
|
|
{
|
|
public:
|
|
QuickdiskFluxSource(unsigned drive):
|
|
_drive(drive)
|
|
{
|
|
}
|
|
|
|
~QuickdiskFluxSource()
|
|
{
|
|
}
|
|
|
|
public:
|
|
std::unique_ptr<Fluxmap> readFlux(int track, int side)
|
|
{
|
|
usbSetDrive(_drive, false);
|
|
Bytes crunched = usbReadQD(side);
|
|
auto fluxmap = std::make_unique<Fluxmap>();
|
|
fluxmap->appendBytes(crunched.uncrunch());
|
|
return fluxmap;
|
|
}
|
|
|
|
void recalibrate()
|
|
{
|
|
}
|
|
|
|
bool retryable()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
private:
|
|
unsigned _drive;
|
|
};
|
|
|
|
std::unique_ptr<FluxSource> FluxSource::createQuickdiskFluxSource(unsigned drive)
|
|
{
|
|
return std::unique_ptr<FluxSource>(new QuickdiskFluxSource(drive));
|
|
}
|
|
|
|
|
|
|