1 // Used to serialize state between runs. Currently only audio input mappings,
2 // but in theory we could do the entire mix, video inputs, etc.
6 // Similar to DeviceSpec, but only devices that are used are stored,
7 // and contains additional information that will help us try to map
8 // to the right device even if the devices have moved around.
9 message DeviceSpecProto {
10 // Members from DeviceSpec itself.
11 enum InputSourceType { SILENCE = 0; CAPTURE_CARD = 1; ALSA_INPUT = 2; FFMPEG_VIDEO_INPUT = 3; };
12 optional InputSourceType type = 1;
13 optional int32 index = 2;
15 // Additional information.
16 optional string display_name = 3;
17 optional string alsa_name = 4; // Only for ALSA devices.
18 optional string alsa_info = 5; // Only for ALSA devices.
19 optional int32 num_channels = 6; // Only for ALSA devices.
20 optional string address = 7; // Only for ALSA devices.
22 // This isn't strictly part of the _mapping_, but it fits in fairly naturally.
23 // Positive means the audio is delayed, negative means we try to have it earlier
24 // (although we can't time-travel!).
25 optional float extra_delay_ms = 8;
28 // Corresponds to InputMapping::Bus.
30 optional string name = 1;
31 optional int32 device_index = 2; // Index into the "devices" array.
32 optional int32 source_channel_left = 3;
33 optional int32 source_channel_right = 4;
36 // Corresponds to InputMapping.
37 message InputMappingProto {
38 repeated DeviceSpecProto device = 1;
39 repeated BusProto bus = 2;