Source Communication Protocol for NuVoNet Adapter

22
NuVo Technologies, LLC 2395 Arbor Tech Dr. Hebron, KY 41048 Source Communication Protocol for NuVoNet Adapter Date 10/20/2010 Revision 1.0

Transcript of Source Communication Protocol for NuVoNet Adapter

Page 1: Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC

2395 Arbor Tech Dr.

Hebron, KY 41048

Source Communication Protocol for

NuVoNet Adapter

Date 10/20/2010

Revision 1.0

Page 2: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

i of i

Table of Contents

1.0 Objective ............................................................................................................................. 2

2.0 Serial Control Data Format ................................................................................................. 2

2.1 Command Example ......................................................................................................... 3

3.0 Commands .......................................................................................................................... 4

3.1 Request Version Information .......................................................................................... 4

3.2 Receive Restart Notification ........................................................................................... 4

3.3 Firmware Update Notification ........................................................................................ 4

3.4 Command the NuVoNet Adapter to Restart ................................................................... 4

3.5 Ping ................................................................................................................................. 4

3.6 Set Source Numbers ........................................................................................................ 5

3.7 Send Source Name .......................................................................................................... 5

3.8 Send Source-Specific Top-Level Menu Items ................................................................ 6

3.9 Send Source-Specific Favorites ...................................................................................... 6

3.10 Send Source Status .......................................................................................................... 7

3.11 Send Source Metadata................................................................................................... 10

3.12 Receive a Request to Prepare Album Art ..................................................................... 11

3.13 Receive a Request for a Album Art Fragment .............................................................. 12

3.14 Send a Message to a Zone or All Zones on a Source.................................................... 13

3.15 Receive Control Pad Button Press ................................................................................ 13

3.16 Receive Zone Request for a Source Menu Items .......................................................... 14

3.17 Receive Request to Keep a Menu Active or Exit a Menu ............................................ 16

3.18 Send Message Box ........................................................................................................ 16

3.19 Send Numeric/String Entry Dialog ............................................................................... 17

3.20 Receive Notification that a Favorite has been Selected ................................................ 17

3.21 Disable Ping .................................................................................................................. 18

3.22 Report Network Status (MPS4 only) ............................................................................ 18

3.23 Send a String out the Passthrough Port (MPS4 only) ................................................... 18

4.0 Usage Example ................................................................................................................. 18

Page 3: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 2

1.0 Objective This document describes the commands that will be required to implement a source for the

Grand Concerto System. The commands detailed in this document describe the communication

between the NuVoNet Adapter and the audio source.

2.0 Serial Control Data Format The communication will be at 57.6 kbaud, no parity and 1 stop bit. No hardware/software

handshaking is required. The commands are simple enough that they may be issued using a

terminal emulator like HyperTerm or Tera Term Pro. The specifics of the protocol are:

1) The data is all ASCII characters with exception of the terminating characters: carriage

return <CR> (or 0x0D hex) and line feed <LF> (or 0x0A hex). Upper or lower case

characters may be used.

2) All numerical fields are coded as ASCII digit characters.

3) All strings are enclosed in double quotes. When sending a string to the NuVoNet

Adapter, double quotes (“) and asterisks (*) must be escaped by a backslash.

4) All characters in strings should be from the ISO8859-1 (Latin 1) character set.

5) Arguments are delimited by commas.

6) All arguments must be specified.

7) Each Command string is STARTED with an ASCII “*” character and terminated by a

<CR>.

8) Each Response string issued by the NuVoNet Adapter will START with an ASCII “#”

character and be terminated with a <CR><LF>.

9) If a command has an error in it, or does not adhere to exact command syntax, or is not

recognized for any reason the NuVoNet Adapter will respond with a “#?<CR><LF>”

string.

10) Whenever the status of the NuVoNet Adapter has changed, a serial status message is sent

indicating the new state of the controller. It does not matter what caused the state change

(front panel buttons, Concerto Control Pads, serial commands, radio information, etc.)

These are unsolicited messages and the external device needs to handle the reception of

the messages to keep itself up-to-date with the NuVoNet Adapter.

Page 4: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 3

2.1 Command Example

This example will request the version information from the NuVo Grand Concerto:

CMD *VER<CR>

RSP #VER"NV-I8G FWv0.91 HWv0"<CR><LF>

