Arduino DLNA Server
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
tiny_dlna::DLNAMediaServer Class Reference

Digital Media Server implementation. More...

#include <DLNAMediaServer.h>

Inheritance diagram for tiny_dlna::DLNAMediaServer:
Inheritance graph
[legend]

Classes

struct  ActionRule
 

Public Types

typedef void(* PrepareDataCallback) (const char *objectID, ContentQueryType queryType, const char *filter, int startingIndex, int requestedCount, const char *sortCriteria, int &numberReturned, int &totalMatches, int &updateID, void *reference)
 Callback signature for preparing data for Browse or Search requests.
 
typedef bool(* GetDataCallback) (int index, MediaItem &item, void *reference)
 Callback signature for retrieving a MediaItem by index.
 

Public Member Functions

 DLNAMediaServer ()
 Default constructor for MediaServer. Initializes device information and default properties.
 
 DLNAMediaServer (HttpServer &server, IUDPService &udp)
 Recommended constructor Construct a MediaServer with associated HTTP server and UDP service This constructor stores the provided server/udp references so begin() can be called without parameters.
 
 ~DLNAMediaServer ()
 Destructor.
 
void setHttpServer (HttpServer &server)
 Set the http server instance the MediaServer should use.
 
void setUdpService (IUDPService &udp)
 Set the UDP service instance the MediaServer should use.
 
bool begin ()
 
void end ()
 Stops the processing and releases the resources.
 
bool loop ()
 call this method in the Arduino loop as often as possible
 
void setSearchCapabilities (const char *caps)
 Define the search capabilities: use csv.
 
const char * getSearchCapabilities ()
 Get the search capabilities string (CSV)
 
void setSortCapabilities (const char *caps)
 Define the sort capabilities: use csv.
 
const char * getSortCapabilities ()
 Get the sort capabilities string (CSV)
 
void setConnectionID (const char *id)
 Set the active ConnectionID for the connection manager.
 
const char * getConnectionID ()
 Return the currently configured ConnectionID.
 
void setProtocols (const char *source, const char *sink="")
 Define the source protocol info: use csv Default is http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN,http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM,http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_MED,http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_HD_50_AC3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_HD_60_AC3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_HP_HD_AC3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_MP_HD_AAC_MULT5_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_MP_HD_AC3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_MP_HD_MPEG1_L3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_MP_SD_AAC_MULT5_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_MP_SD_AC3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_MP_SD_MPEG1_L3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_PAL,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_TS_HD_NA_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_TS_SD_NA_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_TS_SD_EU_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG1,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_MP_SD_AAC_MULT5,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_MP_SD_AC3,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_BL_CIF15_AAC_520,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_BL_CIF30_AAC_940,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_BL_L31_HD_AAC,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_BL_L32_HD_AAC,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_BL_L3L_SD_AAC,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_HP_HD_AAC,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_MP_HD_1080i_AAC,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_MP_HD_720p_AAC,http-get:*:video/mp4:DLNA.ORG_PN=MPEG4_P2_MP4_ASP_AAC,http-get:*:video/mp4:DLNA.ORG_PN=MPEG4_P2_MP4_SP_VGA_AAC,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_HD_50_AC3,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_HD_50_AC3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_HD_60_AC3,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_HD_60_AC3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_HP_HD_AC3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_HD_AAC_MULT5,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_HD_AAC_MULT5_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_HD_AC3,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_HD_AC3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_HD_MPEG1_L3,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_HD_MPEG1_L3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_SD_AAC_MULT5,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_SD_AAC_MULT5_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_SD_AC3,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_SD_AC3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_SD_MPEG1_L3,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_SD_MPEG1_L3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_TS_HD_NA,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_TS_HD_NA_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_TS_SD_EU,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_TS_SD_EU_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_TS_SD_NA,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_TS_SD_NA_T,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVSPLL_BASE,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVSPML_BASE,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVSPML_MP3,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_BASE,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_FULL,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_PRO,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVHIGH_FULL,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVHIGH_PRO,http-get:*:video/3gpp:DLNA.ORG_PN=MPEG4_P2_3GPP_SP_L0B_AAC,http-get:*:video/3gpp:DLNA.ORG_PN=MPEG4_P2_3GPP_SP_L0B_AMR,http-get:*:audio/mpeg:DLNA.ORG_PN=MP3,http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMABASE,http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMAFULL,http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMAPRO,http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMALSL,http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMALSL_MULT5,http-get:*:audio/mp4:DLNA.ORG_PN=AAC_ISO_320,http-get:*:audio/3gpp:DLNA.ORG_PN=AAC_ISO_320,http-get:*:audio/mp4:DLNA.ORG_PN=AAC_ISO,http-get:*:audio/mp4:DLNA.ORG_PN=AAC_MULT5_ISO,http-get:*:audio/L16;rate=44100;channels=2:DLNA.ORG_PN=LPCM,http-get:*:image/jpeg:*,http-get:*:video/avi:*,http-get:*:video/divx:*,http-get:*:video/x-matroska:*,http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/x-msvideo:*,http-get:*:video/x-flv:*,http-get:*:video/x-tivo-mpeg:*,http-get:*:video/quicktime:*,http-get:*:audio/mp4:*,http-get:*:audio/x-wav:*,http-get:*:audio/x-flac:*,http-get:*:audio/x-dsd:*,http-get:*:application/ogg:http-get::application/vnd.rn-realmedia:http-get::application/vnd.rn-realmedia-vbr:http-get::video/webm:*.
 
