spirc.proto 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. message Frame {
  2. optional uint32 version = 0x1;
  3. optional string ident = 0x2;
  4. optional string protocol_version = 0x3;
  5. optional uint32 seq_nr = 0x4;
  6. optional MessageType typ = 0x5;
  7. optional DeviceState device_state = 0x7;
  8. optional Goodbye goodbye = 0xb;
  9. optional State state = 0xc;
  10. optional uint32 position = 0xd;
  11. optional uint32 volume = 0xe;
  12. optional int64 state_update_id = 0x11;
  13. repeated string recipient = 0x12;
  14. optional bytes context_player_state = 0x13;
  15. }
  16. enum MessageType {
  17. kMessageTypeHello = 0x1;
  18. kMessageTypeGoodbye = 0x2;
  19. kMessageTypeProbe = 0x3;
  20. kMessageTypeNotify = 0xa;
  21. kMessageTypeLoad = 0x14;
  22. kMessageTypePlay = 0x15;
  23. kMessageTypePause = 0x16;
  24. kMessageTypePlayPause = 0x17;
  25. kMessageTypeSeek = 0x18;
  26. kMessageTypePrev = 0x19;
  27. kMessageTypeNext = 0x1a;
  28. kMessageTypeVolume = 0x1b;
  29. kMessageTypeShuffle = 0x1c;
  30. kMessageTypeRepeat = 0x1d;
  31. kMessageTypeVolumeDown = 0x1f;
  32. kMessageTypeVolumeUp = 0x20;
  33. kMessageTypeReplace = 0x21;
  34. kMessageTypeLogout = 0x22;
  35. kMessageTypeAction = 0x23;
  36. }
  37. message DeviceState {
  38. optional string sw_version = 0x1;
  39. optional bool is_active = 0xa;
  40. optional bool can_play = 0xb;
  41. optional uint32 volume = 0xc;
  42. optional string name = 0xd;
  43. optional uint32 error_code = 0xe;
  44. optional int64 became_active_at = 0xf;
  45. optional string error_message = 0x10;
  46. repeated Capability capabilities = 0x11;
  47. repeated string local_uris = 0x12;
  48. repeated int32 enc_key = 0x13;
  49. }
  50. message Capability {
  51. optional CapabilityType typ = 0x1;
  52. repeated int64 intValue = 0x2;
  53. repeated string stringValue = 0x3;
  54. }
  55. enum CapabilityType {
  56. kSupportedContexts = 0x1;
  57. kCanBePlayer = 0x2;
  58. kRestrictToLocal = 0x3;
  59. kDeviceType = 0x4;
  60. kGaiaEqConnectId = 0x5;
  61. kSupportsLogout = 0x6;
  62. kIsObservable = 0x7;
  63. kVolumeSteps = 0x8;
  64. kSupportedTypes = 0x9;
  65. }
  66. message Goodbye {
  67. optional string reason = 0x1;
  68. }
  69. message State {
  70. optional string context_uri = 0x2;
  71. optional uint32 index = 0x3;
  72. optional uint32 position_ms = 0x4;
  73. optional PlayStatus status = 0x5;
  74. optional uint64 position_measured_at = 0x7;
  75. optional string context_description = 0x8;
  76. optional bool shuffle = 0xd;
  77. optional bool repeat = 0xe;
  78. optional string last_command_ident = 0x14;
  79. optional uint32 last_command_msgid = 0x15;
  80. optional bool playing_from_fallback = 0x18;
  81. optional uint32 row = 0x19;
  82. optional uint32 playing_track_index = 0x1a;
  83. repeated TrackRef track = 0x1b;
  84. optional Ad ad = 0x1c;
  85. }
  86. enum PlayStatus {
  87. kPlayStatusStop = 0x0;
  88. kPlayStatusPlay = 0x1;
  89. kPlayStatusPause = 0x2;
  90. kPlayStatusLoading = 0x3;
  91. }
  92. message TrackRef {
  93. optional bytes gid = 0x1;
  94. optional string uri = 0x2;
  95. optional bool queued = 0x3;
  96. optional string context = 0x4;
  97. }
  98. message Ad {
  99. optional int32 next = 0x1;
  100. optional bytes ogg_fid = 0x2;
  101. optional bytes image_fid = 0x3;
  102. optional int32 duration = 0x4;
  103. optional string click_url = 0x5;
  104. optional string impression_url = 0x6;
  105. optional string product = 0x7;
  106. optional string advertiser = 0x8;
  107. optional bytes gid = 0x9;
  108. }