This will be the format for all the commands listed in this manual. The <CR>

and <LF> will not be shown with the commands in this manual but MUST be

assumed.

Page 5: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 4

3.0 Commands

3.1 Request Version Information

This command can be used to check the version of the NuVoNet Adapter.

CMD *VER

RSP #VER"NV-NNA FWv1.00 HWv0”

3.2 Receive Restart Notification

This response is issued to the source whenever the source needs to re-identify itself. The source

should send the following items when this command is received:

1. source numbers

And then each specified source should send the following:

2. source name

3. source-specific top-level menu items

4. source track status

5. source metadata

6. source-specific favorites

RSP #RESTART”NuVoNet” or #RESTART”Bridge”

3.3 Firmware Update Notification

This response is issued when a firmware update is initiated. The firmware in the NuVoNet

Adapter can be updated by connecting it to a Grand Concerto or Essentia G after loading a

configuration that uses the NuVoNet adapter. After the firmware update finishes, the NuVoNet

Adapter will restart itself.

RSP #FWUPDATE

3.4 Command the NuVoNet Adapter to Restart

As a part of the controller‟s startup procedure, it should command the NuVoNet adapter to

restart.

RSP *RESTART

CMD #RESTART”Bridge”

3.5 Ping

This response is issued every 10 seconds to check that the source is still available. The source

should respond immediately to notify the NuVoNet Adapter that it is available.

Page 6: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 5

If it takes more than 10 seconds for the source to respond, it will be assumed that the source is

not available. The next time that the source does respond to a ping, a restart response will be

issued.

RSP #PING

CMD *PING

3.6 Set Source Numbers

This command should be issued during initialization to define the source numbers for this

device. Each attached source device should use a different source number and this number

should be configurable in software by the end user or installer. Note that if the device has

multiple independent audio outputs, it should use a separate source number for each independent

audio output.

CMD *SNUMBERSsource1,source2,source3,source4,source5,source6

Command Parameters

source1 0 – do not use source number 1 for this device

1 – use source number 1 for this device

source2 0 – do not use source number 2 for this device

1 – use source number 2 for this device

source3 0 – do not use source number 3 for this device

1 – use source number 3 for this device

source4 0 – do not use source number 4 for this device

1 – use source number 4 for this device

source5 0 – do not use source number 5 for this device

1 – use source number 5 for this device

source6 0 – do not use source number 6 for this device

1 – use source number 6 for this device

RSP #OK

3.7 Send Source Name

This command should be sent by a source to define the name that appears for this source in the

Grand Concerto sources menu. The source should send this command after receiving a restart

response.

CMD *SsNAME”name”

Command Parameters

S The source number for this device

Name The name of this source (up to 16 characters)

RSP #OK

Page 7: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 6

3.8 Send Source-Specific Top-Level Menu Items

This command should be sent by a source to define the menu items that should be inserted to the

top-level menu of the Grand Concerto Control Pad when the source is active. The source should

send this command after receiving a restart response.

CMD *SsMENUmenusize

Command Parameters

S The source number for this device

Menusize The total number of items in the top-level menu for this source (maximum of 10)

CMD *SsMENUITEMitemid,itemtype,albumartid,”description” (MI can be used in place of MENUITEM)

Command Parameters

S The source number for this device

Itemid

The id of the menu item. Use the standard main menu item IDs below.

menuidSourceOptions 0xFFFEFFFF

menuidSourceSettings 0xFFFEFFFE

menuidSourceActions 0xFFFEFFFD

menuidSourcePlaylist 0xFFFEFFFC

menuidSourceArtist 0xFFFEFFFB

menuidSourceAlbum 0xFFFEFFFA

menuidSourceGenre 0xFFFEFFF9

menuidSourceSong 0xFFFEFFF8

menuidSourceComposer 0xFFFEFFF7

menuidSourceBands 0xFFFEFFF6

menuidSourceBrowseChann 0xFFFEFFF5

menuidSourceInfo 0xFFFEFFF4

menuidSourceRadio 0xFFFEFFF3

menuidSourceQueue 0xFFFEFFF2

menuidSourcePresets1 0xFFFEF100

menuidSourcePresets2 0xFFFEF101

menuidSourcePresets3 0xFFFEF102

menuidSourcePresets4 0xFFFEF103