const char * getSourceProtocols ()
 Get the current source ProtocolInfo string.
 
const char * getSinkProtocols ()
 Get the current sink ProtocolInfo string.
 
void setPrepareDataCallback (PrepareDataCallback cb)
 Sets the callback that prepares the data for the Browse and Search.
 
void setGetDataCallback (GetDataCallback cb)
 Sets the callback that provides a MediaItem by index.
 
void setReference (void *ref)
 Sets a user reference pointer, available in callbacks.
 
HttpServergetHttpServer ()
 Provides access to the http server.
 
int getSystemUpdateID ()
 Provides access to the system update ID.
 
int incrementSystemUpdateID ()
 
DLNADevicedevice ()
 Provides access to the internal DLNA device instance.
 
void setCustomActionRule (const char *suffix, bool(*handler)(DLNAMediaServer *, ActionRequest &, HttpServer &))
 Define your own custom logic.
 
void print (Print &out)
 renders the device xml
 
void setDeviceType (const char *st)
 
const char * getDeviceType ()
 
void setUDN (const char *id)
 Define the udn uuid.
 
const char * getUDN ()
 Provide the udn uuid.
 
void setBaseURL (const char *url)
 Defines the base url.
 
void setBaseURL (IPAddress ip, int port, const char *path=nullptr)
 Defines the base URL.
 
const char * getBaseURL ()
 Provides the base url.
 
UrlgetDeviceURL ()
 This method returns base url/device.xml.
 
void setIPAddress (IPAddress address)
 Defines the local IP address.
 
IPAddress getIPAddress ()
 Provides the local IP address.
 
const char * getIPStr ()
 Provides the local address as string.
 
void setNS (const char *ns)
 
const char * getNS ()
 
void setFriendlyName (const char *name)
 
const char * getFriendlyName ()
 
void setManufacturer (const char *man)
 
const char * getManufacturer ()
 
void setManufacturerURL (const char *url)
 
const char * getManufacturerURL ()
 
void setModelDescription (const char *descr)
 
const char * getModelDescription ()
 
void setModelName (const char *name)
 
const char * getModelName ()
 
void setModelNumber (const char *number)
 
const char * getModelNumber ()
 
void setSerialNumber (const char *sn)
 
const char * getSerialNumber ()
 
void setUniversalProductCode (const char *upc)
 
const char * getUniversalProductCode ()
 
void addService (DLNAServiceInfo s)
 Adds a service definition.
 
DLNAServiceInfogetService (const char *id)
 Finds a service definition by name.
 
DLNAServiceInfogetServiceByAbbrev (const char *abbrev)
 Finds a service definition by name.
 
Vector< DLNAServiceInfo > & getServices ()
 Provides all service definitions.
 
void clear ()
 Clears all device information.
 
void clearIcons ()
 Overwrite the default icon.
 
void addIcon (Icon icon)
 adds an icon
 
Icon getIcon (int idx=0)
 Provides the item at indix.
 
void setActive (bool flag)
 Sets the server to inactive.
 
 operator bool ()
 return true if active
 

Protected Member Functions

void publishProperty (const char *serviceAbbrev, const char *changeTag)
 
void publishAVT ()
 Publish a ContentDirectory event (SystemUpdateID)
 
void publishCMS ()
 Publish a ConnectionManager event (CurrentConnectionIDs)
 
void setupServicesImpl (HttpServer *server)
 Setup the service endpoints.
 
void setupContentDirectoryService (HttpServer *server)
 Setup and register ContentDirectory service.
 
void setupConnectionManagerService (HttpServer *server)
 Setup and register ConnectionManager service.
 
bool processAction (ActionRequest &action, HttpServer &server)
 Process action requests using rules-based dispatch.
 
bool processActionBrowse (ActionRequest &action, HttpServer &server)
 Handle ContentDirectory:Browse action.
 
bool processActionSearch (ActionRequest &action, HttpServer &server)
 Handle ContentDirectory:Search action.
 
bool processActionGetSearchCapabilities (ActionRequest &action, HttpServer &server)
 Handle ContentDirectory:GetSearchCapabilities action.
 
bool processActionGetSortCapabilities (ActionRequest &action, HttpServer &server)
 Handle ContentDirectory:GetSortCapabilities action.
 
bool processActionGetSystemUpdateID (ActionRequest &action, HttpServer &server)
 Handle ContentDirectory:GetSystemUpdateID action.
 
bool processActionGetProtocolInfo (ActionRequest &action, HttpServer &server)
 Replies with Source and Sink protocol lists (CSV protocolInfo strings)
 
bool processActionGetCurrentConnectionIDs (ActionRequest &action, HttpServer &server)
 Handle ConnectionManager:GetCurrentConnectionIDs action.
 
bool processActionGetCurrentConnectionInfo (ActionRequest &action, HttpServer &server)
 Handle ConnectionManager:GetCurrentConnectionInfo action.
 
ContentQueryType parseContentQueryType (const char *flag)
 Common helper to stream a ContentDirectory response (Browse or Search)
 
void soapEnvelopeStart (ChunkPrint &chunk)
 
void soapEnvelopeEnd (ChunkPrint &chunk)
 
void actionResponseStart (ChunkPrint &chunk, const char *responseName, const char *serviceNS)
 
void actionResponseEnd (ChunkPrint &chunk, const char *responseName)
 
bool streamActionItems (const char *responseName, const char *objectID, ContentQueryType queryType, const char *filter, int startingIndex, int requestedCount, HttpServer &server)
 
