@@ -18,6 +18,7 @@ message Device {
1818 DeviceInfo device_info = 1 ;
1919 PlayerState player_state = 2 ;
2020 PrivateDeviceInfo private_device_info = 3 ;
21+ bytes transfer_data = 4 ; // TransferState
2122}
2223
2324message Cluster {
@@ -26,6 +27,10 @@ message Cluster {
2627 PlayerState player_state = 3 ;
2728 map <string , DeviceInfo > device = 4 ;
2829 bytes transfer_data = 5 ;
30+ uint64 transfer_data_timestamp = 6 ;
31+ int64 not_playing_since_timestamp = 7 ;
32+ bool need_full_player_state = 8 ;
33+ int64 server_timestamp_ms = 9 ;
2934}
3035
3136message PutStateRequest {
@@ -52,6 +57,10 @@ message SubscribeRequest {
5257}
5358
5459message DeviceInfo {
60+ message DeviceAliasesEntry {
61+ uint32 key = 1 ;
62+ DeviceAlias value = 2 ;
63+ }
5564 bool can_play = 1 ;
5665 uint32 volume = 2 ;
5766 string name = 3 ;
@@ -66,6 +75,19 @@ message DeviceInfo {
6675 string brand = 14 ;
6776 string model = 15 ;
6877 map <string , string > metadata_map = 16 ;
78+ string product_id = 17 ;
79+ string deduplication_id = 18 ;
80+ uint32 selected_alias_id = 19 ;
81+ repeated DeviceAliasesEntry device_aliases = 20 ;
82+ bool is_offline = 21 ;
83+ string public_ip = 22 ;
84+ string license = 23 ;
85+ }
86+
87+ message DeviceAlias {
88+ uint32 id = 1 ;
89+ string name = 2 ;
90+ bool is_group = 3 ;
6991}
7092
7193message Capabilities {
@@ -90,9 +112,18 @@ message Capabilities {
90112 bool is_voice_enabled = 21 ;
91113 bool needs_full_player_state = 22 ;
92114 bool supports_gzip_pushes = 23 ;
115+ bool supports_lossless_audio = 24 ;
116+ bool supports_set_options_command = 25 ;
117+ CapabilitySupportDetails supports_hifi = 26 ;
93118 // reserved 1, "supported_contexts";
94119}
95120
121+ message CapabilitySupportDetails {
122+ bool fully_supported = 1 ;
123+ bool user_eligible = 2 ;
124+ bool device_supported = 3 ;
125+ }
126+
96127message ConnectCommandOptions {
97128 int32 message_id = 1 ;
98129}
@@ -135,19 +166,25 @@ enum PutStateReason {
135166 VOLUME_CHANGED = 5 ;
136167 PICKER_OPENED = 6 ;
137168 BECAME_INACTIVE = 7 ;
169+ ALIAS_CHANGED = 8 ;
138170}
139171
140172enum MemberType {
141173 SPIRC_V2 = 0 ;
142174 SPIRC_V3 = 1 ;
143175 CONNECT_STATE = 2 ;
176+ CONNECT_STATE_EXTENDED = 5 ;
177+ ACTIVE_DEVICE_TRACKER = 6 ;
178+ PLAY_TOKEN = 7 ;
144179}
145180
146181enum ClusterUpdateReason {
147182 UNKNOWN_CLUSTER_UPDATE_REASON = 0 ;
148183 DEVICES_DISAPPEARED = 1 ;
149184 DEVICE_STATE_CHANGED = 2 ;
150185 NEW_DEVICE_APPEARED = 3 ;
186+ DEVICE_VOLUME_CHANGED = 4 ;
187+ DEVICE_ALIAS_CHANGED = 5 ;
151188}
152189
153190enum DeviceType {
0 commit comments