Make/Model  Device VersionConnection Type
XM Radio/OnlineN/AInternet

Description:

The XM Radio Online driver provides Now Playing channel and guide information from the publically available data provided by the XM Radio website along with automatic cover art retrieval from Amazon and/or Napster. It is designed for people with XM hardware tuners (e.g. the Polk) who wish to have a more enhanced visual experience over the stock 16 character artist and song title information normally available.

Quirks and Limitations:

Guide details are only available for online channels. Cover art may not be available or may be incorrect.

Connection Details

The driver uses an Internet connection to the www.xmradio.com, www.amazon.com and www.napster.com web sites to retrieve guide data and cover art.

Driver Fields

This section lists the fields that the driver makes available, their types, minimum and maximum values, etc...

NameTypeR/WDescription/Limits
CurAlbumStringRThe album anme of the song playing on CurChannelNumber
CurArtistStringRThe artist name of the song playing on CurChannelNumber
CurChannelNameStringRThe name of the channel selected by CurChannelNumber
CurChannelNumberCardR/WGet or set the current XM radio channel number
CurColCookieStringRInternal field used by the media image widget
CurSongTitleStringRThe title of the song playing on CurChannelNumber
GuideAlbumsStringListRA list of Now Playlist Guide abums
GuideArtistsStringListRA list of Now Play Guide artists
GuideChannelCountCardRThe number of channels in the Now Playing Guide
GuideDelayUpdateSecCardWWrite number of seconds to this field that you want to "pause" guide updates. This is useful to use in the scroll up/down buttons for the vertical list browser widget to stop the guide from updating while someone is scrolling through the list.
GuideNamesStringListRA list of the Now Playing Guide channel names
GuideNumbersStringListRA list of Now Play Guide channel numbers
GuideSongTitlesStringListRA list of now playing guide song titles
GuideUpdatedTimeTimeRThe time the Now Playing Guide was last updated
GuideUpdatesCountCardR/WCountdown of number of minutes left before the driver will stop retrieving guide data. Set this when your template loads to an appropriate number

How do I use it?

  1. Set the CurChannelNumber field to a valid XM radio channel number (e.g. 26)
  2. The other detailed information fields will be populated automatically and updated every 20 seconds until CurChannelNumber is set to zero.
  3. Add logic to your template to set the CurChannelNumber field when you change channels on your XM receiver (this can also be done through the event manager)
  4. Modify your templates to use the additional fields available. To display cover art, use the Media Image Widget and use the driver field "CurColCookie".

How do I display the XM channel guide on my template?

  1. Build a template using the vertical list browser widgets and assign the driver fields to each column that you wish to show (GuideNumbers, GuideNames, GuideArtists, GuideAlbums, GuideSongTitles).
  2. On the load action for your template, set the driver field "GuideUpdatesCount" to the number of minutes you want to enable guide updates for (they are done once a minute so a value of 60 would give you 60 minutes of updates each time the template is loaded, think of it like winding up a timer. This prevents the driver from infinitely requesting data even when no one can see the guide).
  3. You can set an action on the GuideNumbers string list to change channel when someone clicks on a guide number. To do this, add an action similar to the following:
            Devices::FieldWrite(drivername.CurChannelNumber, %(IntfRTV:ListItemText))
  4. You may wish to add an action to your scroll up/down command buttons to write a value to the GuideDelayUpdateSec field each time someone scrolls to delay any guide updates while someone is navigating the channel guide (otherwise the vertical list browser will scroll back to the top when an update is received every minute). For example, to delay updates 30 seconds each time a scroll up or down button is pushed you would write this:
            Devices::FieldWrite(drivername.GuideDelayUpdateSec, 30)