void streamDIDL (ChunkPrint &chunk_writer, int numberReturned, int startingIndex)
 Stream DIDL-Lite payload for a Browse/Search result.
 
const char * toStr (MediaItemClass itemClass)
 
void setupRules ()
 
virtual void setupServices (HttpServer &server, IUDPService &udp)
 to be implemented by subclasses
 
size_t printRoot ()
 
size_t printDevice ()
 
size_t printSpecVersion ()
 
size_t printServiceList ()
 
size_t printService (void *srv)
 
size_t printIconList ()
 
size_t printIconDlnaInfo (Icon &icon)
 

Static Protected Member Functions

static void contentDescCB (HttpServer *server, const char *requestPath, HttpRequestHandlerLine *hl)
 Static descriptor callback for ContentDirectory SCPD.
 
static void connDescCB (HttpServer *server, const char *requestPath, HttpRequestHandlerLine *hl)
 Static descriptor callback for ConnectionManager SCPD.
 
static void eventSubscriptionHandler (HttpServer *server, const char *requestPath, HttpRequestHandlerLine *hl)
 After the subscription we publish all relevant properties.
 
static void contentDirectoryControlCB (HttpServer *server, const char *requestPath, HttpRequestHandlerLine *hl)
 Control handler for ContentDirectory service.
 
static void connmgrControlCB (HttpServer *server, const char *requestPath, HttpRequestHandlerLine *hl)
 simple connection manager control that replies OK
 

Protected Attributes

DLNADevice dlna_device
 
PrepareDataCallback prepare_data_cb = nullptr
 
GetDataCallback get_data_cb = nullptr
 
HttpServerp_server = nullptr
 
IUDPServicep_udp_member = nullptr
 
void * ref_ctx [1] = {nullptr}
 
void * reference_ = nullptr
 
GetDataCallback g_stream_get_data_cb = nullptr
 
int g_stream_numberReturned = 0
 
int g_stream_totalMatches = 0
 
int g_stream_updateID = 1
 
int g_instance_id = 1
 
void * g_stream_reference = nullptr
 
const char * st = "urn:schemas-upnp-org:device:MediaServer:1"
 
const char * usn = "uuid:media-server-0000-0000-0000-000000000001"
 
const char * g_search_capabiities
 
const char * g_sort_capabilities
 
const char * sourceProto = DLNA_PROTOCOL_AUDIO
 
const char * sinkProto = ""
 
const char * connectionID = "0"
 
Vector< ActionRulerules
 
bool is_active = true
 
XMLPrinter xml
 
Url device_url
 
IPAddress localhost
 
int version_major = 1
 
int version_minor = 0
 
const char * base_url = "http://localhost:9876/dlna"
 
const char * udn = "uuid:09349455-2941-4cf7-9847-0dd5ab210e97"
 
const char * ns = "xmlns=\"urn:schemas-upnp-org:device-1-0\""
 
const char * device_type = nullptr
 
const char * friendly_name = nullptr
 
const char * manufacturer = nullptr
 
const char * manufacturer_url = nullptr
 
const char * model_description = nullptr
 
const char * model_name = nullptr
 
const char * model_url = nullptr
 
const char * model_number = nullptr
 
const char * serial_number = nullptr
 
const char * universal_product_code = nullptr
 
Icon icon
 
Vector< DLNAServiceInfoservices
 
Vector< Iconicons
 
Str url_str
 

Static Protected Attributes

static DLNAMediaServerself = nullptr
 

Detailed Description

Digital Media Server implementation.

This class implements a lightweight DLNA MediaServer device with a ContentDirectory service (Browse and Search) and a ConnectionManager service.

The API is designed for embedding custom content lists and streaming logic. The API uses two callbacks to retrieve the content data:

A user reference pointer can be set with setReference(void*), and is passed to both callbacks for custom context or data.

Example usage:

The implementation is intentionally compact and suitable as a starting point for embedded or test DLNA servers.

Member Typedef Documentation

◆ GetDataCallback

typedef bool(* tiny_dlna::DLNAMediaServer::GetDataCallback) (int index, MediaItem &item, void *reference)

Callback signature for retrieving a MediaItem by index.

Parameters
indexItem index
item[out] MediaItem metadata
referenceUser reference pointer
Returns
true if item is valid, false otherwise

◆ PrepareDataCallback

typedef void(* tiny_dlna::DLNAMediaServer::PrepareDataCallback) (const char *objectID, ContentQueryType queryType, const char *filter, int startingIndex, int requestedCount, const char *sortCriteria, int &numberReturned, int &totalMatches, int &updateID, void *reference)

Callback signature for preparing data for Browse or Search requests.

Parameters
objectIDObject ID to browse/search
queryTypeContent query type (Browse/Metadata/Search)
filterFilter string
startingIndexStarting index for paging
requestedCountNumber of items requested
sortCriteriaSort criteria string
numberReturned[out] Number of items returned
totalMatches[out] Total number of matches
updateID[out] System update ID
referenceUser reference pointer

Constructor & Destructor Documentation

◆ DLNAMediaServer() [1/2]

tiny_dlna::DLNAMediaServer::DLNAMediaServer ( )
inline

Default constructor for MediaServer. Initializes device information and default properties.

◆ DLNAMediaServer() [2/2]

tiny_dlna::DLNAMediaServer::DLNAMediaServer ( HttpServer server,
IUDPService udp 
)
inline

