|
3 | 3 | #include "readerwriter.h"
|
4 | 4 | #include "fluxmap.h"
|
5 | 5 | #include "decoders/decoders.h"
|
| 6 | +#include "encoders/encoders.h" |
6 | 7 | #include "macintosh/macintosh.h"
|
7 | 8 | #include "sector.h"
|
8 | 9 | #include "proto.h"
|
@@ -45,6 +46,15 @@ static StringFlag copyFluxTo(
|
45 | 46 | FluxSink::updateConfigForFilename(config.mutable_decoder()->mutable_copy_flux_to(), value);
|
46 | 47 | });
|
47 | 48 |
|
| 49 | +static StringFlag solvedFlux( |
| 50 | + { "-r", "--solved" }, |
| 51 | + "after reading, write a reconstructed/solved fluxmap to this file", |
| 52 | + "", |
| 53 | + [](const auto& value) |
| 54 | + { |
| 55 | + FluxSink::updateConfigForFilename(config.mutable_solved_flux(), value); |
| 56 | + }); |
| 57 | + |
48 | 58 | static StringFlag srcTracks(
|
49 | 59 | { "--cylinders", "-c" },
|
50 | 60 | "tracks to read from",
|
@@ -76,8 +86,12 @@ int mainRead(int argc, const char* argv[])
|
76 | 86 | std::unique_ptr<FluxSource> fluxSource(FluxSource::create(config.flux_source()));
|
77 | 87 | std::unique_ptr<AbstractDecoder> decoder(AbstractDecoder::create(config.decoder()));
|
78 | 88 | std::unique_ptr<ImageWriter> writer(ImageWriter::create(config.image_writer()));
|
| 89 | + std::unique_ptr<FluxSink> solvedFlux; |
| 90 | + std::unique_ptr<AbstractEncoder> solvedEncoder; |
| 91 | + if (config.has_solved_flux()) { |
| 92 | + solvedFlux = FluxSink::create(config.solved_flux()); } |
79 | 93 |
|
80 |
| - readDiskCommand(*fluxSource, *decoder, *writer); |
| 94 | + readDiskCommand(*fluxSource, *decoder, *writer, solvedFlux.get()); |
81 | 95 |
|
82 | 96 | return 0;
|
83 | 97 | }
|
|
0 commit comments