| 80 | |
| 81 | |
| 82 | == Scenes == |
| 83 | === Making a renderer play a media delivered by a media server === |
| 84 | This functionality is exposed declaratively through the ''PlayDMSMedia'' action under Advanced Scenes. |
| 85 | |
| 86 | |
| 87 | === Making a renderer say something === |
| 88 | The DLNA Media Controller plugin exposes Text to Speech capability through Google's service. The functionality is exposed declaratively through the ''Say'' action under Advanced Scenes. |
| 89 | The functionality is also exposed programmatically via Lua code. |
| 90 | |
| 91 | To play a message, use this lua code: |
| 92 | {{{ |
| 93 | luup.call_action("urn:dlna-org:serviceId:DLNAMediaController1", "Say", |
| 94 | {Text="The sun shines outside", Language="en"}, |
| 95 | 666) |
| 96 | }}} |
| 97 | This action will pause the current playback, say the text, and then the playback will be resumed. |
| 98 | Language is a string of 2 characters, like en, fr ... |
| 99 | |
| 100 | To play a message setting the volume for the message at level 60: |
| 101 | {{{ |
| 102 | luup.call_action("urn:dlna-org:serviceId:DLNAMediaController1", "Say", |
| 103 | {Text="The sun shines outside", Language="en", Volume=60}, |
| 104 | 666) |
| 105 | }}} |
| 106 | The volume will be adjusted to play the message, and finally restored to its previous level. |
| 107 | When the Volume parameter is not used, the volume is not adjusted and the message is played with the current volume. |
| 108 | |
| 109 | To play a message using your personal OSX TTS server rather than using Google Internet service: |
| 110 | {{{ |
| 111 | luup.call_action("urn:dlna-org:serviceId:DLNAMediaController1", "Say", |
| 112 | {Text="The sun shines outside", Language="en", Engine="OSX_TTS_SERVER"}, |
| 113 | 666) |
| 114 | }}} |
| 115 | Two accepted values for the engine: "GOOGLE" for the Google Internet service and "OSX_TTS_SERVER" for a personal OSX TTS server. |
| 116 | |
| 117 | In addition, the Text to Speech capability can be setup with the following variables (use the TTS tab to adjust the values): |
| 118 | * `DefaultLanguageTTS` - default language used when calling the Say action; must be a string of 2 characters |
| 119 | * `DefaultEngineTTS` - default engine used when calling the Say action; must be either GOOGLE or OSX_TTS_SERVER |
| 120 | * `OSXTTSServerURL` - defines the location of your OSX TTS server; something like http://www.mypersonaltts.org:80 |
| 121 | |
| 122 | Notes: |
| 123 | * Google service may be removed at any time |
| 124 | * Explanations on how to setup the OSX TTS server: http://wolfpaulus.com/jounal/mac/ttsserver/ |
| 125 | * Parameters not specified will default internally. (''Language=en'', ''Engine=GOOGLE'', ''Volume=nil'') By default, the volume is not set. |
| 126 | |
| 127 | |
| 128 | === Making a renderer play an alert message === |
| 129 | This functionality is exposed declaratively through the ''Play'' action under Advanced Scenes. |
| 130 | The functionality is also exposed programmatically via Lua code: |
| 131 | {{{ |
| 132 | luup.call_action("urn:dlna-org:serviceId:DLNAMediaController1", "Play", |
| 133 | {URI="...", Duration=15}, |
| 134 | 666) |
| 135 | }}} |
| 136 | |
| 137 | If Duration parameter is set to a greater value than 0, this action will pause the current playback, play the alert, and the previous playback will be resumed when the delay defined by Duration expires. |
| 138 | If Duration parameter is unset or set to 0, this action will pause the current playback, play the alert, but then the previous playback will not be resumed. |
| 139 | |
| 140 | You can use the optional parameter Volume. The usage is exactly the same as for the Say action. |
| 141 | |
| 142 | Notes: |
| 143 | * Parameters not specified will default internally. (''Duration=0'', ''Protocol=nil'', ''Volume=nil'') By default, the volume is not set. |
| 144 | |
| 145 | |
| 146 | == Service Variables == |
| 147 | |
| 148 | `urn:dlna-org:serviceId:DLNAMediaController1` |
| 149 | * `BrowseResult` - for plugin internal usage |
| 150 | * `CheckStateRate` - number of minutes between each automatic online check, "0" to disable the automatic check |
| 151 | * `DebugLogs` - "1" when the debug logs are enabled or "0" when disabled |
| 152 | * `DefaultLanguageTTS` - default language for TTS, for example "en" |
| 153 | * `DefaultEngineTTS` - default engine for TTS, either "GOOGLE" or "OSX_TTS_SERVER" |
| 154 | * `DelayBeforePlayback` - |
| 155 | * `DescriptionURL` - description URL for the current renderer |
| 156 | * `DiscoveryPatchInstalled` - "1" when the !UPnP discovery patch is installed or "0" when not installed |
| 157 | * `DMRDiscoveryResult` - for plugin internal usage |
| 158 | * `DMSDiscoveryResult` - for plugin internal usage |
| 159 | * `MaxVolume` - maximum volume handled by the renderer |
| 160 | * `MinVolume` - minimum volume handled by the renderer |
| 161 | * `ModelName` - model of the renderer |
| 162 | * `Online` - "1" when the renderer is online or "0" when it is offline |
| 163 | * `OSXTTSServerURL` - URL of the TTS server |
| 164 | * `PlaybackResult` - for plugin internal usage |
| 165 | * `PluginVersion` - plugin version |
| 166 | * `ProxyUsed` - "proxy is in use" or "proxy is not in use" to indicate if the UPnP event proxy is in use |
| 167 | * `RouterIp` - router/firewall IP when the renderer can access the Vera only with a port forwarding rule |
| 168 | * `RouterPort` - router/firewall port when the renderer can access the Vera only with a port forwarding rule |
| 169 | |
| 170 | `urn:upnp-org:serviceId:AVTransport` |
| 171 | * `AVTransportURI` - |
| 172 | * `AVTransportURIMetaData` - |
| 173 | * `CurrentAlbum` - |
| 174 | * `CurrentAlbumArt` - |
| 175 | * `CurrentAlbumArt2` - |
| 176 | * `CurrentArtist` - |
| 177 | * `CurrentMediaDuration` - |
| 178 | * `CurrentPlayMode` - |
| 179 | * `CurrentStatus` - |
| 180 | * `CurrentTitle` - |
| 181 | * `CurrentTrack` - |
| 182 | * `CurrentTrackDuration` - |
| 183 | * `CurrentTrackMetaData` - |
| 184 | * `CurrentTrackURI` - |
| 185 | * `CurrentTransportActions` - |
| 186 | * `NumberOfTracks` - |
| 187 | * `RelativeTimePosition` |
| 188 | * `TransportPlaySpeed` - not updated when the UPnP event proxy is used |
| 189 | * `TransportState` - |
| 190 | * `TransportStatus` - |
| 191 | |
| 192 | `urn:upnp-org:serviceId:ConnectionManager` |
| 193 | * `SinkProtocolInfo` - |
| 194 | |
| 195 | `urn:upnp-org:serviceId:RenderingControl` |
| 196 | * `Mute` - "1" if volume muted or "0" if unmuted |
| 197 | * `Volume` - volume, value from 0 to 100 |