Recommended constructor Construct a MediaServer with associated HTTP server and UDP service This constructor stores the provided server/udp references so begin() can be called without parameters.

◆ ~DLNAMediaServer()

tiny_dlna::DLNAMediaServer::~DLNAMediaServer ( )
inline

Destructor.

Member Function Documentation

◆ actionResponseEnd()

void tiny_dlna::DLNAMediaServer::actionResponseEnd ( ChunkPrint chunk,
const char *  responseName 
)
inlineprotected

◆ actionResponseStart()

void tiny_dlna::DLNAMediaServer::actionResponseStart ( ChunkPrint chunk,
const char *  responseName,
const char *  serviceNS 
)
inlineprotected

◆ addIcon()

void tiny_dlna::DLNADeviceInfo::addIcon ( Icon  icon)
inlineinherited

adds an icon

◆ addService()

void tiny_dlna::DLNADeviceInfo::addService ( DLNAServiceInfo  s)
inlineinherited

Adds a service definition.

◆ begin()

bool tiny_dlna::DLNAMediaServer::begin ( )
inlinevirtual

Start the underlying DLNA device using previously provided UDP and HTTP server. Call this after constructing MediaServer(HttpServer&, IUDPService&)

Reimplemented from tiny_dlna::DLNADeviceInfo.

◆ clear()

void tiny_dlna::DLNADeviceInfo::clear ( )
inlineinherited

Clears all device information.

◆ clearIcons()

void tiny_dlna::DLNADeviceInfo::clearIcons ( )
inlineinherited

Overwrite the default icon.

◆ connDescCB()

static void tiny_dlna::DLNAMediaServer::connDescCB ( HttpServer server,
const char *  requestPath,
HttpRequestHandlerLine hl 
)
inlinestaticprotected

Static descriptor callback for ConnectionManager SCPD.

◆ connmgrControlCB()

static void tiny_dlna::DLNAMediaServer::connmgrControlCB ( HttpServer server,
const char *  requestPath,
HttpRequestHandlerLine hl 
)
inlinestaticprotected

simple connection manager control that replies OK

◆ contentDescCB()

static void tiny_dlna::DLNAMediaServer::contentDescCB ( HttpServer server,
const char *  requestPath,
HttpRequestHandlerLine hl 
)
inlinestaticprotected

Static descriptor callback for ContentDirectory SCPD.

◆ contentDirectoryControlCB()

static void tiny_dlna::DLNAMediaServer::contentDirectoryControlCB ( HttpServer server,
const char *  requestPath,
HttpRequestHandlerLine hl 
)
inlinestaticprotected

Control handler for ContentDirectory service.

◆ device()

DLNADevice & tiny_dlna::DLNAMediaServer::device ( )
inline

Provides access to the internal DLNA device instance.

◆ end()

void tiny_dlna::DLNAMediaServer::end ( )
inline

Stops the processing and releases the resources.

◆ eventSubscriptionHandler()

static void tiny_dlna::DLNAMediaServer::eventSubscriptionHandler ( HttpServer server,
const char *  requestPath,
HttpRequestHandlerLine hl 
)
inlinestaticprotected

After the subscription we publish all relevant properties.

◆ getBaseURL()

const char * tiny_dlna::DLNADeviceInfo::getBaseURL ( )
inlineinherited

Provides the base url.

◆ getConnectionID()

const char * tiny_dlna::DLNAMediaServer::getConnectionID ( )
inline

Return the currently configured ConnectionID.

◆ getDeviceType()

const char * tiny_dlna::DLNADeviceInfo::getDeviceType ( )
inlineinherited

◆ getDeviceURL()

Url & tiny_dlna::DLNADeviceInfo::getDeviceURL ( )
inlineinherited

This method returns base url/device.xml.

◆ getFriendlyName()

const char * tiny_dlna::DLNADeviceInfo::getFriendlyName ( )
inlineinherited

◆ getHttpServer()

HttpServer * tiny_dlna::DLNAMediaServer::getHttpServer ( )
inline

Provides access to the http server.

◆ getIcon()

Icon tiny_dlna::DLNADeviceInfo::getIcon ( int  idx = 0)
inlineinherited

Provides the item at indix.

◆ getIPAddress()

IPAddress tiny_dlna::DLNADeviceInfo::getIPAddress ( )
inlineinherited

Provides the local IP address.

◆ getIPStr()

const char * tiny_dlna::DLNADeviceInfo::getIPStr ( )
inlineinherited

Provides the local address as string.

◆ getManufacturer()

const char * tiny_dlna::DLNADeviceInfo::getManufacturer ( )
inlineinherited

◆ getManufacturerURL()

const char * tiny_dlna::DLNADeviceInfo::getManufacturerURL ( )
inlineinherited

◆ getModelDescription()

const char * tiny_dlna::DLNADeviceInfo::getModelDescription ( )
inlineinherited

◆ getModelName()

const char * tiny_dlna::DLNADeviceInfo::getModelName ( )
inlineinherited

◆ getModelNumber()

const char * tiny_dlna::DLNADeviceInfo::getModelNumber ( )
inlineinherited

◆ getNS()

const char * tiny_dlna::DLNADeviceInfo::getNS ( )
inlineinherited

◆ getSearchCapabilities()

const char * tiny_dlna::DLNAMediaServer::getSearchCapabilities ( )
inline

Get the search capabilities string (CSV)

◆ getSerialNumber()

const char * tiny_dlna::DLNADeviceInfo::getSerialNumber ( )
inlineinherited

◆ getService()

