Qsonix Integration User Manual

Qsonix Integration Guide
Updated 5/13/2009
Table of Contents
Play [Zone] ............................................................................................................................................. 7
PlaySeq [Zone] [SequenceNumber] ............................................................................................................. 7
Stop [Zone] ............................................................................................................................................ 7
PauseSet [Zone #] [Setting] ........................................................................................................................ 7
PauseToggle [Zone #] ............................................................................................................................. 7
Next [Zone #] {TrackCount} ........................................................................................................................ 7
Previous [Zone #] {TrackCount} .................................................................................................................. 8
Cue [Zone #] [CueLocation] ......................................................................................................................... 8
Volume [Zone #] [VolumePercentage] ............................................................................................................ 8
VolumeUp [Zone #] [Amount] .................................................................................................................... 8
VolumeDown [Zone #] [Amount] ................................................................................................................ 9
MuteToggle [Zone #] .............................................................................................................................. 9
MuteSet [Zone #] [MuteValue] ..................................................................................................................... 9
RepeatToggle [Zone #] ........................................................................................................................... 9
RepeatSet [Zone #] [RepeatValue] .............................................................................................................. 10
Shuffle [Zone #] ................................................................................................................................... 10
NowPlaying [Zone #] [Action] .................................................................................................................. 10
Preview [Zone #] [TrackID] ....................................................................................................................... 10
QueueItem [Zone #] [Location] [ObjectType] [ObjectID] .................................................................................... 10
QueueItemPlaylist [PlaylistID] [Location] [ObjectType] [ObjectID] ..................................................................... 11
MoveItemPlaylist [PlaylistID] [FromSequenceNumber] [ToSequenceNumber] ....................................................... 11
RemoveItemPlaylist [PlaylistID] [SequenceNumber] ...................................................................................... 12
Shutdown........................................................................................................................................... 12
Restart ............................................................................................................................................... 12
Get Zonename [Zone] {UserData} ......................................................................................................... 15
Get SystemStatus {UserData} ................................................................................................................ 15
Get ZoneVisibility ............................................................................................................................... 16
Qsonix Integration Guide
Page | 2
Get_Albums [PageNumber] [PageSize] {UserData} ......................................................................................... 16
Get_Artists [PageNumber] [PageSize] {UserData} ........................................................................................... 16
Get_Genres [PageNumber] [PageSize] {UserData} ......................................................................................... 17
Get_Periods [PageNumber] [PageSize] {UserData} ......................................................................................... 17
Get_Playlists [PageNumber] [PageSize] {UserData} ........................................................................................ 18
GetFor_NowPlaying [Zone] [TrackCount] {UserData} .................................................................................... 18
GetFor_Search [SearchTerm] [PageNumber] [PageSize] {UserData} .................................................................... 19
GetFor_StylesForGenre [GenreID] [PageNumber] [PageSize] {UserData} ........................................................... 20
GetFor_AlbumsForArtist [ArtistID] [PageNumber] [PageSize] {UserData} ............................................................. 21
GetFor_AlbumsForGenre [GenreID] [PageNumber] [PageSize] {UserData} ........................................................ 21
GetFor_AlbumsForStyle [GenreID] [PageNumber] [PageSize] {UserData} ........................................................... 22
GetFor_AlbumsForPeriod [PeriodID] [PageNumber] [PageSize] {UserData} ......................................................... 22
GetFor_TracksForAlbum [AlbumID] [PageNumber] [PageSize] {UserData} .......................................................... 23
GetFor_TracksForPlaylist [PlaylistID] [PageNumber] [PageSize] {UserData} ............................................................... 24
GetDetails_Album [AlbumID] {UserData} .................................................................................................. 25
GetDetails_Artist [ArtistID] {UserData} ....................................................................................................... 25
Feedback TrackChange [On/Off] .......................................................................................................... 26
Feedback TrackPosition [On/Off] .......................................................................................................... 27
Feedback RepeatChange [On/Off] ........................................................................................................ 27
Feedback PlaylistChange [On/Off] ........................................................................................................ 28
Feedback PlaystateChange [On/Off] ..................................................................................................... 28
Feedback Volume [On/Off] ................................................................................................................... 28
Feedback All [On/Off] .......................................................................................................................... 28
Feedback GetValue ............................................................................................................................ 29
Queue [Zone #] [Location] ....................................................................................................................... 31
Qsonix Integration Guide
Page | 3
Revision History
10/5/2005
Response to GET NOWPLAYING command results changed. Added Sequence as a new returned
field to the NOWPLAYING response. Also, IsCurrent field now returns either a 1 or 0 value instead of only returning if the value is 1.
FEEDBACK CURRENTTRACK and FEEDBACK NEXTTRACK responses now include the Sequence
field.
Added new command “GET SYSTEMSTATUS” that can be used to check the availability of the
system as well as retrieve the current system software version.
10/19/2005
Added QUEUEITEM command to support directly queuing objects by ID number.
06/1/2007
Added QUEUEITEMPLAYLIST command to support directly queuing objects by ID number to. Added another Feedback parameter (volume).
10/1/2007
Removed old protocol no longer support in current firmware Support for Q110 (4-Zone) unit added
5/15/2008
Added documentation for SetFeedback command. Removed SELECTPLAYLIST command – no longer implemented Removed SORTRESULTS command – no longer implemented Added full library browsing functions including “GET_xxx”, “GETFOR_xxx”, “GETDETAILS_xxx”
commands.
8/18/2008
Updated document format Added instructions for TCP/IP support Added Cover Art Documentation
11/9/2008
Added return fields to GET_PERIODS: TotalTracks, TotalDuration, TotalDurationAsString Added new command: GETFILTERED_ALBUMS Added AvailableAlpha to the response for GET_ARTISTS and GETFILTERED_ALBUMS
12/2/2008
Added the REMOVEITEMPLAYLIST command.
Qsonix Integration Guide
Page | 4
5/13/2009
Added the MOVEITEMPLAYLIST command. Added the PREVIEW command. Added the CUE command.
Qsonix Integration Guide
Page | 5
Introduction
This document describes how to communicate with Qsonix Digital Media Management Systems using either RS-232 Serial or TCP/IP communications.
Serial Communications
The rear panel of the Qsonix systems unit has a standard DB-9
serial port labeled “Serial”. Typical connection to this port
requires use of a standard RS-232 null modem cable. Qsonix systems support communications between 9600 to 38400 baud, 8 data bits, 1 stop bit, no parity, no flow control. Serial configuration can be set by accessing the Integration tab under System Settings in the Qsonix software.
Ethernet Communications
The Qsonix system also supports access via a TCP connection using the same communication protocol found in this document. The default port number for TCP communications is 5031. This port number can be configured by accessing the Integration tab under the System Settings in the Qsonix software.
Command Structure
Commands sent to Qsonix systems will always end in a carriage return (ASCII 13). If a sequence of characters is sent to the unit without ending in a carriage return (an incomplete command), it will be ignored. The unit will wait up to 5 seconds for the command to be completed (by sending additional characters including a carriage return) before clearing the input buffer and ignoring the incomplete command.
A typical command will include a verb and one or more parameters. Parameters are always separated from each other and from the verb by a space (ASCII 32). For example, the command to begin playback for Zone 1 is “Play 1” and the command to set the volume for Zone 2 to 50% is “Volume 2 50”. Command verbs are not case sensitive but are typically specified in proper case for ease of readability. Some commands support optional parameters. Optional parameters are always last in the list of parameters and they can be provided to give a more specific command. For example, the Next command will cause the playback to skip to the next track in the now playing list for the specified zone. The Next command can also skip forward by more than one track with a single command (example: “Next 2 5” will skip playback of Zone 2 forward by 5 tracks). When optional parameters are omitted, a default value that is specified in the command description will be used.
Some parameters will be full strings (such as a track title) that may include spaces within the parameter. These parameters will be enclosed in double-quotes. For example, the return status message indicating the currently playing track will return the track title currently playing: Feedback CurrentTrack 1 “Here Comes the Sun” indicates that Zone 1 is currently playing the track Here Comes the Sun.
Most commands include a parameter that specifies on which zone the command should operate. The Zone parameter must be a numeric value equal corresponding to the zone the command should operate on. This must be less than the number of zones supported by the system (typically 1 to 4). A value of 0 can be used to indicate that the command should operate on the “current zone”. The current zone is the
one that is current displayed in the lower right corner of the screen in the “Now Playing” area. The current
zone in this area is also indicated by the color coding in the user interface.
The command reference below will show verbs in boldface and parameters will be shown by name in italics surrounded by square brackets (ex: [Zone #] or [Volume Percentage]). Optional parameters are shown in italics and surrounded by braces (ex: {# of tracks}).
Qsonix Integration Guide
Page | 6
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
SequenceNumber
Playback will jump to this sequence number in the playback queue for the zone specified. Tracks in the playback queue are numbered sequentially starting at 0 (the first track is sequence number 0).
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Setting
Must be ON or OFF to indicate the new state of pause
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Playback Control Commands
Play [Zone]
DE SC R I P T I O N
Plays the currently selected track for the specified [Zone}.
PARAMETE R S
PlaySeq [Zone] [SequenceNumber]
DE SC R I P T I O N
Skips playback to the specified sequence number in the play queue.
PARAMETE R S
Stop [Zone]
DE SC R I P T I O N
Stops playback for the specified [Zone}.
PARAMETE R S
PauseSet [Zone #] [Setting]
DE SC R I P T I O N
Sets the pause state of playback for the specified Zone.
PARAMETE R S
PauseToggle [Zone #]
DE SC R I P T I O N
Toggles between paused and un-paused state for playback for the specified [Zone}.
PARAMETE R S
Next [Zone #] {TrackCount}
DE SC R I P T I O N
Skips playback forward by {TrackCount} tracks for the specified [Zone}.
Qsonix Integration Guide
Page | 7
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
TrackCount
Specifies the number of tracks to skip forward. This parameter is optional and the default value is 1.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
TrackCount
Specifies the number of tracks to skip forward. This parameter is optional and the default value is 1.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
CueLocation
Specifies where the current cue point of the current track should be set. This should be an integer value specifying the number of seconds from the start of the track.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
VolumePercentage
Specifies the new volume setting desired in terms of a percent of full volume. The value must be an integer value between 0 and 100.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
PARAMETE R S
Previous [Zone #] {TrackCount}
DE SC R I P T I O N
Skips playback backward by {TrackCount} tracks for the specified [Zone].
PARAMETE R S
Cue [Zone #] [CueLocation]
DE SC R I P T I O N
Cues into the current track to the number of seconds specified by [CueLocation].
PARAMETE R S
Volume [Zone #] [VolumePercentage]
DE SC R I P T I O N
Sets the volume for the specified [Zone] to the [VolumePercentage] specified. To turn the volume up or down (not set a discreet value, see the VolumeUp or VolumeDown command instead).
PARAMETE R S
VolumeUp [Zone #] [Amount]
DE SC R I P T I O N
Increases the volume for the specified [Zone] by the [Amount] specified.
The VolumeUp command is used to set the volume to a value relative to the current setting, so the Amount value must be between 1 and 100. Note that if the value specified would cause the volume setting to be greater than 100, the volume will be set to 100 instead. For instance, if the volume is currently set to 50% and the VolumeUp command is issued with an Amount parameter of 70, the volume will be set to 100% (instead of 120%).
PARAMETE R S
Qsonix Integration Guide
Page | 8
Amount
Specifies the amount of volume change desired. The playback volume change amount is specified in terms of percent (0 to 100%).
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Amount
Specifies the amount of volume change desired. The playback volume change amount is specified in terms of percent (0 to 100%).
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
MuteValue
Specifies the desired new state of mute. The value must be either On or Off.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
VolumeDown [Zone #] [Amount]
DE SC R I P T I O N
Decreases the volume for the specified [Zone] by the [Amount] specified.
The VolumeDown command is used to set the volume to a value relative to the current setting, so the Amount value must be between 1 and 100. Note that if the value specified would cause the volume setting to be greater than 100, the volume will be set to 100 instead. For instance, if the volume is currently set to 50% and the VolumeDown command is issued with an Amount parameter of 70, the volume will be set to 100% (instead of 120%).
PARAMETE R S
MuteToggle [Zone #]
DE SC R I P T I O N
Toggles the mute setting for the specified [Zone]. For a discreet version of this command, see MuteSet.
PARAMETE R S
MuteSet [Zone #] [MuteValue]
DE SC R I P T I O N
Sets the mute setting for the specified [Zone] to a discreet value specified by the [MuteValue] parameter.
PARAMETE R S
RepeatToggle [Zone #]
DE SC R I P T I O N
Toggles the repeat setting for the specified [Zone]. For a discreet version of this command, see RepeatSet.
PARAMETE R S
Qsonix Integration Guide
Page | 9
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
RepeatValue
Specifies the desired new state of repeat. The value must be either On or Off.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Action
Specifies what action should be taken on the specified zone‟s now playing playlist. Action must be one of the following values:
ClearAll – Clears all tracks from the playlist ClearPlayed – Clears all tracks that have completed playing from the playlist
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
TrackID
Specifies the track that should be previewed.
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
RepeatSet [Zone #] [RepeatValue]
DE SC R I P T I O N
Sets the repeat setting for the specified [Zone] to a discreet value specified by the [RepeatValue] parameter.
PARAMETE R S
Shuffle [Zone #]
DE SC R I P T I O N
Shuffles the now playing list of tracks for the specified [Zone]. The shuffle operation will randomly resort all tracks in the now playing list. If the zone is currently playing a track, that track will be moved to the top of the list and will continue playing while all other tracks below it will be shuffled randomly.
PARAMETE R S
NowPlaying [Zone #] [Action]
DE SC R I P T I O N
The NowPlaying command is used for actions that affect the Now Playing playlist for the specified [Zone].
PARAMETE R S
Preview [Zone #] [TrackID]
DE SC R I P T I O N
Play a short preview of the track specified by [TrackID] in the zone specified by [Zone]. When the preview is completed, playback will return to its previous state.
PARAMETE R S
QueueItem [Zone #] [Location] [ObjectType] [ObjectID]
DE SC R I P T I O N
Allows adding of items to the Now Playing playlist for the specified [Zone]. The location in the current playlist that the item will be inserted is determined by the value of the [Location] parameter.
PARAMETE R S
Qsonix Integration Guide
Page | 10
Location
Specifies where the item specified should be added to the now playing queue.
Location must be one of the following values:
End – Add selected item to the end of the playlist Next – Add selected item to the playlist immediately after the current track Now – Add selected item to the playlist immediately after the current track and then
immediately call track next so that the queued track will start playing immediately. Clear Clear the playlist and then add the selected item. # - If a number is specified as the location parameter, then the item(s) will be inserted into the now playing playlist at the index specified. The index is 0-based.
ObjectType
Selection of exactly what item is to be insert into the playlist is further determined by the ObjectType and ObjectID parameters. The ObjectType parameter must be one of the following:
Album, Artist, Genre, Track, Playlist
ObjectID
The ObjectID parameter is then used to indicate which item of the specified ObjectType will be inserted into the playlist.
PlaylistID
Specifies which playlist should have the items added.
Location
Specifies where the item specified should be added to the specified playlist.
Location must be one of the following values:
End – Add selected item to the end of the playlist Clear – Clear the playlist and then add the selected item.
ObjectType
Selection of exactly what item is to be insert into the playlist is further determined by the ObjectType and ObjectID parameters. The ObjectType parameter must be one of the following:
Album, Artist, Genre, Track, Playlist
ObjectID
The ObjectID parameter is then used to indicate which item of the specified ObjectType will be inserted into the playlist.
PlaylistID
Specifies which playlist should have the items added. This can also be
provided as a string value formatted as “NPx” where NP represents “Now Playing” and „x‟ is the zone number. For example, to remove an item from
the now playing playlist for zone 3, the PlaylistID parameter can be supplied as NP3.
QueueItemPlaylist [PlaylistID] [Location] [ObjectType] [ObjectID]
DE SC R I P T I O N
Allows adding of items to the Now Playing playlist for the specified [Zone]. The location in the current playlist that the item will be inserted is determined by the value of the [Location] parameter.
PARAMETE R S
MoveItemPlaylist [PlaylistID] [FromSequenceNumber] [ToSequenceNumber]
DE SC R I P T I O N
Moves the track with the specified [FromSequenceNumber] from the playlist specified by [PlaylistID] to a new location specified by [ToSequenceNumber].
PARAMETE R S
Qsonix Integration Guide
Page | 11
FromSequenceNumber
The sequence number of the item to be moved within the playlist.
ToSequenceNumber
The sequence number within the playlist where the item should be moved to.
PlaylistID
Specifies which playlist should have the items added. This can also be provided
as a string value formatted as “NPx” where NP represents “Now Playing” and „x‟
is the zone number. For example, to remove an item from the now playing playlist for zone 3, the PlaylistID parameter can be supplied as NP3.
SequenceNumber
The sequence number of the item to be removed from the playlist.
RemoveItemPlaylist [PlaylistID] [SequenceNumber]
DE SC R I P T I O N
Removes the track with the specified [SequenceNumber] from the playlist specified by [PlaylistID].
PARAMETE R S
Shutdown
DE SC R I P T I O N
Remotely turn off the power to the unit.
Restart
DE SC R I P T I O N
Remotely restart the system.
Qsonix Integration Guide
Page | 12
Two-way Commands
Various commands are provided for the purposes of retrieving data from the server or to receive feedback of current server status. All commands that are requests of the server to return data will conform to a standard response format. The response will always include a header that can be used to identify what type of data is being returned to the client. Data returned will use standard delimiters to aide in parsing the resulting information. A group delimiter (ASCII 29 – shown in this document as the character ) will be used to denote the end of the header. A row delimiter (ASCII 30 – shown in this document as the character ) will be used to divide distinct rows of results (as in the case of a multi-row response). A field delimiter (ASCII 31 - shown in this document as the character ) will be used to delimit multiple values in a response or within a row of a response. In some special cases, a single field in a response can contain multiple values (such as the OutputIsPlayingThisTrack field returned from the GETFOR_TRACKSFORPLAYLIST command). The multi-value delimiter (ASCII 3) will be used to divide individual values within a multi­valued field in the response.
Commands that return a multi-row response also support paging operations. This feature allows the client to request data in pages of a specified number of rows and the server will manage the current index location and support next/back functions from the client. This is designed to support clients that are only able to display a limited number of items on the screen at a time and will provide the user with page up / page down buttons to navigate the list.
For example, the command “GET PLAYLISTS” can be used to return a list of playlists from the server. The
response for this command will include a header that will include the data type being returned “PLAYLISTS”, followed by the current page number and then by the total page count. These values will be separated by the field delimiter and terminated by the group delimiter. For example, the header portion of this response would be formatted as follows: PLAYLISTS312
Following the header of this response, the actual list of playlists for the specified page would appear as a list of rows. Each row will contain multiple values (fields) containing the details of the playlist (including PlaylistID, Playlist Name, Number of Tracks in Playlist, Total Duration of Playlist (in seconds), Total Duration of Playlists (as a time-formatted string). For example, each row of the data portion of the response would be formatted as follows: 327Jazz / Blues Mix115310508:37:30
Note that the entire response packet will then be delimited by a carriage return (ASCII 13).
The typical format of these data retrieval commands will be “GET [datatype] [paging command]”.
Currently, only two types of datatypes are supported, PLAYLISTS and NOWPLAYING. The paging command can be optionally used to retrieve additional pages and supported commands include: NEXT,
PREVIOUS, FIRST, LAST, REFRESH. In addition, the paging command CURRENT can be used in conjunction with the NOWPLAYING datatype to retrieve the page that includes the current track in the now playing list. All variations of the supported commands are listed below.
The GET_xxx commands can be used to retrieve a variety of metadata and allows browsing of the full media library. Each of these commands accept a PageNumber and PageSize parameter. If a PageNumber is passed that is greater than the maximum number of pages, the last page will be returned. The PageNumber parameter can also be passed as a single letter, causing the results to return the first page that contains results starting with that letter. For example, the command “GET_ALBUMS G 30” will return the first page of 30 albums that has album titles starting with the letter G. Note that the items starting with G will not necessarily appear as the first item on the page, but the page will contain the start of the items that begin with the letter G.
Data Types
The data type of each field in responses is noted in the description of the field. Possible values are listed below:
String(x) – A string value with a maximum length of x Int32 – a 32-bit integer value (maximum value of 2,147,483,647)
Qsonix Integration Guide
Page | 13
Int16 – a 16-bit integer value (maximum value of 32,767) uInt8 – an unsigned 8-bit integer value (maximum value of 256)
User Data
Each of the commands in this section support an optional UserData parameter. This is always the last parameter in the command and must be a string. The UserData parameter cannot contain spaces. The data supplied in the UserData parameter will be returned in the response header as the last field in the header. If the UserData is not supplied in the request command, an empty field will be returned in the response header.
Qsonix Integration Guide
Page | 14
Zone
Specifies the zone to retrieve the name for. Must be a valid zone number. uInt8
ZONENAME[UserData][ZoneNumber][ZoneName]
ZoneNumber
The number of the zone. Int16
ZoneName
The user-specified name of the zone. String(50)
Zone
Specifies the zone to retrieve the name for. Must be a valid zone number. uInt8
SYSTEMSTATUS[UserData][Status][SoftwareVersion][BuildNumber][DeviceID][SerialNumber][IP Address][MACAddress][SubnetMask][DefaultGateway][PrimaryDNS][SecondaryDNS][AvailableSp ace][TrackCount][AlbumCount][ArtistCount][GenreCount][StylesCount][PlaylistCount][FriendlyN ame]
Status
Currently supports only “OK” indicating that the system is available.
String(2)
SoftwareVersion
The current software version running on the system String(20)
BuildNumber
The current software build number running on the system. String(20)
DeviceID
The system Device Identifier. String(36)
SerialNumber
The serial number of the system. Int32
IPAddress
The current IP address of the system. String(15)
MACAddress
The current Media Access Control address (MAC) of the system.
String(17)
SubnetMask
The current subnet mask of the system. String(15)
DefaultGateway
The current default gateway of the system. String(15)
PrimaryDNS
The current primary DNS entry in the system. String(15)
SecondaryDNS
The current secondary DNS entry in the system. String(15)
AvailableSpace
Amount of storage space remaining on the system, formatted as a readable string (ex: 321MB). String(10)
TrackCount
Total number of tracks currently stored on the system. Int32
AlbumCount
Total number of albums currently stored on the system. Int32
ArtistCount
Total number of artists currently stored on the system. Int32
GenreCount
Total number of genres currently stored on the system. Int32
Get Zonename [Zone] {UserData}
DE SC R I P T I O N
Used to retrieve the user-specified name assigned to each of the zones in the system.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Get SystemStatus {UserData}
DE SC R I P T I O N
Used to check the availability of the server.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Qsonix Integration Guide
Page | 15
StylesCount
Total number of styles currently stored on the system. Int32
PlaylistCount
Total number of playlists currently stored on the system. Int32
FriendlyName
The friendly name of the machine set by the user in the configuration area. String(50)
Zone
Specifies the zone to retrieve the name for. Must be a valid zone number. uInt8
ZONESVISIBILITY[VisibilityStatus]
VisibilityStatus
A string containing a one or zero for each zone (1=visible) Example: 0011 would indicate that Zones 3 and 4 should be visible / active. String(4)
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32
GET_ALBUMS[PageNumber][TotalPages][TotalAlbums][UserData][AlbumID][AlbumTitle] [AlbumArtistID][AlbumArtistName][Year][TrackCount]
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalAlbums
Count of the number of albums in the library. Int32
AlbumID
Unique album identifier for the album being returned. Int32
AlbumTitle
Title of the album. String(100)
AlbumArtistID
Unique artist identifier for the artist that is the primary artist on the album. Int32
AlbumArtistName
Name of the primary artist for the album. String(255)
Year
Year the album was released. Int16
TrackCount
Number of tracks associated with the album. Int32
Get ZoneVisibility
DE SC R I P T I O N
Used to check the availability of a zone of the server.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Get_Albums [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Retrieves a list of all albums in the library.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Get_Artists [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Retrieves a list of all artists in the library.
Qsonix Integration Guide
Page | 16
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32
GET_ARTISTS[PageNumber][TotalPages][TotalArtists][UserData][ArtistID][ArtistName] [AlbumCount]
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalArtists
Count of the number of artists in the library. Int32
ArtistID
Unique artist identifier for the artist being returned. Int32
ArtistName
Name of the artist. String(255)
AlbumCount
Number of albums associated with this artist. Int32
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32
GET_GENRES[PageNumber][TotalPages][TotalGenres][UserData][GenreID][GenreName] [AlbumCount][StyleCount]
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalGenres
Count of the number of genres in the library. Int32
GenreID
Unique genre identifier for the genre being returned. Int32
GenreName
Name of the genre. String(100)
AlbumCount
Number of albums associated with this genre. Int32
StyleCount
Number of styles associated with this genre. Int32
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32 GET_PERIODS[PageNumber][TotalPages][TotalPeriods][UserData][PeriodID][DisplayString]
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Get_Genres [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Retrieves a list of all genres in the library.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Get_Periods [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Retrieves a list of all years / decades (periods) in the library.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Qsonix Integration Guide
Page | 17
[AlbumCount][TrackCount][Duration][DurationAsString]
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalPeriods
Count of the number of periods in the library. Int32
PeriodID
Unique period identifier for the period being returned. Distinct years have a period ID that is simply the year. Decades have a period ID that prepends a 1 to the decade (for example, 1980s has a period ID of 11980). Int16
DisplayString
A displayable version of the PeriodID. This translates decades back to a displayable form such as “1980s”. String(5)
AlbumCount
The number of albums associated with this period. Int32
TrackCount
The total number of tracks associated with this period. Int32
TotalDuration
The total duration of all tracks associated with this period. Int32
TotalDurationAsString
The total duration of all tracks associated with this period. This is returned as a formatted string value (ex: 1:23:45). String(20)
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32
GET_PLAYLISTS[PageNumber][TotalPages][TotalPlaylists][UserData][PlaylistID][PlaylistName] [DurationInSeconds][DurationAsString][TrackCount]
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalPlaylists
Count of the number of playlists in the library. Int32
PlaylistID
Unique playlist identifier for the playlist being returned. Int32
PlaylistName
The name of the playlist. String(255)
DurationInSecon ds
Total duration of all tracks in the playlist. This is returned as an integer value in seconds. Int32
DurationAsString
Total duration of all tracks in the playlist. This is returned as a formatted string value (ex: 1:23:45). String(10)
TrackCount
Total number of tracks in the playlist. Int32
Get_Playlists [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Retrieves a list of playlists in the system.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
GetFor_NowPlaying [Zone] [TrackCount] {UserData}
DE SC R I P T I O N
Retrieves a list of tracks from the now playing playlist for the specified Zone. The first row returned in the result will be the current track for that zone. Based on the value of TrackCount, additional rows
Qsonix Integration Guide
Page | 18
Zone
Now Playing tracks will be returned for this zone. uInt8
TrackCount
Specifies the number of rows to return. This is how many tracks in the future will be returned (includes the current track). Int32
GET_NOWPLAYING[Zone][TrackCount][UserData][TrackID][TrackTitle][SequenceNumber][Ar tistID][ArtistName][AlbumID][AlbumTitle][TrackDurationInSeconds][TrackDurationAsString]
Zone
Now Playing tracks will be returned for this zone. uInt8
TrackCount
Specifies the number of rows returned. This will normally be the same as the TrackCount value passed in unless there are less than the specified number of tracks in the future of the now playing queue for the specified Zone. Int32
TrackID
The unique track ID for the track being returned. Int32
TrackTitle
The track title. String(512)
SequenceNumber
This number is unique within a playlist and indicates this tracks order within the playlist. Since a playlist can contain a track more than once, this provides an alternative to track ID to uniquely identify a particular instance of a track within a playlist. Int32
ArtistID
The unique artist ID of the primary artist for the track being returned.
Int32
ArtistName
The name of the primary artist for the track being returned. String(255)
AlbumID
The unique album ID of the album that this track is associated with.
Int32
AlbumTitle
The title of the album that the track is associated with. String(100)
TrackDurationInSeconds
Duration of the track. This is returned as an integer value in seconds.
Int32
DurationAsString
Duration of the track. This is returned as a formatted string value (ex: 1:23:45). String(10)
SearchTerm
A string value that is to be used for the search. String(255)
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32 GETFOR_SEARCH[SearchTerm][PageNumber][TotalPages][TotalResults][UserData][ObjectType
will be returned to indicate tracks that are queued up to play in the future. If there are no future tracks or less than TrackCount number of future tracks, then less rows may be returned.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
GetFor_Search [SearchTerm] [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Performs a keyword search on all items in the library and returns a list of objects that have a string match. Currently, this search function searches for matches in all album titles, artist names, track titles and genres. The results are returned as a composite result, with the ObjectType response field indicating the type of object that contained the search keyword.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Qsonix Integration Guide
Page | 19
][ObjectID][MatchString]
SearchTerm
The search term that was searched for. String(255)
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalResults
Count of the number of matches available. Int32
ObjectType
The type of object that this search result pertains to. Valid values are:
TRACK, ALBUM, ARTIST, GENRE
String(20)
ObjectID
The unique identifier of the object matched. Int32
MatchString
The string value that was matched and contained the keyword. String(512)
ExtendedData1
This contains additional data about the search result. The data contained depends on the ObjectType being returned as follows:
TRACK: Album Title ALBUM: Album Artist Name ARTIST: <not used> GENRE: <not used>
ExtendedData2
This contains additional data about the search result. The data contained depends on the ObjectType being returned as follows:
TRACK: Album Artist Name ALBUM: <not used> ARTIST: <not used> GENRE: <not used>
GenreID
The unique genre ID to retrieve a list of styles for. Int32
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32
GETFOR_STYLESFORGENRE[GenreID][PageNumber][TotalPages][TotalStyles][UserData][Genr eID][GenreName] [AlbumCount]
GenreID
The genre ID of the parent of the styles being returned. Int32
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalStyles
Count of the number of styles returned. Int32
GenreID
The unique genre ID for the style being returned. Genres and styles are essentially the same data type. Int32
GetFor_StylesForGenre [GenreID] [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Retrieves a list of styles for the specified genre.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Qsonix Integration Guide
Page | 20
GenreName
The name of the style. String(100)
AlbumCount
The number of albums that are associated with the style. Int32
ArtistID
The unique artist ID to retrieve a list of albums for. Int32
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32
GETFOR_ALBUMSFORARTIST[ArtistID][PageNumber][TotalPages][TotalAlbums][UserData][Albu mID][AlbumTitle][AlbumArtistID][AlbumArtistName][Year][TrackCount]
ArtistID
The artist ID of the albums being returned. Int32
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalAlbums
Count of the number of albums returned. Int32
AlbumID
The unique album ID for the album being returned. Int32
AlbumTitle
The album title. String(100)
AlbumArtistID
Unique artist identifier for the artist that is the primary artist on the album. Int32
AlbumArtistName
Name of the primary artist for the album. String(255)
Year
The release year of the album. Int16
TrackCount
Total number of tracks associated with the album. Int32
GenreID
The unique genre ID to retrieve a list of albums for. Int32
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32
GETFOR_ALBUMSFORGENRE[GenreID][PageNumber][TotalPages][TotalAlbums][UserData][Al bumID][AlbumTitle][AlbumArtistID][AlbumArtistName][Year][TrackCount]
GenreID
The genre ID of the albums being returned. Int32
PageNumber
The page number being returned. Int32
GetFor_AlbumsForArtist [ArtistID] [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Retrieves a list of albums for the specified artist.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
GetFor_AlbumsForGenre [GenreID] [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Retrieves a list of albums for the specified genre.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Qsonix Integration Guide
Page | 21
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalAlbums
Count of the number of albums returned. Int32
AlbumID
The unique album ID for the album being returned. Int32
AlbumTitle
The album title. String(100) AlbumArtistID
Unique artist identifier for the artist that is the primary artist on the album. Int32
AlbumArtistName
Name of the primary artist for the album. String(255)
Year
The release year of the album. Int16
TrackCount
Total number of tracks associated with the album. Int32
GenreID
The unique genre ID to retrieve a list of albums for. Note that styles also use GenreID. Int32
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32
GETFOR_ALBUMSFORSTYLE[GenreID][PageNumber][TotalPages][TotalAlbums][UserData][Alb umID][AlbumTitle][AlbumArtistID][AlbumArtistName][Year][TrackCount]
GenreID
The genre ID of the albums being returned. Int32
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalAlbums
Count of the number of albums returned. Int32
AlbumID
The unique album ID for the album being returned. Int32
AlbumTitle
The album title. String(100)
AlbumArtistID
Unique artist identifier for the artist that is the primary artist on the album.
Int32
AlbumArtistName
Name of the primary artist for the album. String(255)
Year
The release year of the album. Int16
TrackCount
Total number of tracks associated with the album. Int32
PeriodID
The unique period ID to retrieve a list of albums for. Note that the period ID can be either a distinct year (ex: 1980) or can be a decade reference (by adding a
GetFor_AlbumsForStyle [GenreID] [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Retrieves a list of albums for the specified style.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
GetFor_AlbumsForPeriod [PeriodID] [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Retrieves a list of albums for the specified period.
PARAMETE R S
Qsonix Integration Guide
Page | 22
leading 1 to the id, ex: 11980 will return results from 1980 through 1989 inclusive). Int16
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32
GETFOR_ALBUMSFORPERIOD[PeriodID][PageNumber][TotalPages][TotalAlbums][UserData][A lbumID][AlbumTitle][AlbumArtistID][AlbumArtistName][Year][TrackCount]
PeriodID
The period ID of the albums being returned. Int16
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalAlbums
Count of the number of albums returned. Int32
AlbumID
The unique album ID for the album being returned. Int32
AlbumTitle
The album title. String(100)
AlbumArtistID
Unique artist identifier for the artist that is the primary artist on the album. Int32
AlbumArtistName
Name of the primary artist for the album. String(255)
Year
The release year of the album. Int16
TrackCount
Total number of tracks associated with the album. Int32
AlbumID
The unique album ID to retrieve a list of tracks for. Int32
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32
GETFOR_TRACKSFORALBUM[AlbumID][PageNumber][TotalPages][TotalTracks][UserData][Tra ckID][TrackTitle][TrackNumber][TrackDurationInSeconds][TrackDurationAsString][OutputIsPlayin gThisTrack]
AlbumID
The album ID of the tracks being returned. Int32
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalTracks
Count of the number of tracks returned. Int32
TrackID
The unique track ID for the track being returned. Int32
TrackTitle
The track title. String(512)
TrackNumber
The number of this track from the original recording. uInt8
TrackDurationInS econds
Duration of the track. This is returned as an integer value in seconds. Int32
RE SPO N S E D E FIN I T I O N
GetFor_TracksForAlbum [AlbumID] [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Retrieves a list of tracks for the specified album.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Qsonix Integration Guide
Page | 23
DurationAsString
Duration of the track. This is returned as a formatted string value (ex: 1:23:45).
String(10)
OutputIsPlayingT hisTrack
This field can be used to determine if the returned track is currently playing in any of the playback zones. Note that this is a multi-valued field and will contain a delimited list of all zone numbers that are currently playing this track.
String(20)
PlaylistID
The unique playlist ID to retrieve a list of tracks for. Int32
PageNumber
Specifies the page number to be retrieved. Int32
PageSize
Specifies the number of rows in each page. Int32
GETFOR_TRACKSFORPLAYLIST[PlaylistID][PageNumber][TotalPages][TotalTracks][UserData][T rackID][TrackTitle][SequenceNumber][ArtistID][ArtistName][AlbumID][AlbumTitle][TrackDuratio nInSeconds][TrackDurationAsString] [OutputIsPlayingThisTrack]
PlaylistID
The playlist ID of the tracks being returned. Int32
PageNumber
The page number being returned. Int32
TotalPages
Indicates how many pages are available at the page size specified. Int32
TotalTracks
Count of the number of tracks returned. Int32
TrackID
The unique track ID for the track being returned. Int32
TrackTitle
The track title. String(100)
SequenceNumber
This number is unique within a playlist and indicates this tracks order within the playlist. Since a playlist can contain a track more than once, this provides an alternative to track ID to uniquely identify a particular instance of a track within a playlist. Int32
ArtistID
The unique artist ID of the primary artist for the track being returned. Int32
ArtistName
The name of the primary artist for the track being returned. Int32
AlbumID
The unique album ID of the album that this track is associated with. Int32
AlbumTitle
The title of the album that the track is associated with. String(100)
TrackDurationInSe conds
Duration of the track. This is returned as an integer value in seconds. Int32
DurationAsString
Duration of the track. This is returned as a formatted string value (ex: 1:23:45). String(10)
OutputIsPlayingTh isTrack
This field can be used to determine if the returned track is currently playing in any of the playback zones. Note that this is a multi-valued field and will contain a delimited list of all zone numbers that are currently playing this track.
String(20)
GetFor_TracksForPlaylist [PlaylistID] [PageNumber] [PageSize] {UserData}
DE SC R I P T I O N
Retrieves a list of tracks for the specified playlist.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Qsonix Integration Guide
Page | 24
AlbumID
The unique album ID to retrieve detailed information for. Int32
GETDETAILS_ALBUM[RequestedAlbumID][UserData][AlbumID][AlbumTitle][AlbumArtistID] [AlbumArtistName][ReleasedYear][Genre][Styles][Flags]
RequestedAlbumID
The album ID of the details being returned. Int32
AlbumID
The album ID for the track being returned. Int32
AlbumTitle
The album title. String(100)
AlbumArtistID
The unique artist ID of the primary artist for the album being returned.
Int32
AlbumArtistName
The name of the primary artist for the album being returned.
String(255)
ReleasedYear
The year that the album was released. Int16
Genre
The genre associated with this album. String(100)
Styles
This is a multi-valued field that returns a delimited list of all styles associated with this album. String(512)
Flags
This is a multi-valued field that returns a delimited list of all album flags associated with this album. Examples of album flags include:
LIVE, INSTRUMENTAL, EXPLICIT LYRICS
String(512)
ArtistID
The unique artist ID to retrieve detailed information for. Int32
GETDETAILS_ARTIST[RequestedArtistID][UserData][ArtistID][ArtistName][AlbumArtistID] [AlbumArtistName][ReleasedYear][Genre][Styles][Flags]
RequestedAlbumID
The album ID of the details being returned. Int32
AlbumID
The album ID for the track being returned. Int32
AlbumTitle
The album title. String(100)
AlbumArtistID
The unique artist ID of the primary artist for the album being returned.
Int32
AlbumArtistName
The name of the primary artist for the album being returned.
String(255)
ReleasedYear
The year that the album was released. Int16
GetDetails_Album [AlbumID] {UserData}
DE SC R I P T I O N
Retrieves details for the specified album.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
GetDetails_Artist [ArtistID] {UserData}
DE SC R I P T I O N
Retrieves details for the specified artist.
PARAMETE R S
RE SPO N S E D E FIN I T I O N
Qsonix Integration Guide
Page | 25
Genre
The genre associated with this album. String(100)
Styles
This is a multi-valued field that returns a delimited list of all styles associated with this album. String(512)
Flags
This is a multi-valued field that returns a delimited list of all album flags associated with this album. Examples of album flags include:
LIVE, INSTRUMENTAL, EXPLICIT LYRICS
String(512)
On/Off
Specifies whether to turn the specified type of feedback on or off. Valid values include: ON, OFF.
FEEDBACKCURRENTTRACK[ZoneNumber][TrackID][TrackTitle][AlbumTitle][AlbumArtistName] [SequenceNumber]
FEEDBACKNEXTTRACK[ZoneNumber][TrackID][TrackTitle][AlbumTitle][AlbumArtistName] [SequenceNumber]
ZoneNumber
The number of the zone that this feedback applies to. uInt8
TrackID
The track ID of the track being returned. Int32
TrackTitle
The track title. String(512)
AlbumTitle
The title of the album that the track belongs to. String(100)
AlbumArtistName
The name of the primary artist of the album that the track belongs to.
String(255)
System Feedback
Qsonix systems are capable of sending a variety of feedback data including playback status, currently playing track, etc. By default, sending of feedback is turned off and in order to enable data feedback, a command must be sent specifying the type of feedback desired. Feedback data is divided by purpose into message types and one or more feedback message types may be turned on simultaneously. Most types of feedback messages are sent only when necessary (when the data changes). For example, the Playstate feedback message will be sent whenever the play state of any zone changes. In addition, when a feedback message type is enabled, a feedback message of each type that is currently enabled will be sent immediately to report the state at that time. In order to poll the unit for a current status, you can simply re­initialize the feedback message type again and this initial status message will be sent immediately. This is convenient since the message will be formatted the same whether it is a response to a poll or is an unsolicited response by the system as a result of a data change.
Feedback TrackChange [On/Off]
DE SC R I P T I O N
Enabling this type of feedback will cause feedback messages to be sent when the current track in the now playing queue changes. Two types of messages will be sent by this type of feedback. One will return the CURRENTTRACK information and the other will return the NEXTTRACK information. If there is not a next track in the now playing queue when this feedback occurs, the NEXTTRACK message will be omitted. In addition, one of each type of message will be sent for each playback zone on the system. (See response types “CURRENTTRACK” and “NEXTTRACK” below).
PARAMETE R S
RE SPO N S E D E FIN I T I O N S
Qsonix Integration Guide
Page | 26
SequenceNumber
This number is unique within a playlist and indicates this tracks order within the playlist. Since a playlist can contain a track more than once, this provides an alternative to track ID to uniquely identify a particular instance of a track within a playlist. Int32
On/Off
Specifies whether to turn the specified type of feedback on or off. Valid values include: ON, OFF.
FEEDBACKPOSITION[ZoneNumber][TrackDuration][TrackPosition][TrackTimeRemaining] [TrackDurationString][TrackPositionString][TrackTimeRemainingString]
ZoneNumber
The number of the zone that this feedback applies to.
uInt8
TrackDuration
Duration of the current track returned as a integer value of seconds. Int32
TrackPosition
The current playback position of the track returned as an integer value of seconds. Int32
TrackTimeRemaining
The number of seconds remaining in the currently playing track. String(10)
TrackPositionString
The current playback position of the track returned as a formatted string value (ex: 1:23:45). String(10)
TrackTimeRemainingString
The amount of time remaining in the current track returned as a formatted string value (ex: 1:23:45).
String(10)
On/Off
Specifies whether to turn the specified type of feedback on or off. Valid values include: ON, OFF.
FEEDBACKREPEAT [ZoneNumber][RepeatState]
ZoneNumber
The number of the zone that this feedback applies to. uInt8
RepeatState
The current state of the repeat setting. Valid values include: ON, OFF.
String(3)
Feedback TrackPosition [On/Off]
DE SC R I P T I O N
Enabling this type of feedback will cause a feedback message to be sent any time the track position changes. During playback, this will result in one message being sent every second.
PARAMETE R S
RE SPO N S E D E FIN I T I O N S
Feedback RepeatChange [On/Off]
DE SC R I P T I O N
Enabling this type of feedback will cause a single feedback message to be sent when the playback Repeat state changes (on / off).
PARAMETE R S
RE SPO N S E D E FIN I T I ONS
Qsonix Integration Guide
Page | 27
On/Off
Specifies whether to turn the specified type of feedback on or off. Valid values include: ON, OFF. String(3)
FEEDBACKNOWPLAYINGCHANGED[ZoneNumber]
ZoneNumber
The number of the zone that this feedback applies to. uInt8
On/Off
Specifies whether to turn the specified type of feedback on or off. Valid values include: ON, OFF. String(3)
FEEDBACKPLAYSTATE[ZoneNumber][PlayState]
ZoneNumber
The number of the zone that this feedback applies to. uInt8
PlayState
Current playback status for the specified zone. Valid values include: Playing, Stopped, Paused. String(20)
On/Off
Specifies whether to turn the specified type of feedback on or off. Valid values include: ON, OFF. String(3)
FEEDBACKVOLUME[ZoneNumber][CurrentVolume]
ZoneNumber
The number of the zone that this feedback applies to. uInt8
CurrentVolume
Current volume of the specified zone as a percentage (0-100). uInt8
Feedback PlaylistChange [On/Off]
DE SC R I P T I O N
Enabling this type of feedback will cause a feedback message to be sent any time the Now Playing queue changes for a particular playback zone.
PARAMETE R S
RE SPO N S E D E FIN I T I O N S
Feedback PlaystateChange [On/Off]
DE SC R I P T I O N
Enabling this type of feedback will cause a feedback message to be sent any time the Now Playing queue changes for a particular playback zone.
PARAMETE R S
RE SPO N S E D E FIN I T I O N S
Feedback Volume [On/Off]
DE SC R I P T I O N
Enabling this type of feedback will cause a feedback message to be sent any time the Now Playing queue changes for a particular playback zone.
PARAMETE R S
RE SPO N S E D E FIN I T I O N S
Feedback All [On/Off]
DE SC R I P T I O N
Sets all feedback types on or off using a single command.
Qsonix Integration Guide
Page | 28
On/Off
Specifies whether to turn the specified type of feedback on or off. Valid values include: ON, OFF. String(3)
FEEDBACKSTATUS TRACKPOSITION[On/Off] TRACKCHANGE[On/Off] REPEATCHANGE[On/Off] PLAYLISTCHANGE[On/Off] PLAYSTATECHANGE[On/Off]
PARAMETE R S
Feedback GetValue
DE SC R I P T I O N
Returns a message that contains the current feedback settings.
PARAMETE R S
None
RE SPO N S E D E FIN I T I O N S
Qsonix Integration Guide
Page | 29
AlbumID
If specified, the cover art returned will correspond to the Album with the ID specified. This parameter should not be used in conjunction with TrackID. Only one of the two parameters should be used. Int32
TrackID
If specified, the cover art returned will correspond to the Album that contains the track with the ID specified. This parameter should not be used in conjunction with AlbumID. Only one of the two parameters should be used. Int32
Size
The size (in pixels) of the cover art image to be returned (maximum allowable size is 1000 pixels). If Reflect is turned on, the resulting image will have a width of this size and a height of twice this size. Int16
Reflect
If this parameter is specified with a value of ON, then the returned image will include a vertical reflection in the image. String(3)
Cover Art Image Support
Access to album cover art images is provided via HTTP using the built-in web server on the system. By using the available query string parameters to build a full cover art image URL, a jpeg bitmap can be retrieved from the server for any album in the system.
URL
http://<server address>/WebServices/CoverArtImage.aspx
QUERYSTRI N G P A R A M E TE R S
EXAMPLES
http://192.168.0.1/WebServices/CoverArtImage.aspx?AlbumID=12345&Size=100&Reflect=ON
http://192.168.0.1/WebServices/CoverArtImage.aspx?TrackID=4321&Size=250
Qsonix Integration Guide
Page | 30
Zone #
Specifies which zone should be acted upon. Must be 0 or a valid zone number.
Action
Specifies what action should be taken on the specified zone‟s now playing
playlist. Action must be one of the following values:
ClearAll – Clears all tracks from the playlist ClearPlayed – Clears all tracks that have completed playing from the playlist
Command
Description / Usage
GET PLAYLISTS REFRESH GET PLAYLISTS FIRST GET PLAYLISTS NEXT GET PLAYLISTS PREVIOUS GET PLAYLISTS LAST GET PLAYLISTS PAGESIZE
[PageSize]
Retrieves a list of playlists stored on the server. The PAGESIZE command can be used to set the number of playlists returned per page (specified by the PageSize parameter). This would typically be called upon initialization of the client application. Omitting the paging command parameter (ex: GET PLAYLISTS) will retrieve the current page index and can be useful for refreshing the contents of that page.
Response format:
PLAYLISTS[PageNumber][TotalPages] [TotalRows] [PlaylistID] [PlaylistName][TrackCount][PlaylistLength][LengthAsString]
Field Descriptions:
PageNumber – The number of the page being returned
(numbered from 1 to the total number of pages) TotalPages The total number of pages available for this response
TotalRows – The total number of rows available for this response PlaylistID – A system-assigned ID number uniquely assigned for
each playlist
PlaylistName – The user-specified description for the playlist TrackCount – Total number of tracks in the playlist PlaylistLength – Total duration of the playlist (in seconds) LengthAsString – Total duration of the playlist (formatted as
hh:mm:ss)
GET NOWPLAYING REFRESH [ZoneNumber] GET NOWPLAYING FIRST
This command is used to retrieve the current Now Playing list of tracks. This command includes an additional parameter of Zone Number and this is unique to the NOWPLAYING
Deprecated commands
Queue [Zone #] [Location]
This command has been replaced by the QueueItem command starting in version 2.4.8.
DE SC R I P T I O N
Adds the currently selected item to the Now Playing playlist for the specified [Zone]. The location in the current playlist that the item will be inserted is determined by the value of the Location parameter. The Location parameter is optional and if not specified, the default is End. Valid values for Location are listed below.
PARAMETE R S
Qsonix Integration Guide
Page | 31
[ZoneNumber] GET NOWPLAYING NEXT [ZoneNumber] GET NOWPLAYING PREVIOUS [ZoneNumber] GET NOWPLAYING LAST [ZoneNumber] GET NOWPLAYING CURRENT [ZoneNumber] GET NOWPLAYING PAGESIZE [PageSize]
commands. As with PLAYLISTS, the basic command “GET NOWPLAYING” will return the first page of tracks from the now
playing list. The PAGESIZE command can be used to set the number of playlists returned per page (specified by the PageSize parameter). This would typically be called upon initialization of the client application. The ZoneNumber parameter must be a value of either 1 or 2. Omitting the paging command parameter (ex: GET NOWPLAYING 1) will retrieve the current page index and can be useful for refreshing the contents of that page.
Response format:
NOWPLAYING[PageNumber] [TotalPages] [ZoneNumber] [TrackID]
[TrackTitle][AlbumTitle][AlbumArtistName][Sequence] [IsCurrent]
Field Descriptions:
PageNumber – The number of the page being returned
(numbered from 1 to the total number of pages) TotalPages The total number of pages available for this response
ZoneNumber - The number of the zone that this result applies to TrackID – A system-assigned ID number uniquely assigned to
each track in the system
TrackTitle – The name of the song / title of the track AlbumTitle – The title of the album on which the track appears AlbumArtistName – The name of the artist from the album
where the track appears. Sequence An incremented number assigned to each track in the now playing list. This indicates in which position the track appears in the list. IsCurrent – If this field is “1”, then this track is the currently playing track (or if stopped, it is the current index that would
play when play is started). If it is “0” (zero), this is not the
current track.
GET ZONENAME [ZoneNumber]
Used to retrieve the user-specified name assigned to each of the zones in the system. The ZoneNumber parameter must be a value of 1 or 2.
Response Format:
ZONENAME[ZoneNumber][ZoneName]
Field Descriptions:
ZoneNumber – The number of the zone ZoneName – The user-specified name of the zone
Qsonix Integration Guide
Page | 32
Loading...