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 App
- #include <App.h>
-
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
- Returns
App& – Application object reference
-
App &getApp(const String &applicationId)
-
class App
References
Source Code (submodule, may be patched).
UPnP Component