menuidSourcePresets5 0xFFFEF104

Itemtype

bitmask indicating how to display menu item

bit 0: the item has a sub-menu associated with it

bit 1: „play‟ will have a different effect than „select‟

bit 2: disabled menu item, do not allow „play‟ or „select‟

bit 3: display checkmark in front of this item

bit 4: advanced menu item, should be made difficult or impossible for user to access

bit 5: not implemented

bit 6: not implemented

bit 7: not implemented

Albumartid Not implemented, should be 0

“description” The description of the menu item (up to 40 characters)

RSP #OK

3.9 Send Source-Specific Favorites

This command should be sent by a source to define the favorites menu items that should be

inserted into the global favorites menu. The source should send this command after receiving a

restart response. The source should also resend this whenever it‟s favorites change. If the source

Page 8: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 7

device has three outputs that all have access to the same set of favorites, only one of the sources

needs to send its favorites and it should specify the other source numbers as alternates. The

Grand Concerto will try to find an available source to play a favorite on when it is selected.

CMD *SsFAVORITEScount,alternate1,alternate2,alternate3,alternate4,alternate5,alternate6

Command Parameters

S The source number for this device

Count The total number of favorites for this source (maximum of 20)

alternate1 0 – this source does not share favorites with source number 1

1 – this source shares its favorites with source number 1

alternate2 0 – this source does not share favorites with source number 2

1 – this source shares its favorites with source number 2

alternate3 0 – this source does not share favorites with source number 3

1 – this source shares its favorites with source number 3

alternate4 0 – this source does not share favorites with source number 4

1 – this source shares its favorites with source number 4

alternate5 0 – this source does not share favorites with source number 5

1 – this source shares its favorites with source number 5

alternate6 0 – this source does not share favorites with source number 6

1 – this source shares its favorites with source number 6

CMD *SsFAVORITESITEMitemid,itemtype,albumartid,”description”

Command Parameters

S The source number for this device

Itemid The id of the item

Itemtype

bitmask indicating how to display menu item

bit 0: the item has a sub-menu associated with it

bit 1: „play‟ will have a different effect than „select‟

bit 2: disabled menu item, do not allow „play‟ or „select‟

bit 3: display checkmark in front of this item

bit 4: advanced menu item, should be made difficult or impossible for user to access

bit 5: not implemented

bit 6: not implemented

bit 7: not implemented

albumartid Not implemented, should be 0

“description” The description of the favorite (up to 40 characters)

RSP #OK

3.10 Send Source Status

This information should be sent to update the position, duration, source status, album art, source

mode, and supported actions for the currently playing track. Note that this command does not

need to be sent repeatedly during playback. If the play mode is any of the “playing” modes, the

Control Pad will automatically increment the position information.

Page 9: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 8

The source should send this command whenever duration, source status, album art id, source

mode, or supported actions change or if position changes in a manner that cannot be determined

by the Control Pad, such as fast-forward and rewind. The source should also send this command

in response to the restart response.

CMD *SsDISPINFOTWOduration,position,deprecatedstatus,albumartid,sourcemode,sourcestatus,supportedactions

Command Parameters

S The source number for this device

Duration Length of currently playing song in 10ths of seconds

Position Position in currently playing song in 10ths of seconds (0xFFFFFFFF will be ignored)

deprecatedstatus

0 – Normal

1 – Idle

2 – Playing

3 – Paused

4 – Fast Forward

5 – Rewind

6 – Play Shuffle

7 – Play Repeat

8 – Play Shuffle Repeat

albumartid Album art ID for the currently playing track. Use 0 if none available.

sourcemode

0 - Unknown mode, display device will use information from deprecatedstatus

1 – Tuner mode

2 – Music Server mode

3 – Pandora mode

Page 10: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 9

sourcestatus

If sourcemode=Tuner

bit 0: TunerStepTune

bit 1: TunerSeekTune

bit 2: TunerPresetTune

bit 3: TunerStrength0

bit 4: TunerStrength1

bit 5: TunerStrength2

bit 6: TunerStrength3

bit 7: TunerStrength4

bit 8: TunerStrength5

bit 9: TunerStrengthStereo

If sourcemode=Music Server

bit 0: MusicServerIdle

bit 1: MusicServerPlay

bit 2: MusicServerPause

