syntax = "proto3"; import "cmvr/api/common.proto"; package cmvr.api; message MicState { bool is_initialized = 1; bool is_running = 2; bool is_recording = 3; int32 volume = 4; string error_message = 5; } message MicrophoneInputDevice { string input_device = 1; string display_name = 2; string backend = 3; bool is_default = 4; } message ListMicrophoneDevicesCommand { message Request {} message Feedback { CommandHeader.Feedback header = 1; repeated MicrophoneInputDevice devices = 2; } } message GetMicStateCommand { message Request { CommandHeader.Request header = 1; } message Feedback { CommandHeader.Feedback header = 1; MicState state = 2; } } message StartMicRecordingCommand { message Request { CommandHeader.Request header = 1; string file_path = 2; string input_device = 3; } message Feedback { CommandHeader.Feedback header = 1; } } message StopMicRecordingCommand { message Request { CommandHeader.Request header = 1; } message Feedback { CommandHeader.Feedback header = 1; } } message PauseMicRecordingCommand { message Request { CommandHeader.Request header = 1; } message Feedback { CommandHeader.Feedback header = 1; } } message ResumeMicRecordingCommand { message Request { CommandHeader.Request header = 1; } message Feedback { CommandHeader.Feedback header = 1; } } message StreamMicAudioCommand { message Request { CommandHeader.Request header = 1; string input_device = 2; } message Feedback { CommandHeader.Feedback header = 1; AudioData audio = 2; } } message SetMicPhoneVolumeCommand { message Request { CommandHeader.Request header = 1; int32 volume = 2; } message Feedback { CommandHeader.Feedback header = 1; } } message GetMicPhoneVolumeCommand { message Request { CommandHeader.Request header = 1; } message Feedback { CommandHeader.Feedback header = 1; int32 volume = 2; } }