DLNAServiceInfo & tiny_dlna::DLNADeviceInfo::getService ( const char *  id)
inlineinherited

Finds a service definition by name.

◆ getServiceByAbbrev()

DLNAServiceInfo & tiny_dlna::DLNADeviceInfo::getServiceByAbbrev ( const char *  abbrev)
inlineinherited

Finds a service definition by name.

◆ getServices()

Vector< DLNAServiceInfo > & tiny_dlna::DLNADeviceInfo::getServices ( )
inlineinherited

Provides all service definitions.

◆ getSinkProtocols()

const char * tiny_dlna::DLNAMediaServer::getSinkProtocols ( )
inline

Get the current sink ProtocolInfo string.

◆ getSortCapabilities()

const char * tiny_dlna::DLNAMediaServer::getSortCapabilities ( )
inline

Get the sort capabilities string (CSV)

◆ getSourceProtocols()

const char * tiny_dlna::DLNAMediaServer::getSourceProtocols ( )
inline

Get the current source ProtocolInfo string.

◆ getSystemUpdateID()

int tiny_dlna::DLNAMediaServer::getSystemUpdateID ( )
inline

Provides access to the system update ID.

◆ getUDN()

const char * tiny_dlna::DLNADeviceInfo::getUDN ( )
inlineinherited

Provide the udn uuid.

◆ getUniversalProductCode()

const char * tiny_dlna::DLNADeviceInfo::getUniversalProductCode ( )
inlineinherited

◆ incrementSystemUpdateID()

int tiny_dlna::DLNAMediaServer::incrementSystemUpdateID ( )
inline

Call this method if content has changed : Increments and returns the SystemUpdateID

◆ loop()

bool tiny_dlna::DLNAMediaServer::loop ( )
inlinevirtual

call this method in the Arduino loop as often as possible

Reimplemented from tiny_dlna::DLNADeviceInfo.

◆ operator bool()

tiny_dlna::DLNADeviceInfo::operator bool ( )
inlineinherited

return true if active

◆ parseContentQueryType()

ContentQueryType tiny_dlna::DLNAMediaServer::parseContentQueryType ( const char *  flag)
inlineprotected

Common helper to stream a ContentDirectory response (Browse or Search)

◆ print()

void tiny_dlna::DLNADeviceInfo::print ( Print &  out)
inlineinherited

renders the device xml

◆ printDevice()

size_t tiny_dlna::DLNADeviceInfo::printDevice ( )
inlineprotectedinherited

◆ printIconDlnaInfo()

size_t tiny_dlna::DLNADeviceInfo::printIconDlnaInfo ( Icon icon)
inlineprotectedinherited

◆ printIconList()

size_t tiny_dlna::DLNADeviceInfo::printIconList ( )
inlineprotectedinherited

◆ printRoot()

size_t tiny_dlna::DLNADeviceInfo::printRoot ( )
inlineprotectedinherited

◆ printService()

size_t tiny_dlna::DLNADeviceInfo::printService ( void *  srv)
inlineprotectedinherited

◆ printServiceList()

size_t tiny_dlna::DLNADeviceInfo::printServiceList ( )
inlineprotectedinherited

◆ printSpecVersion()

size_t tiny_dlna::DLNADeviceInfo::printSpecVersion ( )
inlineprotectedinherited

◆ processAction()

bool tiny_dlna::DLNAMediaServer::processAction ( ActionRequest action,
HttpServer server 
)
inlineprotected

Process action requests using rules-based dispatch.

◆ processActionBrowse()

bool tiny_dlna::DLNAMediaServer::processActionBrowse ( ActionRequest action,
HttpServer server 
)
inlineprotected

Handle ContentDirectory:Browse action.

◆ processActionGetCurrentConnectionIDs()

bool tiny_dlna::DLNAMediaServer::processActionGetCurrentConnectionIDs ( ActionRequest action,
HttpServer server 
)
inlineprotected

Handle ConnectionManager:GetCurrentConnectionIDs action.

◆ processActionGetCurrentConnectionInfo()

bool tiny_dlna::DLNAMediaServer::processActionGetCurrentConnectionInfo ( ActionRequest action,
HttpServer server 
)
inlineprotected

Handle ConnectionManager:GetCurrentConnectionInfo action.

◆ processActionGetProtocolInfo()

bool tiny_dlna::DLNAMediaServer::processActionGetProtocolInfo ( ActionRequest action,
HttpServer server 
)
inlineprotected

Replies with Source and Sink protocol lists (CSV protocolInfo strings)

◆ processActionGetSearchCapabilities()

bool tiny_dlna::DLNAMediaServer::processActionGetSearchCapabilities ( ActionRequest action,
HttpServer server 
)
inlineprotected

Handle ContentDirectory:GetSearchCapabilities action.

◆ processActionGetSortCapabilities()

bool tiny_dlna::DLNAMediaServer::processActionGetSortCapabilities ( ActionRequest action,
HttpServer server 
)
inlineprotected

Handle ContentDirectory:GetSortCapabilities action.

◆ processActionGetSystemUpdateID()

bool tiny_dlna::DLNAMediaServer::processActionGetSystemUpdateID ( ActionRequest action,
HttpServer server 
)
inlineprotected

Handle ContentDirectory:GetSystemUpdateID action.

◆ processActionSearch()

bool tiny_dlna::DLNAMediaServer::processActionSearch ( ActionRequest action,
HttpServer server 
)
inlineprotected

Handle ContentDirectory:Search action.

