Voice Input Device
To be able to send voice commands, the client first sends a RegisterVoiceInputDeviceMessage
.
syntax = "proto2";
import "ProtocolMessage.proto";
import "VoiceInputDeviceDescriptor.proto";
extend ProtocolMessage {
optional RegisterVoiceInputDeviceMessage registerVoiceInputDeviceMessage = 33;
}
message RegisterVoiceInputDeviceMessage {
optional VoiceInputDeviceDescriptor deviceDescriptor = 1;
}
syntax = "proto2";
import "AudioFormatSettings.proto";
message VoiceInputDeviceDescriptor {
optional AudioFormatSettings defaultFormat = 1;
repeated AudioFormatSettings supportedFormats = 2;
}
syntax = "proto2";
message AudioFormatSettings {
optional bytes formatSettingsPlistData = 1;
}
CLIENT -> SERVER
type: REGISTER_VOICE_INPUT_DEVICE_MESSAGE identifier: "1946D664-A029-45E3-B954-84FA07BDEC71" priority: 0 33 { 1 { 1 { 1: "bplist00\323\001\002\003\004\005\006_\020\017AVSampleRateKey]AVFormatIDKey_\020\025AVNumberOfChannelsKey#@\317@\000\000\000\000\000\022opus\020\001\010\017!/GPU\000\000\000\000\000\000\001\001\000\000\000\000\000\000\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000W" } 2 { 1: "bplist00\323\001\002\003\004\005\006_\020\017AVSampleRateKey]AVFormatIDKey_\020\025AVNumberOfChannelsKey#@\317@\000\000\000\000\000\022opus\020\001\010\017!/GPU\000\000\000\000\000\000\001\001\000\000\000\000\000\000\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000W" } } }
The Apple TV answers with a RegisterVoiceInputDeviceResponseMessage
syntax = "proto2";
import "ProtocolMessage.proto";
extend ProtocolMessage {
optional RegisterVoiceInputDeviceResponseMessage registerVoiceInputDeviceResponseMessage = 34;
}
message RegisterVoiceInputDeviceResponseMessage {
optional int32 deviceID = 1;
optional int32 errorCode = 2;
}
SERVER -> CLIENT
type: REGISTER_VOICE_INPUT_DEVICE_RESPONSE_MESSAGE identifier: "1946D664-A029-45E3-B954-84FA07BDEC71" priority: 0 [registerVoiceInputDeviceResponseMessage] { deviceID: 5 errorCode: 0 }