TPU SOUND PROJECT

Index:

  1. Introduction
  2. HW requirements
  3. SW requirements
  4. UPnP services used
  5. The UPnP control point
  6. The UPnP media renderer (smart speaker)
  7. The user interface

The UPnP control point:

CP Socket Message Recognizable Tags

TagServiceActionsEffects
GET_CURRENT_TRACK_MDATA--Scan the song stack, using now playing URI as "key", and retrieve the related metadata (author, album, year, duration)
GET_REL_TIME_POSITIONAVTGetPositionInfoObtain from renderer current track duration and actual time position (both in mm:ss format)
GET_VOLUME_ALLOW_RANGERC-Get from current renderer the maximum, minimum and step size volume levels, directly by reading the "Volume" state variable (output format is coded into an unique string)
GET_SONG_STACKCDBrowseThis tag is always sent 2 or more times in sequence, because at each message the behaviour is different. On first round, the content directory subscription is done (server selection is just accomplished) and the browsing routine start; when the complete loading of song matrix finished, the CP is put in song stack reading mode. For each next round, the html row of the results table is populated with the data taken directly from the song stack
GET_NAS_OPTIONS--With this message CP updates its device list (with a discovery), clear its NAS list and populate it back again. After these procedures, in a similar way with respect than GET_SONG_STACK, the CP is put in a "reading" state and for each media server on the list a single entry of the html select required by the GUI is sent back
GET_MR_IPV4_AND_PORT--For current media renderer, read the IP address and the port number at which its HTTP server is bind. This message is necessary for allowing Wi-Fi configuration interface operations when the renderer is connected in the LAN network for the first time