◆ publishAVT()

void tiny_dlna::DLNAMediaServer::publishAVT ( )
inlineprotected

Publish a ContentDirectory event (SystemUpdateID)

◆ publishCMS()

void tiny_dlna::DLNAMediaServer::publishCMS ( )
inlineprotected

Publish a ConnectionManager event (CurrentConnectionIDs)

◆ publishProperty()

void tiny_dlna::DLNAMediaServer::publishProperty ( const char *  serviceAbbrev,
const char *  changeTag 
)
inlineprotected

serviceAbbrev: e.g. "AVT" or or subscription namespace abbrev defined for the service

◆ setActive()

void tiny_dlna::DLNADeviceInfo::setActive ( bool  flag)
inlineinherited

Sets the server to inactive.

◆ setBaseURL() [1/2]

void tiny_dlna::DLNADeviceInfo::setBaseURL ( const char *  url)
inlineinherited

Defines the base url.

◆ setBaseURL() [2/2]

void tiny_dlna::DLNADeviceInfo::setBaseURL ( IPAddress  ip,
int  port,
const char *  path = nullptr 
)
inlineinherited

Defines the base URL.

◆ setConnectionID()

void tiny_dlna::DLNAMediaServer::setConnectionID ( const char *  id)
inline

Set the active ConnectionID for the connection manager.

◆ setCustomActionRule()

void tiny_dlna::DLNAMediaServer::setCustomActionRule ( const char *  suffix,
bool(*)(DLNAMediaServer *, ActionRequest &, HttpServer &)  handler 
)
inline

Define your own custom logic.

◆ setDeviceType()

void tiny_dlna::DLNADeviceInfo::setDeviceType ( const char *  st)
inlineinherited

◆ setFriendlyName()

void tiny_dlna::DLNADeviceInfo::setFriendlyName ( const char *  name)
inlineinherited

◆ setGetDataCallback()

void tiny_dlna::DLNAMediaServer::setGetDataCallback ( GetDataCallback  cb)
inline

Sets the callback that provides a MediaItem by index.

◆ setHttpServer()

void tiny_dlna::DLNAMediaServer::setHttpServer ( HttpServer server)
inline

Set the http server instance the MediaServer should use.

◆ setIPAddress()

void tiny_dlna::DLNADeviceInfo::setIPAddress ( IPAddress  address)
inlineinherited

Defines the local IP address.

◆ setManufacturer()

void tiny_dlna::DLNADeviceInfo::setManufacturer ( const char *  man)
inlineinherited

◆ setManufacturerURL()

void tiny_dlna::DLNADeviceInfo::setManufacturerURL ( const char *  url)
inlineinherited

◆ setModelDescription()

void tiny_dlna::DLNADeviceInfo::setModelDescription ( const char *  descr)
inlineinherited

◆ setModelName()

void tiny_dlna::DLNADeviceInfo::setModelName ( const char *  name)
inlineinherited

◆ setModelNumber()

void tiny_dlna::DLNADeviceInfo::setModelNumber ( const char *  number)
inlineinherited

◆ setNS()

void tiny_dlna::DLNADeviceInfo::setNS ( const char *  ns)
inlineinherited

◆ setPrepareDataCallback()

void tiny_dlna::DLNAMediaServer::setPrepareDataCallback ( PrepareDataCallback  cb)
inline

Sets the callback that prepares the data for the Browse and Search.

◆ setProtocols()

void tiny_dlna::DLNAMediaServer::setProtocols ( const char *  source,
const char *  sink = "" 
)
inline