bit 3: MusicServerFastForward

bit 4: MusicServerRewind

bit 5: MusicServerShuffle

bit 6: MusicServerRepeat

If sourcemode=Pandora

bit 0: PandoraIdle

bit 1: PandoraPlay

bit 2: PandoraPause

bit 3: PandoraThumbsUp

bit 4: PandoraThumbsDown

supportedactions

bit 0: PlayPause

bit 1: NextTrack

bit 2: PreviousTrack

bit 3: ShuffleToggle

bit 4: RepeatToggle

bit 5: TuneUp

bit 6: TuneDown

bit 7: SeekUp

bit 8: SeekDown

bit 9: PresetUp

bit 10: PresetDown

bit 11: DirectFrequencyEntry

bit 12: DirectPresetEntry

bit 13: NextBand

bit 14: ThumbsUp

bit 15: ThumbsDown

bit 16: GetActions – done with a MENUREQUEST for menuidSourceActions

bit 17: GetSourceOptions – done with a MENUREQUEST for menuidSourceOptions

RSP #OK

Page 11: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 10

The following version of the DISPINFO command remains for backward compatibility with the

initial version of this protocol document. New implementations should use DISPINFOTWO.

CMD *SsDISPINFOduration,position,mode (this command was deprecated with version 1.04 of the NV-NNA

firmware) Command Parameters

s The source number for this device

duration Length of currently playing song in 10ths of seconds

position Position in currently playing song in 10ths of seconds (0xFFFFFFFF will be ignored)

mode=0 Normal

mode=1 Idle

mode=2 Playing

mode=3 Paused

mode=4 Fast Forward

mode=5 Rewind

mode=6 Play Shuffle

mode=7 Play Repeat

mode=8 Play Shuffle Repeat

RSP #OK

3.11 Send Source Metadata

This command should be used to update the metadata for the “now playing” display on the

Control Pad. This command is not used for populating menus. This command should be sent

whenever metadata changes. It should also be sent whenever the restart response is received.

CMD *SsDISPLINESlayout1,layout2,layout3,”string1”,”string2”,”string3”,"string4"

Command Parameters

S The source number for this device

layout1

Specifies how to layout these strings for a one line display

0: string1 – string2 – string3 – string4

1: string1 – string2 – string4

2: string3 – string4

Page 12: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 11

layout2

Specifies how to layout these strings for a two line display

0:

string1 – string2

string3 – string4

1:

string1 – string2

string4

2:

string1

string3 – string4

3:

string1

string2

layout3

Specifies how to layout these strings for a three line display

0:

string1 – string2

string3

string4

1:

string1

string3 – string2

string4

string2

string1 The first string (20 characters max)

string2 The second string (80 characters max)

string3 The third string (80 characters max)

string4 The fourth string (80 characters max)

RSP #OK

3.12 Receive a Request to Prepare Album Art

This response is used to request that a source prepare an album art image. The

ALBUMARTAVAILABLE response may come back a few seconds after the request. The

source must only maintain one album art image at any given time. If a new request is made

before the previous request is serviced, then the old request should be discarded and the new

request should be processed.

RSP #SsALBUMARTREQalbumartid,width,height,constrainmode,backgroundrgb,rotationz,reflectionelevation,reflectionheight%

reflectionopacity%,imageformat

Response packet breakdown

S The source number for this device

Albumartid Album art ID being requested.

Width The requested width in pixels

Height The requested height in pixels

Page 13: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 12

constrainmode

0 – none, return an image that fills the requested aspect ratio by stretching or compressing the image

1 – bounds, do not stretch image to fill aspect ratio

2 – center, put image center at center of aspect ratio and respect aspect ratio

backgroundrgb RGB for background (ignored when using transparency). This should be formatted as 0xRRGGBB.

Rotationz Z-axis rotation in degrees (positive values rotate right side away). Valid values are –90 to +90.

reflectionelevation Reflection elevation in pixels

reflectionheight% Reflection height as a percentage of image height

reflectionopacity% Reflection opacity percentage

imageformat

0 – png

1 – jpg

2 – gif

3 - bmp

CMD *SsALBUMARTAVAILABLEalbumartid,sizeinbytes

Command Parameters

S The source number for this device

Albumartid Album art ID that is available, use 0 if requested album art is not available

