mirror of
				https://github.com/davidgiven/fluxengine.git
				synced 2025-10-24 11:11:02 -07:00 
			
		
		
		
	Convert the imagereader/writer to use proto enums rather than oneofs.
This commit is contained in:
		| @@ -14,39 +14,39 @@ | ||||
|  | ||||
| std::unique_ptr<ImageReader> ImageReader::create(const ImageReaderProto& config) | ||||
| { | ||||
|     switch (config.format_case()) | ||||
|     switch (config.type()) | ||||
|     { | ||||
|         case ImageReaderProto::kDim: | ||||
|         case ImageReaderProto::DIM: | ||||
|             return ImageReader::createDimImageReader(config); | ||||
|  | ||||
|         case ImageReaderProto::kD88: | ||||
|         case ImageReaderProto::D88: | ||||
|             return ImageReader::createD88ImageReader(config); | ||||
|  | ||||
|         case ImageReaderProto::kFdi: | ||||
|         case ImageReaderProto::FDI: | ||||
|             return ImageReader::createFdiImageReader(config); | ||||
|  | ||||
|         case ImageReaderProto::kImd: | ||||
|         case ImageReaderProto::IMD: | ||||
|             return ImageReader::createIMDImageReader(config); | ||||
|  | ||||
|         case ImageReaderProto::kImg: | ||||
|         case ImageReaderProto::IMG: | ||||
|             return ImageReader::createImgImageReader(config); | ||||
|  | ||||
|         case ImageReaderProto::kDiskcopy: | ||||
|         case ImageReaderProto::DISKCOPY: | ||||
|             return ImageReader::createDiskCopyImageReader(config); | ||||
|  | ||||
|         case ImageReaderProto::kJv3: | ||||
|         case ImageReaderProto::JV3: | ||||
|             return ImageReader::createJv3ImageReader(config); | ||||
|  | ||||
|         case ImageReaderProto::kD64: | ||||
|         case ImageReaderProto::D64: | ||||
|             return ImageReader::createD64ImageReader(config); | ||||
|  | ||||
|         case ImageReaderProto::kNfd: | ||||
|         case ImageReaderProto::NFD: | ||||
|             return ImageReader::createNFDImageReader(config); | ||||
|  | ||||
|         case ImageReaderProto::kNsi: | ||||
|         case ImageReaderProto::NSI: | ||||
|             return ImageReader::createNsiImageReader(config); | ||||
|  | ||||
|         case ImageReaderProto::kTd0: | ||||
|         case ImageReaderProto::TD0: | ||||
|             return ImageReader::createTd0ImageReader(config); | ||||
|  | ||||
|         default: | ||||
| @@ -61,23 +61,23 @@ void ImageReader::updateConfigForFilename( | ||||
|     static const std::map<std::string, std::function<void(ImageReaderProto*)>> | ||||
|         formats = { | ||||
|   // clang-format off | ||||
| 		{".adf",      [](auto* proto) { proto->mutable_img(); }}, | ||||
| 		{".d64",      [](auto* proto) { proto->mutable_d64(); }}, | ||||
| 		{".d81",      [](auto* proto) { proto->mutable_img(); }}, | ||||
| 		{".d88",      [](auto* proto) { proto->mutable_d88(); }}, | ||||
| 		{".dim",      [](auto* proto) { proto->mutable_dim(); }}, | ||||
| 		{".diskcopy", [](auto* proto) { proto->mutable_diskcopy(); }}, | ||||
| 		{".dsk",      [](auto* proto) { proto->mutable_img(); }}, | ||||
| 		{".fdi",      [](auto* proto) { proto->mutable_fdi(); }}, | ||||
| 		{".imd",      [](auto* proto) { proto->mutable_imd(); }}, | ||||
| 		{".img",      [](auto* proto) { proto->mutable_img(); }}, | ||||
| 		{".jv3",      [](auto* proto) { proto->mutable_jv3(); }}, | ||||
| 		{".nfd",      [](auto* proto) { proto->mutable_nfd(); }}, | ||||
| 		{".nsi",      [](auto* proto) { proto->mutable_nsi(); }}, | ||||
| 		{".st",       [](auto* proto) { proto->mutable_img(); }}, | ||||
| 		{".td0",      [](auto* proto) { proto->mutable_td0(); }}, | ||||
| 		{".vgi",      [](auto* proto) { proto->mutable_img(); }}, | ||||
| 		{".xdf",      [](auto* proto) { proto->mutable_img(); }}, | ||||
| 		{".adf",      [](auto* proto) { proto->set_type(ImageReaderProto::IMG); }}, | ||||
| 		{".d64",      [](auto* proto) { proto->set_type(ImageReaderProto::D64); }}, | ||||
| 		{".d81",      [](auto* proto) { proto->set_type(ImageReaderProto::IMG); }}, | ||||
| 		{".d88",      [](auto* proto) { proto->set_type(ImageReaderProto::D88); }}, | ||||
| 		{".dim",      [](auto* proto) { proto->set_type(ImageReaderProto::DIM); }}, | ||||
| 		{".diskcopy", [](auto* proto) { proto->set_type(ImageReaderProto::DISKCOPY); }}, | ||||
| 		{".dsk",      [](auto* proto) { proto->set_type(ImageReaderProto::IMG); }}, | ||||
| 		{".fdi",      [](auto* proto) { proto->set_type(ImageReaderProto::FDI); }}, | ||||
| 		{".imd",      [](auto* proto) { proto->set_type(ImageReaderProto::IMD); }}, | ||||
| 		{".img",      [](auto* proto) { proto->set_type(ImageReaderProto::IMG); }}, | ||||
| 		{".jv3",      [](auto* proto) { proto->set_type(ImageReaderProto::JV3); }}, | ||||
| 		{".nfd",      [](auto* proto) { proto->set_type(ImageReaderProto::NFD); }}, | ||||
| 		{".nsi",      [](auto* proto) { proto->set_type(ImageReaderProto::NSI); }}, | ||||
| 		{".st",       [](auto* proto) { proto->set_type(ImageReaderProto::IMG); }}, | ||||
| 		{".td0",      [](auto* proto) { proto->set_type(ImageReaderProto::TD0); }}, | ||||
| 		{".vgi",      [](auto* proto) { proto->set_type(ImageReaderProto::IMG); }}, | ||||
| 		{".xdf",      [](auto* proto) { proto->set_type(ImageReaderProto::IMG); }}, | ||||
|   // clang-format on | ||||
|     }; | ||||
|  | ||||
|   | ||||
| @@ -13,9 +13,9 @@ message Td0InputProto {} | ||||
| message DimInputProto {} | ||||
| message FdiInputProto {} | ||||
| message D88InputProto {} | ||||
| message NFDInputProto {} | ||||
| message NfdInputProto {} | ||||
|  | ||||
| // NEXT_TAG: 14 | ||||
| // NEXT_TAG: 15 | ||||
| message ImageReaderProto | ||||
| { | ||||
|     optional string filename = 1 [ (help) = "filename of input sector image" ]; | ||||
| @@ -24,18 +24,32 @@ message ImageReaderProto | ||||
|         default = false | ||||
|     ]; | ||||
|  | ||||
|     oneof format | ||||
|     { | ||||
|         ImgInputOutputProto img = 2; | ||||
|         DiskCopyInputProto diskcopy = 3; | ||||
|         ImdInputProto imd = 4; | ||||
|         Jv3InputProto jv3 = 5; | ||||
|         D64InputProto d64 = 6; | ||||
|         NsiInputProto nsi = 7; | ||||
|         Td0InputProto td0 = 8; | ||||
|         DimInputProto dim = 9; | ||||
|         FdiInputProto fdi = 10; | ||||
|         D88InputProto d88 = 11; | ||||
|         NFDInputProto nfd = 12; | ||||
|     } | ||||
| 	enum ImageReaderType { | ||||
| 		NOT_SET = 0; | ||||
| 		IMG = 1; | ||||
| 		DISKCOPY = 2; | ||||
| 		IMD = 3; | ||||
| 		JV3 = 4; | ||||
| 		D64 = 5; | ||||
| 		NSI = 6; | ||||
| 		TD0 = 7; | ||||
| 		DIM = 8; | ||||
| 		FDI = 9; | ||||
| 		D88 = 10; | ||||
| 		NFD = 11; | ||||
| 	} | ||||
|  | ||||
| 	optional ImageReaderType type = 14 [default = NOT_SET, (help) = "input image type"]; | ||||
|  | ||||
| 	optional ImgInputOutputProto img = 2; | ||||
| 	optional DiskCopyInputProto diskcopy = 3; | ||||
| 	optional ImdInputProto imd = 4; | ||||
| 	optional Jv3InputProto jv3 = 5; | ||||
| 	optional D64InputProto d64 = 6; | ||||
| 	optional NsiInputProto nsi = 7; | ||||
| 	optional Td0InputProto td0 = 8; | ||||
| 	optional DimInputProto dim = 9; | ||||
| 	optional FdiInputProto fdi = 10; | ||||
| 	optional D88InputProto d88 = 11; | ||||
| 	optional NfdInputProto nfd = 12; | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user