first commit
This commit is contained in:
301
libmaestro/proto/maestro_pw.proto
Normal file
301
libmaestro/proto/maestro_pw.proto
Normal file
@@ -0,0 +1,301 @@
|
||||
syntax = "proto3";
|
||||
|
||||
package maestro_pw;
|
||||
|
||||
import "google/protobuf/empty.proto";
|
||||
|
||||
|
||||
/* -- Maestro Service --------------------------------------------------------------------------- */
|
||||
|
||||
message SoftwareInfo {
|
||||
int32 unknown2 = 2;
|
||||
FirmwareInfo firmware = 4;
|
||||
fixed64 unknown5 = 5;
|
||||
bool unknown6 = 6;
|
||||
}
|
||||
|
||||
message FirmwareInfo {
|
||||
// Note: order might not be correct
|
||||
FirmwareVersion case = 1;
|
||||
FirmwareVersion right = 2;
|
||||
FirmwareVersion left = 3;
|
||||
}
|
||||
|
||||
message FirmwareVersion {
|
||||
string unknown = 1;
|
||||
string version_string = 2;
|
||||
}
|
||||
|
||||
message HardwareInfo {
|
||||
int32 unknown1 = 1;
|
||||
int32 unknown2 = 2;
|
||||
int32 unknown5 = 5;
|
||||
int32 unknown6 = 6;
|
||||
SerialNumbers serial_number = 7;
|
||||
}
|
||||
|
||||
message SerialNumbers {
|
||||
string case = 1;
|
||||
string right = 2;
|
||||
string left = 3;
|
||||
}
|
||||
|
||||
message RuntimeInfo {
|
||||
int64 timestamp_ms = 2; // maybe unix time in ms (consistent ~60s difference to actual time)
|
||||
int32 unknown3 = 3;
|
||||
BatteryInfo battery_info = 6;
|
||||
PlacementInfo placement = 7;
|
||||
}
|
||||
|
||||
message BatteryInfo {
|
||||
DeviceBatteryInfo case = 1;
|
||||
DeviceBatteryInfo left = 2;
|
||||
DeviceBatteryInfo right = 3;
|
||||
}
|
||||
|
||||
message DeviceBatteryInfo {
|
||||
int32 level = 1; // battery level in percent
|
||||
BatteryState state = 2;
|
||||
}
|
||||
|
||||
enum BatteryState {
|
||||
BATTERY_STATE_UNKNOWN = 0;
|
||||
BATTERY_NOT_CHARGING = 1;
|
||||
BATTERY_CHARGING = 2;
|
||||
}
|
||||
|
||||
message PlacementInfo {
|
||||
bool right_bud_in_case = 1;
|
||||
bool left_bud_in_case = 2;
|
||||
}
|
||||
|
||||
message WallClockMsg {
|
||||
// TODO
|
||||
}
|
||||
|
||||
message ReadSettingMsg {
|
||||
oneof value_oneof {
|
||||
AllegroSettingType settings_id = 4;
|
||||
}
|
||||
}
|
||||
|
||||
enum AllegroSettingType {
|
||||
ALLEGRO_SETTING_TYPE_UNKNOWN = 0;
|
||||
ALLEGRO_AUTO_OTA_ENABLE = 1;
|
||||
ALLEGRO_OHD_ENABLE = 2;
|
||||
ALLEGRO_OOBE_IS_FINISHED = 3;
|
||||
ALLEGRO_GESTURE_ENABLE = 4;
|
||||
ALLEGRO_DIAGNOSTICS_ENABLE = 5;
|
||||
ALLEGRO_OOBE_MODE = 6;
|
||||
ALLEGRO_GESTURE_CONTROL = 7;
|
||||
ALLEGRO_ANC_ACCESSIBILITY_MODE = 8;
|
||||
ALLEGRO_ANCR_STATE_ONE_BUD = 9;
|
||||
ALLEGRO_ANCR_STATE_TWO_BUDS = 10;
|
||||
ALLEGRO_MULTIPOINT_ENABLE = 11;
|
||||
ALLEGRO_ANCR_GESTURE_LOOP = 12;
|
||||
ALLEGRO_CURRENT_ANCR_STATE = 13;
|
||||
ALLEGRO_OTTS_MODE = 14;
|
||||
ALLEGRO_VOLUME_EQ_ENABLE = 15;
|
||||
ALLEGRO_CURRENT_USER_EQ = 16;
|
||||
ALLEGRO_VOLUME_ASYMMETRY = 17;
|
||||
ALLEGRO_LAST_SAVED_USER_EQ = 18;
|
||||
}
|
||||
|
||||
message WriteSettingMsg {
|
||||
oneof value_oneof {
|
||||
SettingValue setting = 4;
|
||||
}
|
||||
}
|
||||
|
||||
message SettingsRsp {
|
||||
oneof value_oneof {
|
||||
SettingValue value = 4;
|
||||
}
|
||||
}
|
||||
|
||||
message SettingValue {
|
||||
oneof value_oneof {
|
||||
bool auto_ota_enable = 1;
|
||||
bool ohd_enable = 2; // on-head detection
|
||||
bool oobe_is_finished = 3; // out-of-box experience?
|
||||
bool gesture_enable = 4;
|
||||
bool diagnostics_enable = 5;
|
||||
bool oobe_mode = 6;
|
||||
GestureControl gesture_control = 7;
|
||||
// reading anc_accessibility_mode returns non-zero status (code: 2)
|
||||
// reading ancr_state_one_bud returns non-zero status (code: 2)
|
||||
// reading ancr_state_two_buds returns non-zero status (code: 2)
|
||||
bool multipoint_enable = 11;
|
||||
AncrGestureLoop ancr_gesture_loop = 12;
|
||||
AncState current_ancr_state = 13;
|
||||
int32 otts_mode = 14; // might be bool
|
||||
bool volume_eq_enable = 15;
|
||||
EqBands current_user_eq = 16;
|
||||
int32 volume_asymmetry = 17; // value goes from 0 t0 200 (incl.), even/odd indicates left/right
|
||||
// reading last_saved_user_eq returns non-zero status (code: 2)
|
||||
bool sum_to_mono = 19;
|
||||
// id 20 does not seem to exist (yet?)
|
||||
bool volume_exposure_notifications = 21;
|
||||
bool speech_detection = 22;
|
||||
}
|
||||
}
|
||||
|
||||
message GestureControl {
|
||||
DeviceGestureControl left = 1;
|
||||
DeviceGestureControl right = 2;
|
||||
}
|
||||
|
||||
message DeviceGestureControl {
|
||||
oneof value_oneof {
|
||||
GestureControlType type = 4;
|
||||
}
|
||||
}
|
||||
|
||||
message GestureControlType {
|
||||
RegularActionTarget value = 1;
|
||||
}
|
||||
|
||||
enum RegularActionTarget {
|
||||
ACTION_TARGET_UNKNOWN = 0;
|
||||
ACTION_TARGET_CHECK_NOTIFICATIONS = 1;
|
||||
ACTION_TARGET_PREVIOUS_TRACK_REPEAT = 2;
|
||||
ACTION_TARGET_NEXT_TRACK = 3;
|
||||
ACTION_TARGET_PLAY_PAUSE_TRACK = 4;
|
||||
ACTION_TARGET_ANC_CONTROL = 5;
|
||||
ACTION_TARGET_ASSISTANT_QUERY = 6;
|
||||
}
|
||||
|
||||
message AncrGestureLoop {
|
||||
bool active = 1;
|
||||
bool off = 2;
|
||||
bool aware = 3;
|
||||
bool adaptive = 4;
|
||||
}
|
||||
|
||||
enum AncState {
|
||||
ANC_STATE_UNKNOWN = 0;
|
||||
ANC_STATE_OFF = 1;
|
||||
ANC_STATE_ACTIVE = 2;
|
||||
ANC_STATE_AWARE = 3;
|
||||
ANC_STATE_ADAPTIVE = 4;
|
||||
}
|
||||
|
||||
message EqBands {
|
||||
// bands go from -6.0 to 6.0
|
||||
float low_bass = 1;
|
||||
float bass = 2;
|
||||
float mid = 3;
|
||||
float treble = 4;
|
||||
float upper_treble = 5;
|
||||
}
|
||||
|
||||
message OobeActionRsp {
|
||||
OobeAction action = 1;
|
||||
}
|
||||
|
||||
enum OobeAction {
|
||||
OOBE_ACTION_UNKNOWN = 0;
|
||||
OOBE_ACTION_SINGLE_TAP = 1;
|
||||
OOBE_ACTION_DOUBLE_TAP = 2;
|
||||
OOBE_ACTION_TRIPLE_TAP = 3;
|
||||
OOBE_ACTION_HOLD = 4;
|
||||
OOBE_ACTION_SWIPE_FORWARD = 5;
|
||||
OOBE_ACTION_SWIPE_BACKWARD = 6;
|
||||
OOBE_ACTION_SWIPE_UP = 7;
|
||||
OOBE_ACTION_SWIPE_DOWN = 8;
|
||||
OOBE_ACTION_HOTWORD = 9;
|
||||
OOBE_ACTION_LEFT_ON_HEAD = 10;
|
||||
OOBE_ACTION_LEFT_OFF_HEAD = 11;
|
||||
OOBE_ACTION_RIGHT_ON_HEAD = 12;
|
||||
OOBE_ACTION_RIGHT_OFF_HEAD = 13;
|
||||
OOBE_ACTION_SPECULATIVE_TAP = 14;
|
||||
OOBE_ACTION_HOLD_END = 15;
|
||||
OOBE_ACTION_HOLD_CANCEL = 16;
|
||||
}
|
||||
|
||||
service Maestro {
|
||||
rpc GetSoftwareInfo(google.protobuf.Empty) returns (SoftwareInfo) {}
|
||||
rpc GetHardwareInfo(google.protobuf.Empty) returns (HardwareInfo) {}
|
||||
rpc SubscribeRuntimeInfo(google.protobuf.Empty) returns (stream RuntimeInfo) {}
|
||||
rpc SetWallClock(WallClockMsg) returns (google.protobuf.Empty) {}
|
||||
rpc WriteSetting(WriteSettingMsg) returns (google.protobuf.Empty) {}
|
||||
rpc ReadSetting(ReadSettingMsg) returns (SettingsRsp) {}
|
||||
rpc SubscribeToSettingsChanges(google.protobuf.Empty) returns (stream SettingsRsp) {}
|
||||
rpc SubscribeToOobeActions(google.protobuf.Empty) returns (stream OobeActionRsp) {}
|
||||
}
|
||||
|
||||
|
||||
/* -- Multipoint Service ------------------------------------------------------------------------ */
|
||||
|
||||
message QuietModeStatusEvent {
|
||||
int32 source = 1;
|
||||
}
|
||||
|
||||
message ForceMultipointSwitchMsg {
|
||||
// TODO
|
||||
}
|
||||
|
||||
service Multipoint {
|
||||
rpc SubscribeToQuietModeStatus(google.protobuf.Empty) returns (stream QuietModeStatusEvent) {}
|
||||
rpc ForceMultipointSwitch(ForceMultipointSwitchMsg) returns (google.protobuf.Empty) {}
|
||||
}
|
||||
|
||||
|
||||
/* -- EartipFitTest Service --------------------------------------------------------------------- */
|
||||
|
||||
message StartEartipFitTestMsg {
|
||||
// TODO
|
||||
}
|
||||
|
||||
message EndEartipFitTestMsg {
|
||||
// TODO
|
||||
}
|
||||
|
||||
message SubscribeToEartipFitTestResultsMsg {
|
||||
// TODO
|
||||
}
|
||||
|
||||
message EartipFitTestResult {
|
||||
// TODO
|
||||
}
|
||||
|
||||
service EartipFitTest {
|
||||
rpc StartTest(StartEartipFitTestMsg) returns (google.protobuf.Empty) {}
|
||||
rpc EndTest(StartEartipFitTestMsg) returns (google.protobuf.Empty) {}
|
||||
rpc SubscribeToResults(SubscribeToEartipFitTestResultsMsg) returns (stream EartipFitTestResult) {}
|
||||
}
|
||||
|
||||
|
||||
/* -- JitterBuffer Service ---------------------------------------------------------------------- */
|
||||
|
||||
message SetJitterBufferSizePreferenceMsg {
|
||||
// TODO
|
||||
}
|
||||
|
||||
service JitterBuffer {
|
||||
rpc SetJitterBufferSizePreference(SetJitterBufferSizePreferenceMsg) returns (google.protobuf.Empty) {}
|
||||
}
|
||||
|
||||
|
||||
/* -- Dosimeter Service ------------------------------------------------------------------------- */
|
||||
|
||||
message DosimeterSummaryEntry {
|
||||
int32 unknown1 = 1;
|
||||
float unknown6 = 6;
|
||||
}
|
||||
|
||||
message DosimeterSummary {
|
||||
int32 unknown1 = 1;
|
||||
repeated DosimeterSummaryEntry unknown2 = 2;
|
||||
int32 unknown4 = 4;
|
||||
float unknown5 = 5;
|
||||
}
|
||||
|
||||
message DosimeterLiveDbMsg {
|
||||
float intensity = 2; // convert to dB via log10(x) * 10
|
||||
}
|
||||
|
||||
service Dosimeter {
|
||||
rpc FetchDailySummaries(google.protobuf.Empty) returns (DosimeterSummary) {}
|
||||
rpc SubscribeToLiveDb(google.protobuf.Empty) returns (DosimeterLiveDbMsg) {}
|
||||
}
|
||||
Reference in New Issue
Block a user