Sizeinbytes The size in bytes of the album art image.

RSP #OK

3.13 Receive a Request for a Album Art Fragment

The following response is issued to retrieve a portion of the album art image that was generated

by the ALBUMARTREQ command. If the album art image is not available, the source should

send “*ALBUMARTFRAG0,0,0,0”.

RSP #SsALBUMARTFRAGREQalbumartid,offsetinbytes,numbytes

Response packet breakdown

S The source number for this device

albumartid Album art ID being requested.

offsetinbytes The offset in bytes from the beginning of the file

numbytes The number of bytes being requested

CMD *SsALBUMARTFRAGalbumartid,offsetinbytes,base64datalength,base64data

Command Parameters

S The source number for this device

albumartid Album art ID for the album art that this fragment belongs to.

offsetinbytes The offset in bytes from the beginning of the file

base64datalength The number of characters in the base 64 data string

base64data Base64 encoded data, see “The Base 64 Alphabet” in RFC 4648. No line feeds or carriage

returns should be embedded in this string

RSP #OK

Page 14: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 13

3.14 Send a Message to a Zone or All Zones on a Source

This command will send a text message to a single zone or all zones on a source with different

importance levels and dwell times.

CMD *SsZzMSG"string",importance,dwelltime

Command Parameters

S The source number for this device

Z The zone to send the message to (1-20), 0 for all zones on this source

string Text message to send (80 character max)

Importance

0 - Information message

1 – Warning message

2 – Error message

3 – Flash the message

dwelltime

0 - Normal dwell time

1 – Short dwell time

2 – Long dwell time

RSP #OK

3.15 Receive Control Pad Button Press

This command will be sent to notify the source that a button was pressed on a Control Pad that

requires action from the source. The source is responsible for determining what action to take in

response to the button press.

RSP #ZzSsBUTTONb,action,menuid,itemid,itemindex,”optionalstring”

Response packet breakdown

Z The zone to send the message from: 1 to 20

S The source number for this device

Page 15: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 14

B

0x01 - OK button was pressed

0x02 - PLAYPAUSE button was pressed

0x03 - PREV button was pressed

0x04 - NEXT button was pressed

0x05 - POWERMUTE button was pressed, source will not receive this

0x06 - UP button was pressed, source will not receive this

0x07 - DOWN button was pressed, source will not receive this

0x29 - DISCRETEPLAYPAUSE button was pressed

0x2A - DISCRETENEXTTRACK button was pressed

0x2B - DISCRETEPREVIOUSTRACK button was pressed

0x2C - SHUFFLETOGGLE button was pressed

0x2D - REPEATTOGGLE button was pressed

0x2E - TUNEUP button was pressed

0x2F - TUNEDOWN button was pressed

0x30 - SEEKUP button was pressed

0x31 - SEEKDOWN button was pressed

0x32 - PRESETUP button was pressed

0x33 - PRESETDOWN button was pressed

0x34 - DIRECTFREQUENCYENTRY button was pressed

0x35 - DIRECTPRESETENTRY button was pressed

0x36 - NEXTBAND button was pressed

0x37 - THUMBSUP button was pressed

0x38 - THUMBSDOWN button was pressed

action

0 - Button action is DOWNUP – button press and immediate release

1 - Button action is DOWN – WILL be followed by an UP action

2 - Button action is UP – Only valid when menus are not active

menuid ID of the active menu, 0 for no menu, 0xFFFFFFFF for top-level menu

itemid ID of the selected menu item

itemindex Index of the selected menu item

“optionalstring” Optional string to provide an additional argument to buttons that require a string argument. The

only existing buttons that use the string argument are DIRECTFREQUENCYENTRY and

DIRECTPRESETENTRY.

3.16 Receive Zone Request for a Source Menu Items

This command is used for a zone to request a list of up to 20 menu items. If a menu contains

more than 20 items, then multiple menu requests will be made in order to retrieve the entire list.

The zone will wait for the response to each menu request before issuing the next menu request.

RSP #ZzSsMENUREQmenuid,up,location,itemindex

Response packet breakdown

Z The zone the message is from: 1 to 20

S The source number for this device

menuid ID of the menu being requested. Requests for menuidSourceOptions should return source

options. Requests for menuidSourceActions should return source actions.

up 0=ignore this argument

