-
Notifications
You must be signed in to change notification settings - Fork 4
/
audio.proto
44 lines (37 loc) · 1.25 KB
/
audio.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
syntax = "proto3";
import "google/protobuf/empty.proto";
package oak.platform;
// Configure audio devices that are connected to the host
// Currently, only audio output devices are supported.
//
// Microphones are not supported.
//
// 'mixer_id' values come from the available ports on the host
// device regardless of whether an audio device is connected.
service Audio {
// Lists available mixers which correspond to connected audio
// devices; also shows the current configuration, i.e. volume and
// mute settings
// You may have to guess-and-check to determine which mixer
// corresponds to the physical device you want to control.
rpc Info (google.protobuf.Empty) returns (AudioInformation) {}
// Applies configuration to an audio device, i.e. change the volume
rpc Configure (AudioConfigurationRequest) returns (google.protobuf.Empty) {}
}
message AudioInformation {
repeated Mixer mixers = 1;
message Mixer {
string mixer_id = 1;
AudioConfiguration configuration = 2;
}
}
message AudioConfigurationRequest {
string mixer_id = 1;
AudioConfiguration configuration = 2;
}
message AudioConfiguration {
bool mute = 1;
// Must be between 0 and 100 inclusive
// 0 is effectively mute and 100 is maximum volume
uint32 volume = 2;
}