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.
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 :sample:`DIAL_Client` sample application.
.. doxygennamespace:: Dial
:members: