PHP Class duncan3dc\Sonos\Controller

Although sometimes a Controller is synonymous with a Speaker, when speakers are grouped together only the coordinator can receive events (play/pause/etc)
Inheritance: extends duncan3dc\Sonos\Speaker
Show file Open project: duncan3dc/sonos Class Usage Examples

Protected Properties

Property Type Description
$network Network The network instance this Controller is part of.

Public Methods

Method Description
__construct ( duncan3dc\Sonos\Speaker $speaker, Network $network ) Create a Controller instance from a speaker.
addSpeaker ( duncan3dc\Sonos\Speaker $speaker ) : static Adds the specified speaker to the group of this Controller.
adjustVolume ( integer $adjust ) : static Adjust the volume of all the speakers controlled by this Controller.
exportState ( boolean $pause = true ) : duncan3dc\Sonos\ControllerState Grab the current state of the Controller (including it's queue and playing attributes).
getCrossfade ( ) : boolean Check if crossfade is currently active.
getMediaInfo ( ) : array Get the currently active media info.
getMode ( ) : array Get the current play mode settings.
getNetwork ( ) : Network Get the network instance used by this controller.
getQueue ( ) : Queue Get the queue for this controller.
getRepeat ( ) : boolean Check if repeat is currently active.
getShuffle ( ) : boolean Check if shuffle is currently active.
getSpeakers ( ) : duncan3dc\Sonos\Speaker[] Get the speakers that are in the group of this controller.
getState ( ) : integer Get the current state of the group of speakers.
getStateDetails ( ) : State Get attributes about the currently active track in the queue.
getStateName ( ) : string Get the current state of the group of speakers as the string reported by sonos: PLAYING, PAUSED_PLAYBACK, etc
interrupt ( duncan3dc\Sonos\Tracks\UriInterface $track, integer $volume = null ) : static Interrupt the current audio with a track.
isCoordinator ( ) : boolean Check if this speaker is the coordinator of it's current group.
isStreaming ( ) : boolean Check if this controller is currently playing a stream.
isUsingQueue ( ) : boolean Check if this controller is currently using its queue.
next ( ) : static Skip to the next track in the current queue.
pause ( ) : static Pause the group.
play ( ) : static Start playing the active music for this group.
previous ( ) : static Skip back to the previous track in the current queue.
removeSpeaker ( duncan3dc\Sonos\Speaker $speaker ) : static Removes the specified speaker from the group of this Controller.
restoreState ( duncan3dc\Sonos\ControllerState $state ) : static Restore the Controller to a previously exported state.
seek ( integer $seconds ) : static Seeks to a specific position within the current track.
selectTrack ( integer $position ) : static Skip to the specific track in the current queue.
setCrossfade ( boolean $crossfade ) : static Turn crossfade on or off.
setMode ( array $options ) : static Set the current play mode settings.
setRepeat ( boolean $repeat ) : static Turn repeat mode on or off.
setShuffle ( boolean $shuffle ) : static Turn shuffle mode on or off.
setState ( integer $state ) : static Set the state of the group.
setVolume ( integer $volume ) : static Set the current volume of all the speakers controlled by this Controller.
useLineIn ( duncan3dc\Sonos\Speaker $speaker = null ) : static Play a line-in from a speaker.
useQueue ( ) : static Set this controller to use its queue (rather than a stream).
useStream ( Stream $stream ) : static Play a stream on this controller.

Protected Methods

Method Description
getPlayMode ( string $type ) : boolean Get a particular PlayMode.
setPlayMode ( string $type, boolean $value ) : static Set a particular PlayMode.

Method Details

__construct() public method

The speaker must be a coordinator.
public __construct ( duncan3dc\Sonos\Speaker $speaker, Network $network )
$speaker duncan3dc\Sonos\Speaker
$network Network

addSpeaker() public method

Adds the specified speaker to the group of this Controller.
public addSpeaker ( duncan3dc\Sonos\Speaker $speaker ) : static
$speaker duncan3dc\Sonos\Speaker The speaker to add to the group
return static

adjustVolume() public method

Adjust the volume of all the speakers controlled by this Controller.
public adjustVolume ( integer $adjust ) : static
$adjust integer A relative amount between -100 and 100
return static

exportState() public method

Grab the current state of the Controller (including it's queue and playing attributes).
public exportState ( boolean $pause = true ) : duncan3dc\Sonos\ControllerState
$pause boolean Whether to pause the controller or not
return duncan3dc\Sonos\ControllerState

getCrossfade() public method

Check if crossfade is currently active.
public getCrossfade ( ) : boolean
return boolean

getMediaInfo() public method

Get the currently active media info.
public getMediaInfo ( ) : array
return array

getMode() public method

Get the current play mode settings.
public getMode ( ) : array
return array An array with 2 boolean elements (shuffle and repeat)

getNetwork() public method

Get the network instance used by this controller.
public getNetwork ( ) : Network
return Network

getPlayMode() protected method

Get a particular PlayMode.
protected getPlayMode ( string $type ) : boolean
$type string The play mode attribute to get
return boolean

getQueue() public method

Get the queue for this controller.
public getQueue ( ) : Queue
return Queue

getRepeat() public method

Check if repeat is currently active.
public getRepeat ( ) : boolean
return boolean

getShuffle() public method

Check if shuffle is currently active.
public getShuffle ( ) : boolean
return boolean

getSpeakers() public method

Get the speakers that are in the group of this controller.
public getSpeakers ( ) : duncan3dc\Sonos\Speaker[]
return duncan3dc\Sonos\Speaker[]

getState() public method

Get the current state of the group of speakers.
public getState ( ) : integer
return integer One of the class STATE_ constants

getStateDetails() public method

Get attributes about the currently active track in the queue.
public getStateDetails ( ) : State
return State Track data containing the following elements

getStateName() public method

Get the current state of the group of speakers as the string reported by sonos: PLAYING, PAUSED_PLAYBACK, etc
public getStateName ( ) : string
return string

interrupt() public method

The current state of the controller is stored, the passed track is played, and then when it has finished the previous state of the controller is restored. This is useful for making announcements over the Sonos network.
public interrupt ( duncan3dc\Sonos\Tracks\UriInterface $track, integer $volume = null ) : static
$track duncan3dc\Sonos\Tracks\UriInterface The track to play
$volume integer The volume to play the track at
return static

isCoordinator() public method

This method is only here to override the method from the Speaker class. A Controller instance is always the coordinator of it's group.
public isCoordinator ( ) : boolean
return boolean

isStreaming() public method

Check if this controller is currently playing a stream.
public isStreaming ( ) : boolean
return boolean

isUsingQueue() public method

Check if this controller is currently using its queue.
public isUsingQueue ( ) : boolean
return boolean

next() public method

Skip to the next track in the current queue.
public next ( ) : static
return static

pause() public method

Pause the group.
public pause ( ) : static
return static

play() public method

Start playing the active music for this group.
public play ( ) : static
return static

previous() public method

Skip back to the previous track in the current queue.
public previous ( ) : static
return static

removeSpeaker() public method

Removes the specified speaker from the group of this Controller.
public removeSpeaker ( duncan3dc\Sonos\Speaker $speaker ) : static
$speaker duncan3dc\Sonos\Speaker The speaker to remove from the group
return static

restoreState() public method

Restore the Controller to a previously exported state.
public restoreState ( duncan3dc\Sonos\ControllerState $state ) : static
$state duncan3dc\Sonos\ControllerState The state to be restored
return static

seek() public method

Seeks to a specific position within the current track.
public seek ( integer $seconds ) : static
$seconds integer The number of seconds to position to in the track
return static

selectTrack() public method

Skip to the specific track in the current queue.
public selectTrack ( integer $position ) : static
$position integer The zero-based position of the track to skip to
return static

setCrossfade() public method

Turn crossfade on or off.
public setCrossfade ( boolean $crossfade ) : static
$crossfade boolean Whether crossfade should be on or not
return static

setMode() public method

Set the current play mode settings.
public setMode ( array $options ) : static
$options array An array with 2 boolean elements (shuffle and repeat)
return static

setPlayMode() protected method

Set a particular PlayMode.
protected setPlayMode ( string $type, boolean $value ) : static
$type string The play mode attribute to update
$value boolean The value to set the attribute to
return static

setRepeat() public method

Turn repeat mode on or off.
public setRepeat ( boolean $repeat ) : static
$repeat boolean Whether repeat should be on or not
return static

setShuffle() public method

Turn shuffle mode on or off.
public setShuffle ( boolean $shuffle ) : static
$shuffle boolean Whether shuffle should be on or not
return static

setState() public method

Set the state of the group.
public setState ( integer $state ) : static
$state integer One of the class STATE_ constants
return static

setVolume() public method

Set the current volume of all the speakers controlled by this Controller.
public setVolume ( integer $volume ) : static
$volume integer An amount between 0 and 100
return static

useLineIn() public method

If no speaker is passed then the current controller's is used.
public useLineIn ( duncan3dc\Sonos\Speaker $speaker = null ) : static
$speaker duncan3dc\Sonos\Speaker The speaker to get the line-in from
return static

useQueue() public method

Set this controller to use its queue (rather than a stream).
public useQueue ( ) : static
return static

useStream() public method

Play a stream on this controller.
public useStream ( Stream $stream ) : static
$stream duncan3dc\Sonos\Tracks\Stream The Stream object to play
return static

Property Details

$network protected property

The network instance this Controller is part of.
protected Network,duncan3dc\Sonos $network
return Network