Rename a bunch of config fields for clarity.

This commit is contained in:
David Given
2021-05-15 22:23:42 +02:00
parent 55c26ab1c4
commit 41b36649a9
51 changed files with 131 additions and 131 deletions

View File

@@ -9,25 +9,17 @@ import "lib/fluxsink/fluxsink.proto";
import "lib/usb/usb.proto";
import "lib/common.proto";
message InputDiskProto {
oneof source {
string fluxfile = 1;
HardwareInputProto drive = 2;
TestPatternInputProto test_pattern = 3;
}
}
message InputProto {
oneof input {
InputFileProto file = 1;
InputDiskProto disk = 2;
InputFileProto image = 1;
FluxSourceProto flux = 2;
}
}
message OutputProto {
oneof output {
OutputFileProto file = 1;
OutputDiskProto disk = 2;
OutputFileProto image = 1;
FluxSinkProto flux = 2;
}
}

View File

@@ -4,14 +4,14 @@
#include "fluxsink/fluxsink.h"
#include "lib/config.pb.h"
std::unique_ptr<FluxSink> FluxSink::create(const OutputDiskProto& config)
std::unique_ptr<FluxSink> FluxSink::create(const FluxSinkProto& config)
{
switch (config.dest_case())
{
case OutputDiskProto::kFluxfile:
case FluxSinkProto::kFluxfile:
return createSqliteFluxSink(config.fluxfile());
case OutputDiskProto::kDrive:
case FluxSinkProto::kDrive:
return createHardwareFluxSink(config.drive());
}

View File

@@ -5,8 +5,8 @@
#include <ostream>
class Fluxmap;
class OutputDiskProto;
class HardwareOutputProto;
class FluxSinkProto;
class HardwareFluxSinkProto;
class FluxSink
{
@@ -14,9 +14,9 @@ public:
virtual ~FluxSink() {}
static std::unique_ptr<FluxSink> createSqliteFluxSink(const std::string& filename);
static std::unique_ptr<FluxSink> createHardwareFluxSink(const HardwareOutputProto& config);
static std::unique_ptr<FluxSink> createHardwareFluxSink(const HardwareFluxSinkProto& config);
static std::unique_ptr<FluxSink> create(const OutputDiskProto& config);
static std::unique_ptr<FluxSink> create(const FluxSinkProto& config);
public:
virtual void writeFlux(int track, int side, Fluxmap& fluxmap) = 0;

View File

@@ -2,7 +2,7 @@ syntax = "proto2";
import "lib/common.proto";
message HardwareOutputProto {
message HardwareFluxSinkProto {
optional IndexMode index_mode = 1
[default = INDEXMODE_DRIVE, (help) = "index pulse source"];
optional int32 hard_sector_count = 2
@@ -13,10 +13,10 @@ message HardwareOutputProto {
[default = 0, (help) = "which drive to write to (0 or 1)"];
}
message OutputDiskProto {
message FluxSinkProto {
oneof dest {
string fluxfile = 1;
HardwareOutputProto drive = 2;
HardwareFluxSinkProto drive = 2;
}
}

View File

@@ -9,7 +9,7 @@
class HardwareFluxSink : public FluxSink
{
public:
HardwareFluxSink(const HardwareOutputProto& config):
HardwareFluxSink(const HardwareFluxSinkProto& config):
_config(config)
{
if (config.has_hard_sector_count())
@@ -52,11 +52,11 @@ public:
}
private:
const HardwareOutputProto& _config;
const HardwareFluxSinkProto& _config;
nanoseconds_t _hardSectorThreshold;
};
std::unique_ptr<FluxSink> FluxSink::createHardwareFluxSink(const HardwareOutputProto& config)
std::unique_ptr<FluxSink> FluxSink::createHardwareFluxSink(const HardwareFluxSinkProto& config)
{
return std::unique_ptr<FluxSink>(new HardwareFluxSink(config));
}

View File

@@ -11,17 +11,17 @@ static bool ends_with(const std::string& value, const std::string& ending)
return std::equal(ending.rbegin(), ending.rend(), value.rbegin());
}
std::unique_ptr<FluxSource> FluxSource::create(const InputDiskProto& config)
std::unique_ptr<FluxSource> FluxSource::create(const FluxSourceProto& config)
{
switch (config.source_case())
{
case InputDiskProto::kFluxfile:
case FluxSourceProto::kFluxfile:
return createSqliteFluxSource(config.fluxfile());
case InputDiskProto::kDrive:
case FluxSourceProto::kDrive:
return createHardwareFluxSource(config.drive());
case InputDiskProto::kTestPattern:
case FluxSourceProto::kTestPattern:
return createTestPatternFluxSource(config.test_pattern());
}

View File

@@ -5,9 +5,9 @@
class Fluxmap;
class FluxSpec;
class InputDiskProto;
class HardwareInputProto;
class TestPatternInputProto;
class FluxSourceProto;
class HardwareFluxSourceProto;
class TestPatternFluxSourceProto;
class FluxSource
{
@@ -16,12 +16,12 @@ public:
private:
static std::unique_ptr<FluxSource> createSqliteFluxSource(const std::string& filename);
static std::unique_ptr<FluxSource> createHardwareFluxSource(const HardwareInputProto& config);
static std::unique_ptr<FluxSource> createHardwareFluxSource(const HardwareFluxSourceProto& config);
static std::unique_ptr<FluxSource> createStreamFluxSource(const std::string& path);
static std::unique_ptr<FluxSource> createTestPatternFluxSource(const TestPatternInputProto& config);
static std::unique_ptr<FluxSource> createTestPatternFluxSource(const TestPatternFluxSourceProto& config);
public:
static std::unique_ptr<FluxSource> create(const InputDiskProto& spec);
static std::unique_ptr<FluxSource> create(const FluxSourceProto& spec);
public:
virtual std::unique_ptr<Fluxmap> readFlux(int track, int side) = 0;

View File

@@ -2,7 +2,7 @@ syntax = "proto2";
import "lib/common.proto";
message HardwareInputProto {
message HardwareFluxSourceProto {
optional int32 drive = 1 [default = 0];
optional double revolutions = 2 [default = 1.2];
@@ -13,8 +13,16 @@ message HardwareInputProto {
[default = true, (help) = "set if this is a high density disk"];
}
message TestPatternInputProto {
message TestPatternFluxSourceProto {
optional double interval_us = 1 [default = 4.0];
optional double sequence_length_us = 2 [default = 200.0];
}
message FluxSourceProto {
oneof source {
string fluxfile = 1;
HardwareFluxSourceProto drive = 2;
TestPatternFluxSourceProto test_pattern = 3;
}
}

View File

@@ -9,7 +9,7 @@
class HardwareFluxSource : public FluxSource
{
public:
HardwareFluxSource(const HardwareInputProto& config):
HardwareFluxSource(const HardwareFluxSourceProto& config):
_config(config)
{
usbSetDrive(_config.drive(), _config.high_density(), _config.index_mode());
@@ -50,12 +50,12 @@ public:
}
private:
const HardwareInputProto& _config;
const HardwareFluxSourceProto& _config;
nanoseconds_t _oneRevolution;
nanoseconds_t _hardSectorThreshold;
};
std::unique_ptr<FluxSource> FluxSource::createHardwareFluxSource(const HardwareInputProto& config)
std::unique_ptr<FluxSource> FluxSource::createHardwareFluxSource(const HardwareFluxSourceProto& config)
{
return std::unique_ptr<FluxSource>(new HardwareFluxSource(config));
}

View File

@@ -7,7 +7,7 @@
class TestPatternFluxSource : public FluxSource
{
public:
TestPatternFluxSource(const TestPatternInputProto& config):
TestPatternFluxSource(const TestPatternFluxSourceProto& config):
_config(config)
{}
@@ -30,10 +30,10 @@ public:
void recalibrate() {}
private:
const TestPatternInputProto& _config;
const TestPatternFluxSourceProto& _config;
};
std::unique_ptr<FluxSource> FluxSource::createTestPatternFluxSource(const TestPatternInputProto& config)
std::unique_ptr<FluxSource> FluxSource::createTestPatternFluxSource(const TestPatternFluxSourceProto& config)
{
return std::unique_ptr<FluxSource>(new TestPatternFluxSource(config));
}

View File

@@ -34,7 +34,7 @@ std::unique_ptr<ImageReader> ImageReader::create(const InputFileProto& config)
void ImageReader::updateConfigForFilename(const std::string& filename)
{
InputFileProto* f = config.mutable_input()->mutable_file();
InputFileProto* f = config.mutable_input()->mutable_image();
static const std::map<std::string, std::function<void(void)>> formats =
{
{".adf", [&]() { f->mutable_img(); }},

View File

@@ -33,7 +33,7 @@ std::unique_ptr<ImageWriter> ImageWriter::create(const OutputFileProto& config)
void ImageWriter::updateConfigForFilename(const std::string& filename)
{
OutputFileProto* f = config.mutable_output()->mutable_file();
OutputFileProto* f = config.mutable_output()->mutable_image();
static const std::map<std::string, std::function<void(void)>> formats =
{
{".adf", [&]() { f->mutable_img(); }},

View File

@@ -25,7 +25,7 @@ static StringFlag sourceFlux(
"",
[](const auto& value)
{
config.mutable_input()->mutable_disk()->set_fluxfile(value);
config.mutable_input()->mutable_flux()->set_fluxfile(value);
});
static IntFlag sourceDrive(
@@ -34,7 +34,7 @@ static IntFlag sourceDrive(
0,
[](const auto& value)
{
config.mutable_input()->mutable_disk()->mutable_drive()->set_drive(value);
config.mutable_input()->mutable_flux()->mutable_drive()->set_drive(value);
});
static StringFlag destImage(
@@ -52,12 +52,12 @@ int mainRead(int argc, const char* argv[])
{
flags.parseFlagsWithConfigFiles(argc, argv, readables);
if (!config.input().has_disk() || !config.output().has_file())
if (!config.input().has_flux() || !config.output().has_image())
Error() << "incomplete config (did you remember to specify the format?)";
std::unique_ptr<FluxSource> fluxSource(FluxSource::create(config.input().disk()));
std::unique_ptr<FluxSource> fluxSource(FluxSource::create(config.input().flux()));
std::unique_ptr<AbstractDecoder> decoder(AbstractDecoder::create(config.decoder()));
std::unique_ptr<ImageWriter> writer(ImageWriter::create(config.output().file()));
std::unique_ptr<ImageWriter> writer(ImageWriter::create(config.output().image()));
readDiskCommand(*fluxSource, *decoder, *writer);

View File

@@ -13,15 +13,15 @@ static IntFlag driveFlag(
0,
[](const auto& value)
{
config.mutable_input()->mutable_disk()->mutable_drive()->set_drive(value);
config.mutable_input()->mutable_flux()->mutable_drive()->set_drive(value);
});
int mainRpm(int argc, const char* argv[])
{
flags.parseFlagsWithConfigFiles(argc, argv, {});
usbSetDrive(config.input().disk().drive().drive(), false, F_INDEX_REAL);
nanoseconds_t period = usbGetRotationalPeriod(config.input().disk().drive().hard_sector_count());
usbSetDrive(config.input().flux().drive().drive(), false, F_INDEX_REAL);
nanoseconds_t period = usbGetRotationalPeriod(config.input().flux().drive().hard_sector_count());
if (period != 0)
std::cout << "Rotational period is " << period/1000000 << " ms (" << 60e9/period << " rpm)" << std::endl;
else

View File

@@ -34,7 +34,7 @@ static StringFlag destFlux(
"",
[](const auto& value)
{
config.mutable_output()->mutable_disk()->set_fluxfile(value);
config.mutable_output()->mutable_flux()->set_fluxfile(value);
});
static IntFlag destDrive(
@@ -43,7 +43,7 @@ static IntFlag destDrive(
0,
[](const auto& value)
{
config.mutable_output()->mutable_disk()->mutable_drive()->set_drive(value);
config.mutable_output()->mutable_flux()->mutable_drive()->set_drive(value);
});
extern const std::map<std::string, std::string> writables;
@@ -52,12 +52,12 @@ int mainWrite(int argc, const char* argv[])
{
flags.parseFlagsWithConfigFiles(argc, argv, writables);
if (!config.input().has_disk() || !config.output().has_file())
if (!config.input().has_image() || !config.output().has_flux())
Error() << "incomplete config (did you remember to specify the format?)";
std::unique_ptr<ImageReader> reader(ImageReader::create(config.input().file()));
std::unique_ptr<ImageReader> reader(ImageReader::create(config.input().image()));
std::unique_ptr<AbstractEncoder> encoder(AbstractEncoder::create(config.encoder()));
std::unique_ptr<FluxSink> fluxSink(FluxSink::create(config.output().disk()));
std::unique_ptr<FluxSink> fluxSink(FluxSink::create(config.output().flux()));
writeDiskCommand(*reader, *encoder, *fluxSink);

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "acornadfs.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "acorndfs.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "aeslanier.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "amiga.adf"
img {
tracks: 80

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "ampro.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "apple2.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "atarist.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "brother.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "c64.d64"
d64 {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "f85.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "fb100.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "ibm.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "macintosh.diskcopy"
diskcopy {}
}

View File

@@ -1,5 +1,5 @@
input {
disk {
flux {
drive {
hard_sector_count: 16
}
@@ -7,7 +7,7 @@ input {
}
output {
file {
image {
filename: "micropolis.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "mx.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "tids990.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "victor9k.img"
img {}
}

View File

@@ -1,11 +1,11 @@
input {
disk {
flux {
drive {}
}
}
output {
file {
image {
filename: "zilogmcz.img"
img {}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "amiga.adf"
img {
format {
@@ -13,7 +13,7 @@ input {
}
output {
disk {}
flux {}
}
encoder {

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "atarist360.img"
img {
format {
@@ -13,7 +13,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "atarist370.img"
img {
format {
@@ -13,7 +13,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "atarist400.img"
img {
format {
@@ -13,7 +13,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "atarist410.img"
img {
format {
@@ -13,7 +13,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "atarist720.img"
img {
format {
@@ -13,7 +13,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "atarist740.img"
img {
format {
@@ -13,7 +13,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "atarist800.img"
img {
format {
@@ -13,7 +13,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "atarist820.img"
img {
format {
@@ -13,7 +13,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "brother120.img"
img {
format {
@@ -13,7 +13,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "brother240.img"
img {
format {
@@ -11,7 +11,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "commodore1581.img"
img {
format {
@@ -11,7 +11,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "hplif770.img"
img {
format {
@@ -13,7 +13,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "ibm1440.img"
img {
format {
@@ -11,7 +11,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "ibm720.img"
img {
format {
@@ -11,7 +11,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,12 +1,12 @@
input {
file {
filename: "macintosh.diskcopy42"
image {
filename: "macintosh.diskcopy"
diskcopy {}
}
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -1,5 +1,5 @@
input {
file {
image {
filename: "tids990.img"
img {
format {
@@ -13,7 +13,7 @@ input {
}
output {
disk {
flux {
drive {}
}
}

View File

@@ -44,13 +44,13 @@ static void test_config(void)
const std::string text = R"M(
input {
file {
image {
filename: "filename"
}
}
output {
disk {
flux {
drive { }
}
}