syntax = "proto2";

import "lib/common.proto";

message HardwareFluxSinkProto {}

message AuFluxSinkProto {
	optional string directory = 1  [default = "aufiles", (help) = "directory to write .au files to"];
	optional bool index_markers = 2 [default = true, (help) = "show index markers in the right-hand channel"];
}

message A2RFluxSinkProto {
	optional string filename = 1       [default = "flux.a2r", (help) = ".a2r file to write to"];
}

message VcdFluxSinkProto {
	optional string directory = 1 	   [default = "vcdfiles", (help) = "directory to write .vcd files to"];
}

message ScpFluxSinkProto {
	optional string filename = 2       [default = "flux.scp", (help) = ".scp file to write to"];
	optional bool align_with_index = 3 [default = false, (help) = "discard data before the first index pulse"];
	optional int32 type_byte = 4       [default = 0xff, (help) = "set the SCP disk type byte"];
}

message Fl2FluxSinkProto {
	optional string filename = 1       [default = "flux.fl2", (help) = ".fl2 file to write to"];
}

// Next: 10
message FluxSinkProto {
	optional FluxSourceSinkType type = 9
		[default = FLUXTYPE_NOT_SET, (help) = "flux sink type"];

	optional HardwareFluxSinkProto drive = 2;
	optional A2RFluxSinkProto a2r = 8;
	optional AuFluxSinkProto au = 3;
	optional VcdFluxSinkProto vcd = 4;
	optional ScpFluxSinkProto scp = 5;
	optional Fl2FluxSinkProto fl2 = 6;
}