Define the source protocol info: use csv Default is http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_TN,http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_SM,http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_MED,http-get:*:image/jpeg:DLNA.ORG_PN=JPEG_LRG,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_HD_50_AC3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_HD_60_AC3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_HP_HD_AC3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_MP_HD_AAC_MULT5_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_MP_HD_AC3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_MP_HD_MPEG1_L3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_MP_SD_AAC_MULT5_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_MP_SD_AC3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=AVC_TS_MP_SD_MPEG1_L3_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_NTSC,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_PS_PAL,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_TS_HD_NA_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_TS_SD_NA_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG_TS_SD_EU_ISO,http-get:*:video/mpeg:DLNA.ORG_PN=MPEG1,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_MP_SD_AAC_MULT5,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_MP_SD_AC3,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_BL_CIF15_AAC_520,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_BL_CIF30_AAC_940,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_BL_L31_HD_AAC,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_BL_L32_HD_AAC,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_BL_L3L_SD_AAC,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_HP_HD_AAC,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_MP_HD_1080i_AAC,http-get:*:video/mp4:DLNA.ORG_PN=AVC_MP4_MP_HD_720p_AAC,http-get:*:video/mp4:DLNA.ORG_PN=MPEG4_P2_MP4_ASP_AAC,http-get:*:video/mp4:DLNA.ORG_PN=MPEG4_P2_MP4_SP_VGA_AAC,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_HD_50_AC3,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_HD_50_AC3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_HD_60_AC3,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_HD_60_AC3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_HP_HD_AC3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_HD_AAC_MULT5,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_HD_AAC_MULT5_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_HD_AC3,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_HD_AC3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_HD_MPEG1_L3,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_HD_MPEG1_L3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_SD_AAC_MULT5,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_SD_AAC_MULT5_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_SD_AC3,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_SD_AC3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_SD_MPEG1_L3,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=AVC_TS_MP_SD_MPEG1_L3_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_TS_HD_NA,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_TS_HD_NA_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_TS_SD_EU,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_TS_SD_EU_T,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_TS_SD_NA,http-get:*:video/vnd.dlna.mpeg-tts:DLNA.ORG_PN=MPEG_TS_SD_NA_T,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVSPLL_BASE,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVSPML_BASE,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVSPML_MP3,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_BASE,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_FULL,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVMED_PRO,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVHIGH_FULL,http-get:*:video/x-ms-wmv:DLNA.ORG_PN=WMVHIGH_PRO,http-get:*:video/3gpp:DLNA.ORG_PN=MPEG4_P2_3GPP_SP_L0B_AAC,http-get:*:video/3gpp:DLNA.ORG_PN=MPEG4_P2_3GPP_SP_L0B_AMR,http-get:*:audio/mpeg:DLNA.ORG_PN=MP3,http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMABASE,http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMAFULL,http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMAPRO,http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMALSL,http-get:*:audio/x-ms-wma:DLNA.ORG_PN=WMALSL_MULT5,http-get:*:audio/mp4:DLNA.ORG_PN=AAC_ISO_320,http-get:*:audio/3gpp:DLNA.ORG_PN=AAC_ISO_320,http-get:*:audio/mp4:DLNA.ORG_PN=AAC_ISO,http-get:*:audio/mp4:DLNA.ORG_PN=AAC_MULT5_ISO,http-get:*:audio/L16;rate=44100;channels=2:DLNA.ORG_PN=LPCM,http-get:*:image/jpeg:*,http-get:*:video/avi:*,http-get:*:video/divx:*,http-get:*:video/x-matroska:*,http-get:*:video/mpeg:*,http-get:*:video/mp4:*,http-get:*:video/x-ms-wmv:*,http-get:*:video/x-msvideo:*,http-get:*:video/x-flv:*,http-get:*:video/x-tivo-mpeg:*,http-get:*:video/quicktime:*,http-get:*:audio/mp4:*,http-get:*:audio/x-wav:*,http-get:*:audio/x-flac:*,http-get:*:audio/x-dsd:*,http-get:*:application/ogg:http-get::application/vnd.rn-realmedia:http-get::application/vnd.rn-realmedia-vbr:http-get::video/webm:*.

◆ setReference()

void tiny_dlna::DLNAMediaServer::setReference ( void *  ref)
inline

Sets a user reference pointer, available in callbacks.

◆ setSearchCapabilities()

void tiny_dlna::DLNAMediaServer::setSearchCapabilities ( const char *  caps)
inline

Define the search capabilities: use csv.

◆ setSerialNumber()

void tiny_dlna::DLNADeviceInfo::setSerialNumber ( const char *  sn)
inlineinherited

◆ setSortCapabilities()

void tiny_dlna::DLNAMediaServer::setSortCapabilities ( const char *  caps)
inline

Define the sort capabilities: use csv.

◆ setUDN()

void tiny_dlna::DLNADeviceInfo::setUDN ( const char *  id)
inlineinherited

Define the udn uuid.

◆ setUdpService()

void tiny_dlna::DLNAMediaServer::setUdpService ( IUDPService udp)
inline

Set the UDP service instance the MediaServer should use.

◆ setUniversalProductCode()

void tiny_dlna::DLNADeviceInfo::setUniversalProductCode ( const char *  upc)
inlineinherited

◆ setupConnectionManagerService()

void tiny_dlna::DLNAMediaServer::setupConnectionManagerService ( HttpServer server)
inlineprotected

Setup and register ConnectionManager service.

◆ setupContentDirectoryService()

void tiny_dlna::DLNAMediaServer::setupContentDirectoryService ( HttpServer server)
inlineprotected

Setup and register ContentDirectory service.

◆ setupRules()

void tiny_dlna::DLNAMediaServer::setupRules ( )
inlineprotected

Setup the action rules for supported ContentDirectory and ConnectionManager commands

◆ setupServices()

virtual void tiny_dlna::DLNADeviceInfo::setupServices ( HttpServer server,
IUDPService udp 
)
inlineprotectedvirtualinherited

to be implemented by subclasses

◆ setupServicesImpl()

void tiny_dlna::DLNAMediaServer::setupServicesImpl ( HttpServer server)
inlineprotected

Setup the service endpoints.

◆ soapEnvelopeEnd()

void tiny_dlna::DLNAMediaServer::soapEnvelopeEnd ( ChunkPrint chunk)
inlineprotected

◆ soapEnvelopeStart()

void tiny_dlna::DLNAMediaServer::soapEnvelopeStart ( ChunkPrint chunk)
inlineprotected

◆ streamActionItems()

bool tiny_dlna::DLNAMediaServer::streamActionItems ( const char *  responseName,
const char *  objectID,
ContentQueryType  queryType,
const char *  filter,
int  startingIndex,
int  requestedCount,
HttpServer server 
)
inlineprotected

◆ streamDIDL()

void tiny_dlna::DLNAMediaServer::streamDIDL ( ChunkPrint chunk_writer,
int  numberReturned,
int  startingIndex 
)
inlineprotected

Stream DIDL-Lite payload for a Browse/Search result.

◆ toStr()

const char * tiny_dlna::DLNAMediaServer::toStr ( MediaItemClass  itemClass)
inlineprotected

Member Data Documentation

◆ base_url

const char* tiny_dlna::DLNADeviceInfo::base_url = "http://localhost:9876/dlna"
protectedinherited

◆ connectionID

const char* tiny_dlna::DLNAMediaServer::connectionID = "0"
protected

