mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
Hopefully get the imagereader/imagewriter and IBM encoder/decoders using sector
IDs.
This commit is contained in:
@@ -35,7 +35,7 @@ public:
|
||||
ImgInputOutputProto::TrackdataProto trackdata;
|
||||
getTrackFormat(trackdata, track, side);
|
||||
|
||||
for (int sectorId = 0; sectorId < trackdata.sectors(); sectorId++)
|
||||
for (int sectorId : getSectors(trackdata))
|
||||
{
|
||||
Bytes data(trackdata.sector_size());
|
||||
inputFile.read((char*) data.begin(), data.size());
|
||||
@@ -75,6 +75,32 @@ private:
|
||||
trackdata.MergeFrom(f);
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<unsigned> getSectors(const ImgInputOutputProto::TrackdataProto& trackdata)
|
||||
{
|
||||
std::vector<unsigned> sectors;
|
||||
switch (trackdata.sectors_oneof_case())
|
||||
{
|
||||
case ImgInputOutputProto::TrackdataProto::SectorsOneofCase::kSectors:
|
||||
{
|
||||
for (int sectorId : trackdata.sectors().sector())
|
||||
sectors.push_back(sectorId);
|
||||
break;
|
||||
}
|
||||
|
||||
case ImgInputOutputProto::TrackdataProto::SectorsOneofCase::kSectorRange:
|
||||
{
|
||||
int sectorId = trackdata.sector_range().start_sector();
|
||||
for (int i=0; i<trackdata.sector_range().sector_count(); i++)
|
||||
sectors.push_back(sectorId + i);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
Error() << "no list of sectors provided in track format";
|
||||
}
|
||||
return sectors;
|
||||
}
|
||||
};
|
||||
|
||||
std::unique_ptr<ImageReader> ImageReader::createImgImageReader(
|
||||
|
||||
Reference in New Issue
Block a user