DIscovery And Launch (DIAL)¶
Introduction¶
DIAL—for DIscovery And Launch—is a simple protocol that second-screen devices can use to discover and launch apps on first-screen devices. For example, your can stream a video from your embedded device on your connected TV.
Using¶
Add
COMPONENT_DEPENDS += DIAL
to your application componenent.mk file.Add these lines to your application:
#include <Dial/Client.h> static UPnP::ControlPoint controlPoint; static Dial::Client* myClient; // Call when IP address has been obtained void onIp(IpAddress ip, IpAddress mask, IpAddress gateway) { // ... /* Use UPnP to auto-discover all DIAL-enabled servers */ Dial::discover(controlPoint, [](Dial::Client& client) { // Are we looking for a specific device? Can match on friendlyName, UDN, etc. if(client.friendlyName() == F("FriendlyNameToFind")) { // Take a reference to the device myClient = &client; // Get an app and do something... auto& app = myClient->getApp("YouTube"); // Keep this device return true; } // Don't want this device, destroy it return false; }); // ... }
See the DIAL_Client sample application.
API Documentation¶
-
namespace
Dial
¶ -
-
class
Client
: public DeviceControl¶ - #include <Client.h>
Public Functions
-
App &
getApp
(const String &applicationId)¶ Get application object by name.
- Parameters
applicationId
: the unique application. A list of registered ids can be found here: http://www.dial-multiscreen.org/dial-registry/namespace-database#TOC-Registered-Names
- Return Value
App&
: Application object reference
-
App &
-
class
References¶
Source Code (submodule, may be patched).
UPnP Component