◆ device_type

const char* tiny_dlna::DLNADeviceInfo::device_type = nullptr
protectedinherited

◆ device_url

Url tiny_dlna::DLNADeviceInfo::device_url
protectedinherited

◆ dlna_device

DLNADevice tiny_dlna::DLNAMediaServer::dlna_device
protected

◆ friendly_name

const char* tiny_dlna::DLNADeviceInfo::friendly_name = nullptr
protectedinherited

◆ g_instance_id

int tiny_dlna::DLNAMediaServer::g_instance_id = 1
protected

◆ g_search_capabiities

const char* tiny_dlna::DLNAMediaServer::g_search_capabiities
protected
Initial value:
=
"dc:title,dc:creator,upnp:class,upnp:genre,"
"upnp:album,upnp:artist,upnp:albumArtURI"

◆ g_sort_capabilities

const char* tiny_dlna::DLNAMediaServer::g_sort_capabilities
protected
Initial value:
=
"dc:title,dc:date,upnp:class,upnp:album,upnp:episodeNumber,upnp:"
"originalTrackNumber"

◆ g_stream_get_data_cb

GetDataCallback tiny_dlna::DLNAMediaServer::g_stream_get_data_cb = nullptr
protected

◆ g_stream_numberReturned

int tiny_dlna::DLNAMediaServer::g_stream_numberReturned = 0
protected

◆ g_stream_reference

void* tiny_dlna::DLNAMediaServer::g_stream_reference = nullptr
protected

◆ g_stream_totalMatches

int tiny_dlna::DLNAMediaServer::g_stream_totalMatches = 0
protected

◆ g_stream_updateID

int tiny_dlna::DLNAMediaServer::g_stream_updateID = 1
protected

◆ get_data_cb

GetDataCallback tiny_dlna::DLNAMediaServer::get_data_cb = nullptr
protected

◆ icon

Icon tiny_dlna::DLNADeviceInfo::icon
protectedinherited

◆ icons

Vector<Icon> tiny_dlna::DLNADeviceInfo::icons
protectedinherited

◆ is_active

bool tiny_dlna::DLNADeviceInfo::is_active = true
protectedinherited

◆ localhost

IPAddress tiny_dlna::DLNADeviceInfo::localhost
protectedinherited

◆ manufacturer

const char* tiny_dlna::DLNADeviceInfo::manufacturer = nullptr
protectedinherited

◆ manufacturer_url

const char* tiny_dlna::DLNADeviceInfo::manufacturer_url = nullptr
protectedinherited

◆ model_description

const char* tiny_dlna::DLNADeviceInfo::model_description = nullptr
protectedinherited

◆ model_name

const char* tiny_dlna::DLNADeviceInfo::model_name = nullptr
protectedinherited

◆ model_number

const char* tiny_dlna::DLNADeviceInfo::model_number = nullptr
protectedinherited

◆ model_url

const char* tiny_dlna::DLNADeviceInfo::model_url = nullptr
protectedinherited

◆ ns

const char* tiny_dlna::DLNADeviceInfo::ns = "xmlns=\"urn:schemas-upnp-org:device-1-0\""
protectedinherited

◆ p_server

HttpServer* tiny_dlna::DLNAMediaServer::p_server = nullptr
protected

◆ p_udp_member

IUDPService* tiny_dlna::DLNAMediaServer::p_udp_member = nullptr
protected

◆ prepare_data_cb

PrepareDataCallback tiny_dlna::DLNAMediaServer::prepare_data_cb = nullptr
protected

◆ ref_ctx

void* tiny_dlna::DLNAMediaServer::ref_ctx[1] = {nullptr}
protected

◆ reference_

void* tiny_dlna::DLNAMediaServer::reference_ = nullptr
protected

◆ rules

Vector<ActionRule> tiny_dlna::DLNAMediaServer::rules
protected

◆ self

DLNAMediaServer* tiny_dlna::DLNAMediaServer::self = nullptr
inlinestaticprotected

◆ serial_number

const char* tiny_dlna::DLNADeviceInfo::serial_number = nullptr
protectedinherited

◆ services

Vector<DLNAServiceInfo> tiny_dlna::DLNADeviceInfo::services
protectedinherited

◆ sinkProto

const char* tiny_dlna::DLNAMediaServer::sinkProto = ""
protected

◆ sourceProto

const char* tiny_dlna::DLNAMediaServer::sourceProto = DLNA_PROTOCOL_AUDIO
protected

◆ st

const char* tiny_dlna::DLNAMediaServer::st = "urn:schemas-upnp-org:device:MediaServer:1"
protected

◆ udn

const char* tiny_dlna::DLNADeviceInfo::udn = "uuid:09349455-2941-4cf7-9847-0dd5ab210e97"
protectedinherited

◆ universal_product_code

const char* tiny_dlna::DLNADeviceInfo::universal_product_code = nullptr
protectedinherited

◆ url_str

Str tiny_dlna::DLNADeviceInfo::url_str
protectedinherited

◆ usn

const char* tiny_dlna::DLNAMediaServer::usn = "uuid:media-server-0000-0000-0000-000000000001"
protected

◆ version_major

int tiny_dlna::DLNADeviceInfo::version_major = 1
protectedinherited

◆ version_minor

int tiny_dlna::DLNADeviceInfo::version_minor = 0
protectedinherited

◆ xml

XMLPrinter tiny_dlna::DLNADeviceInfo::xml
protectedinherited

The documentation for this class was generated from the following file: