c++
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 DIAL_Client
sample application.
Dial