STATE INFORMATION EXCHANGE AMONG CONNECTED DEVICES
A system comprises a plurality of playback devices. Each playback device comprises one or more processors; and one or more storage devices that comprise instruction code that is executable by at least one of the one or more processors. Instruction code executed by one or more processors of a particular primary playback device (PPD) causes the particular PPD to: receive state information from a particular secondary playback device (SPD). The state information specifies a state associated with at least one aspect of the particular SPD. After receiving a subscription from one or more other PPDs for the state of the particular aspect of the particular SPD, the particular PPD communicates the state information that specifies the state of the particular aspect of the particular SPD to the one or more other PPDs.
1 - 22 . (canceled)
23 . A system comprising a plurality of playback devices, wherein each playback device comprises:
one or more processors; and
one or more storage devices that comprise instruction code that is executable by at least one of the one or more processors,
wherein instruction code executed by one or more processors of a particular primary playback device (PPD) causes the particular PPD to:
receive state information from a particular secondary playback device (SPD), wherein the state information specifies a state associated with at least one aspect of the particular SPD, and
after receiving a subscription from one or more other PPDs for the state of the particular aspect of the particular SPD, communicate the state information that specifies the state of the particular aspect of the particular SPD to the one or more other PPDs.
24 . The system according to claim 23 , further comprising a plurality of PPDs, wherein the instruction code that causes the particular PPD to communicate the state information to one or more other PPDs causes the particular PPD to:
communicate the state information that specifies the state of the particular aspect of the particular SPD to every PPD of the plurality of PPDs.
25 . The system according to claim 23 , wherein instruction code executed by one or more processors of the particular SPD causes the particular SPD to:
after the state of the particular aspect of the SPD has changed, communicate the state information that specifies the state of the particular aspect of the SPD to the PPD.
26 . The system according to claim 23 , wherein the instruction code executed by the one or more processors of the particular PPD causes the particular PPD to:
receive a subscription from the particular SPD for the state associated with a particular aspect of one or more other playback devices;
communicate a subscription to one or more other PPDs for the state associated with the particular aspect of the one or more other playback devices;
receive the state information associated with the subscription from the one or more other PPDs; and
communicate the state information to the particular SPD.
27 . The system according to claim 23 , further comprising:
a plurality of PPDs; and
a plurality of SPDs, wherein each PPD of the plurality of PPDs is grouped with a different subset of the plurality of SPDs, and wherein the PPD of each group communicates timing information to the SPDs of the group to facilitate playback of audio content on the playback devices of the group in synchrony.
28 . The system according to claim 23 , wherein the state information comprises a multilevel syntax that specifies the at least one aspect of the particular SPD and a corresponding state of the at least one aspect, and wherein the subscription comprises a multilevel syntax that specifies the particular aspect for which the state is desired.
29 . The system according to claim 28 , wherein the multilevel syntax comprises one or more wildcards.
30 . The system according to claim 29 , wherein the multilevel syntax uniquely identifies a particular playback device.
31 . The system according to claim 23 , wherein each of the plurality of devices specifies different categories of state information, wherein a first category of state information of each of the plurality of devices is propagated to each other playback device of the plurality of playback devices via the particular PPD and the one or more other PPDs.
32 . The system according to claim 31 , wherein the first category of state information specifies a network address of a playback device.
33 . The system according to claim 31 , wherein a second category of state information of each of the plurality of devices is propagated only to the particular PPD and the one or more other PPDs.
34 . The system according to claim 33 , wherein the second category of state information specifies a battery level of a playback device.
35 . A system comprising a plurality of playback devices, wherein each playback device comprises:
one or more processors; and
one or more storage devices that comprise instruction code that is executable by at least one of the one or more processors,
wherein instruction code executed by one or more processors of a particular primary playback device (PPD) causes the particular PPD to:
receive state information from a particular secondary playback device (SPD), wherein the state information specifies a state associated with at least one aspect of the particular SPD, and
after receiving a subscription from one or more global state aggregation devices (GSADs) for the state of the particular aspect of the particular SPD, communicate the state information that specifies the state of the particular aspect of the particular SPD to the one or more GSADs,
wherein instruction code executed by one or more processors of the one or more GSADs causes the one or more GSADs to:
after receiving a subscription from one or more other GSADs for the state of the particular aspect of the particular SPD, communicate the state information to the one or more other GSADS.
36 . The system according to claim 35 , further comprising a plurality of GSADs, wherein the instruction code that causes the one or more GSADs to communicate the state information to the one or more other GSADs causes the one or more GSADs to:
communicate the state information that specifies the state of the particular aspect of the particular SPD to every GSAD of the plurality of GSADs.
37 . The system according to claim 35 , wherein the instruction code executed by the one or more processors of the particular PPD causes the particular PPD to:
after receiving a subscription from the particular SPD for the state associated with a particular aspect of another playback device, communicate the subscription to the one or more GSADs, and
after receiving state information from the one or more GSADs associated with the subscription, communicate the state information to the particular SPD.
38 . The system according to claim 35 , further comprising:
a plurality of PPDs; and
a plurality of GSADs, wherein every GSAD of the plurality of GSADs communicates subscriptions to every PPD of the plurality of the PPDs and every PPD of the plurality of the PPDs communicates subscriptions to every GSAD of the plurality of GSADs.
39 . The system according to claim 35 , further comprising:
a plurality of PPDs; and
a plurality of GSADs, wherein every GSAD of the plurality of GSADs communicates subscriptions to every other GSAD of the plurality of GSADs and each PPD of the plurality of the PPDs communicates subscriptions to a single GSAD of the plurality of GSADs.
40 . The system according to claim 35 , wherein a first plurality of playback devices are capable of simultaneously operating as both a PPD and a GSAD, wherein the instruction code executed by one or more processors of a particular playback device of the first plurality of playback devices causes the particular playback device to:
determine a rank based on one or more attributes of the particular playback device;
after the rank of the particular playback device is determined to be higher than a rank of a second playback device of the first plurality of playback devices, operate as a GSAD; and
after the rank of the particular playback device is determined to be lower than the rank of the second playback device, operate as a PPD and allow the second playback device to operate as a GSAD.
41 . The system according to claim 40 , wherein the one or more playback device attributes correspond to one or more of: a type of the particular playback device, a storage capacity of the playback device, a location of the particular playback device, and a network identifier of the particular playback device.
42 . A playback device comprising:
one or more processors; and
one or more storage devices that comprise instruction code that is executable by at least one of the one or more processors,
wherein the playback device corresponds to a primary playback device (PPD) and wherein instruction code executed by one or more processors of the playback device causes the playback device to:
receive state information from a particular secondary playback device (SPD), wherein the state information specifies a state associated with at least one aspect of the particular SPD, and
after receiving a subscription from one or more other PPDs for the state of the particular aspect of the particular SPD, communicate the state information that specifies the state of the particular aspect of the particular SPD to the one or more other PPDs.