1=parent menu of the current menu is being requested. Ignore the remaining arguments to this

command.

Page 16: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 15

location

0 - Requesting block starting with first item in menu (i.e. „home‟ button)

1 - Requesting block ending with last item in menu (i.e. „end‟ button)

2 - Requesting block starting with itemindex (used when scrolling down a list)

3 - Requesting block ending with itemindex (used when scrolling up a list)

4 – Requesting block starting with the first item that comes after letter specified in itemindex

alphabetically

itemindex Used as a base index for menu requests with location=2 or location=3. If location=4, then this is

the numeric ASCII representation of the character.

CM

D

*SsZzMENUmenuid,timeout,albumartid,menusize,selecteditemindex,firstblockitemindex,blocksize,”de

scription” Command Parameters

S The source number for this device

Z The zone the message is to: 1 to 20

menuid The id of the menu, if 0 the Control Pad will exit the menu completely. If 0xFFFFFFFF the

Control Pad will return to the top-level menu.

timeout 0=normal menu

n=Control Pad will display countdown and automatically take highlighted action after n seconds

albumartid Not implemented, should be 0

menusize The total number of items in the menu, 0xFFFF indicates that a menu may take some time to

retrieve, Control Pad will indicate this to the user.

selectediteminde

x The index of the selected item, this parameter will be ignored if it is equal to 0xFFFF

firstblockitemin

dex The index of the first item in this block

blocksize The number of items in this block

“description” The description of the menu (up to 40 characters)

menumode

Bit 0: menumodePreview

Bit 1: menumodeOneCheck

Bit 2: menumodeNumericEntry

Bit 3: menumodeCodeEntry

Bit 4: menumodeTextOnly

Bit 5: menumodeAlphaSupport – set this bit if the list supports navigation by letter

CM

D

*SsZzMENUITEMitemid,itemtype,albumartid,”description” (MI can be used in place of

MENUITEM) Command parameters

S The source number for this device

Z The zone the message is to: 1 to 20

itemid The id of the menu item

itemtype

bitmask indicating how to display menu item

bit 0: the item has a sub-menu associated with it

bit 1: „play‟ will have a different effect than „select‟

bit 2: disabled menu item, do not allow „play‟ or „select‟

bit 3: display checkmark in front of this item

bit 4: advanced menu item, will be made difficult or impossible for user to access

bit 5: not implemented

bit 6: not implemented

bit 7: not implemented

Page 17: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 16

albumartid Not implemented, should be 0

“description” The description of the menu item (up to 40 characters)

RSP #OK

3.17 Receive Request to Keep a Menu Active or Exit a Menu

This response is used for a Control Pad to keep a menu from timing out or to notify the source

that it has exited the menu.

RSP #ZzSsMENUACTIVEmenuid,exit

Response packet breakdown

Z The zone the message is from: 1 to 20

S The source number for this device

Menuid ID of the currently active menu.

Exit

0=keep the menu active, prevent timeout (this could be used when a user is scrolling up and

down through a list of items that has already been retrieved from the source).

1=exit the menu (the Control Pad has exited the menu).

3.18 Send Message Box

This command is used to send a message box to a single zone. A message box will have a title, a

message, and up to 5 buttons for the user to press.

CMD *SsZzMESSAGEBOXmessageboxid,timeout,albumartid, numbuttons,

defaultbuttonindex,”title”,”message” Command Parameters

S The source number for this device

Z The zone the messagebox is to: 1 to 20

messageboxid The id of the message box, if 0 the Control Pad will hide the message box. When a button is

pressed in the message box, the messageboxid will be passed in the menuid field.

Timeout

0=normal message box

n=Control Pad will display countdown and automatically take action associated with

defaulbuttonindex after n seconds.

Albumartid Album art ID for album art to be associated with the message box. Use 0 if no album art

available.

Numbuttons The total number of buttons to be displayed on the message box: 1 to 5

defaultbuttonindex The index of the default button: 0 to 4

“title” The description of the message box (up to 40 characters)

“message” The message to be inside the body of the message box (up to 500 characters)

CMD *SsZzMESSAGEBOXBUTTONitemid,albumartid,”description”

Command parameters

S The source number for this device

Page 18: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 17

Z The zone the message box is to: 1 to 20

Itemid The id of the message box button. When a button is pressed in the message box, the itemid of

the pressed button will be passed back as the itemid in the BUTTON command.

Albumartid Album art ID for album art to be associated with the button. Use 0 if no album art available.

“caption” The caption for the button (up to 40 characters)

RSP #OK

3.19 Send Numeric/String Entry Dialog

This command is used to tell a keypad to display a numeric or string entry dialog. This string

entry dialog will have a title, instructions and room for entering up to a 20 characters.

CMD *SsZzSTRINGENTRYstringentryid,mode,timeout,maxstring,”title”,”instructions”,”initialstring”

Command Parameters

S The source number for this device

Z The zone the message is to: 1 to 20

Stringentryid The id of the string entry dialog, if 0 the Control Pad will hide the string entry dialog. When a

button is pressed in the dialog box, the stringentryid will be passed in the menuid field.

Mode

16 bit bitmask indicating how to display menu item

bit 0: standard lower-case letters supported

bit 1: standard upper-case letters supported

bit 2: numbers supported

bit 3: symbols supported (.;%# etc.)

bit 4: spaces supported

bit 5: characters in the character set but not in the standard alphabet are supported

bit 6: date entry in the MMDDYY format – if set, this will override lower bits in this field

bit 7: time entry in the 24 hour format – if set, this will override lower bits in this field

Timeout

0=normal string entry dialog, normal keypad timeouts apply

n=Control Pad will display countdown and automatically remove the string entry dialog after n

seconds

Maxstring The maximum length of the string to be entered (1-20)

“title” The title of the string entry dialog (up to 40 characters)

“instructions” Short instructions to display on the string entry dialog (up to 80 characters)

“initialstring” The initial string to be displayed. Use MMDDYY format for date and 24-hour HHMM for time.

3.20 Receive Notification that a Favorite has been Selected

This response is used for a Control Pad to notify a source that one of the source‟s favorites has

been selected. The source should take the appropriate action, which is usually to play the

favorite that was selected.

RSP #SsFAVORITEfavoriteid

Response packet breakdown

Page 19: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 18

S The source number for this device

Favoriteid The ID of the favorite that was selected

3.21 Disable Ping

This command can be used to disable the ping functionality. During development of a driver

that communicates with the NuVoNet Adapter, the requirement to respond to a ping every 10

seconds may make it difficult to debug the driver. This command should be used for

development purposes only. Released versions of drivers should not use this command.

Normal ping functionality will resume the next time that the NuVoNet Adapter is rebooted.

CMD *_DISABLEPING

RSP #OK

3.22 Report Network Status (MPS4 only)

This command can be sent to the NV-MPS4 to indicate the status of the LAN connection. It will

control the front panel LED.

CMD *NETWORKSTATUSx

x

X=0 No physical connection

X=1 No LAN connectivity

X=2 No WAN connectivity

X=3 Connection OK

RSP #OK

3.23 Send a String out the Passthrough Port (MPS4 only)

This command can be sent to the NV-MPS4 to send a string out the Passthrough port.

CMD *PASSTHROUGH”string”

string The string to send out the passthrough port (up to 500 characters)

RSP #OK

4.0 Usage Example #RESTART Grand Concerto was restarted, source needs to re-identify itself.

*VER #VER"NV-NNA FWv1.00 HWv0"

Page 20: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 19

*SNUMBERS1,0,0,0,0,0 Use source number 1 #OK

*S1NAME”My Source” Send the source name #OK

*S1MENU,6 Send the source-specific top-level menu items *S1MENUITEM1,1,0,”Playlists” *S1MENUITEM2,1,0,”Artists” *S1MENUITEM3,1,0,”Albums” *S1MENUITEM4,1,0,”Genres” *S1MENUITEM5,1,0,”Songs” *S1MENUITEM6,1,0,”Options” #OK

*S1DISPINFO2000,1240,2 Update track status for this source #OK

*S1DISPLINES2,2,1,”2 of 14”, ”White Album”, ”The Beatles”, ”Rocky Raccoon” Update the

metadata for this source

#OK

*S1FAVORITES2,1,0,0,0,0,0 Send the source-specific favorites

*S1FAVORITESITEM1234,0,0,”Dinner Music” *S1FAVORITESITEM5678,0,0,”Party Playlist” #OK

At this point the source has completely re-identified itself. Let‟s assume that a few seconds later,

someone selects this source from zone 1, enters the menu, and selects “Artists”.

#Z1S1BUTTON1,1,0xFFFFFFFF,2,3 OK button pressed on “Artists” in main menu

*S1Z1MENU27,0,0,33,0,0,20,”Artists” Source responds with first 20 items in the “Artists” menu *S1Z1MENUITEM1,1,0,”Artist 1” *S1Z1MENUITEM2,1,0,”Artist 2” *S1Z1MENUITEM3,1,0,”Artist 3” *S1Z1MENUITEM4,1,0,”Artist 4” *S1Z1MENUITEM5,1,0,”Artist 5” *S1Z1MENUITEM6,1,0,”Artist 6” *S1Z1MENUITEM7,1,0,”Artist 7” *S1Z1MENUITEM8,1,0,”Artist 8” *S1Z1MENUITEM9,1,0,”Artist 9” *S1Z1MENUITEM10,1,0,”Artist 10” *S1Z1MENUITEM11,1,0,”Artist 11” *S1Z1MENUITEM12,1,0,”Artist 12” *S1Z1MENUITEM13,1,0,”Artist 13” *S1Z1MENUITEM14,1,0,”Artist 14” *S1Z1MENUITEM15,1,0,”Artist 15” *S1Z1MENUITEM16,1,0,”Artist 16” *S1Z1MENUITEM17,1,0,”Artist 17” *S1Z1MENUITEM18,1,0,”Artist 18” *S1Z1MENUITEM19,1,0,”Artist 19” *S1Z1MENUITEM20,1,0,”Artist 20”

Page 21: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 20

#OK

#Z1S1MENUREQ27,0,2,20 Zone 1 requests items starting with index 20

*S1Z1MENU27,0,0,33,0xFFFF,20,13,”Artists” Source responds with items starting with index 20 *S1Z1MENUITEM21,1,0,”Artist 21” *S1Z1MENUITEM22,1,0,”Artist 22” *S1Z1MENUITEM23,1,0,”Artist 23” *S1Z1MENUITEM24,1,0,”Artist 24” *S1Z1MENUITEM25,1,0,”Artist 25” *S1Z1MENUITEM26,1,0,”Artist 26” *S1Z1MENUITEM27,1,0,”Artist 27” *S1Z1MENUITEM28,1,0,”Artist 28” *S1Z1MENUITEM29,1,0,”Artist 29” *S1Z1MENUITEM20,1,0,”Artist 30” *S1Z1MENUITEM21,1,0,”Artist 31” *S1Z1MENUITEM22,1,0,”Artist 32” *S1Z1MENUITEM23,1,0,”Artist 33” #OK

#Z1BUTTON2,1,27,17,16 PLAYPAUSE button pressed on “Artist 17” in “Artists” menu

*S1Z1MENU0,0,0,0,0,0,0,”” Source tells Control Pad to exit menu completely #OK

*S1DISPINFO2320,0,2 Update track status for this source #OK

*S1DISPLINES2,2,1,”1 of 25” ,”Album 1” ,”Artist 17” ”Song 1” Update the metadata for this

source

#OK

Page 22: Source Communication Protocol for NuVoNet Adapter

Source Communication Protocol for NuVoNet Adapter

NuVo Technologies, LLC 2007

Revision: 1.0

Page 21

HISTORY

3-Apr-09 DISPINFO command

changed „mode‟ to „deprecated_status‟.

added sourcemode

added sourcestatus

added supportedactions

added albumartid

Added DIALOGBOX command

Added ALBUMARTREQ command

BUTTON command

added new button IDs

added optional string

Added fixed menu IDs to be used for Source Options and Source Actions

11-May-09 Added STRINGENTRY command

13-May-09 Renamed DIALOGBOX command to MESSAGEBOX command

18-May-09 The version of DISPINFO with added parameters is now called DISPINFOTWO.

19-May-09 Changed Base64 encoding to use RFC4648

20-May-09 Changed numbytes in ALBUMARTFRAG to base64datalength

19-Jun-09 Added NETWORKSTATUS command

6-Jul-09 Specified all special item IDs for the source main menu items

4-Aug-09 Added menumode to SsZzMENU command

Added alpha navigation support to ZzSsMENUREQ (location, itemindex)