kodi
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
PLT_MediaServer Class Reference

The PLT_MediaServer class implements the base class for a UPnP AV Media Server device. More...

#include <PltMediaServer.h>

Inheritance diagram for PLT_MediaServer:
Inheritance graph
[legend]
Collaboration diagram for PLT_MediaServer:
Collaboration graph
[legend]

Public Types

enum  BrowseFlags { BROWSEMETADATA, BROWSEDIRECTCHILDREN }
 

Public Member Functions

 PLT_MediaServer (const char *friendly_name, bool show_ip=false, const char *uuid=NULL, NPT_UInt16 port=0, bool port_rebind=false)
 
virtual void SetDelegate (PLT_MediaServerDelegate *delegate)
 
PLT_MediaServerDelegateGetDelegate ()
 
virtual void UpdateSystemUpdateID (NPT_UInt32 update)
 
virtual void UpdateContainerUpdateID (const char *id, NPT_UInt32 update)
 
- Public Member Functions inherited from PLT_DeviceHost
 PLT_DeviceHost (const char *description_path="/", const char *uuid="", const char *device_type="", const char *friendly_name="", bool show_ip=false, NPT_UInt16 port=0, bool port_rebind=false)
 Creates a new instance of UPnP Device Host. More...
 
virtual void SetExtraBroadcast (bool broadcast)
 
virtual void SetByeByeFirst (bool bye_bye_first)
 When a UPnP device comes up, the specifications require that a SSDP bye-bye sequence is sent to force the removal of the device in case it wasn't sent properly during the last shutdown. More...
 
virtual NPT_UInt16 GetPort ()
 Returns the port used by the internal HTTP server for all incoming requests. More...
 
NPT_Result SetLeaseTime (NPT_TimeInterval lease_time)
 Sets the lease time. More...
 
virtual NPT_Result AddIcon (const PLT_DeviceIcon &icon, const char *fileroot, const char *urlroot="/")
 Add UPnP icon information to serve from file system. More...
 
virtual NPT_Result AddIcon (const PLT_DeviceIcon &icon, const void *data, NPT_Size size, bool copy=true)
 Add UPnP icon information to serve using static image. More...
 
- Public Member Functions inherited from PLT_DeviceData
 PLT_DeviceData (NPT_HttpUrl description_url=NPT_HttpUrl(NULL, 0, "/description.xml"), const char *uuid="", NPT_TimeInterval lease_time= *PLT_Constants::GetInstance().GetDefaultDeviceLease(), const char *device_type="", const char *friendly_name="")
 
virtual NPT_Result GetDescription (NPT_String &desc)
 
virtual NPT_String GetDescriptionUrl (const char *ip_address=NULL)
 
virtual NPT_HttpUrl GetURLBase ()
 
virtual NPT_HttpUrl NormalizeURL (const NPT_String &url)
 
virtual NPT_Result GetDescription (NPT_XmlElementNode *parent, NPT_XmlElementNode **device=NULL)
 
virtual NPT_String GetIconUrl (const char *mimetype=NULL, NPT_Int32 maxsize=0, NPT_Int32 maxdepth=0)
 
bool IsRoot ()
 
const NPT_TimeIntervalGetLeaseTime () const
 
const NPT_StringGetUUID () const
 
const NPT_StringGetFriendlyName () const
 
const NPT_StringGetType () const
 
const NPT_StringGetModelDescription () const
 
const NPT_StringGetParentUUID () const
 
const NPT_IpAddressGetLocalIP () const
 
const NPT_Array< PLT_Service * > & GetServices () const
 
const NPT_Array< PLT_DeviceDataReference > & GetEmbeddedDevices () const
 
NPT_Result FindEmbeddedDevice (const char *uuid, PLT_DeviceDataReference &device)
 
NPT_Result FindEmbeddedDeviceByType (const char *type, PLT_DeviceDataReference &device)
 
NPT_Result FindServiceById (const char *id, PLT_Service *&service)
 
NPT_Result FindServiceByType (const char *type, PLT_Service *&service)
 
NPT_Result FindServiceByName (const char *name, PLT_Service *&service)
 
NPT_Result FindServiceBySCPDURL (const char *url, PLT_Service *&service, bool recursive=false)
 
NPT_Result FindServiceByControlURL (const char *url, PLT_Service *&service, bool recursive=false)
 
NPT_Result FindServiceByEventSubURL (const char *url, PLT_Service *&service, bool recursive=false)
 
NPT_Result AddEmbeddedDevice (PLT_DeviceDataReference &device)
 
NPT_Result RemoveEmbeddedDevice (PLT_DeviceDataReference &device)
 
NPT_Result AddService (PLT_Service *service)
 
NPT_Result RemoveService (PLT_Service *service)
 
void SetBootId (NPT_UInt32 bootId)
 
void SetNextBootId (NPT_UInt32 nextBootId)
 
NPT_UInt32 GenerateNextBootId ()
 
 operator const char * ()
 
- Public Member Functions inherited from NPT_HttpRequestHandler
virtual NPT_Result SendResponseBody (const NPT_HttpRequestContext &context, NPT_HttpResponse &response, NPT_OutputStream &output)
 Override this method if you want to write the body yourself. More...
 
virtual void Completed (NPT_Result)
 A notification method called by the server upon completing the processing of a request.
 

Static Public Member Functions

static NPT_Result ParseBrowseFlag (const char *str, BrowseFlags &flag)
 
static NPT_Result ParseSort (const NPT_String &sort, NPT_List< NPT_String > &list)
 
static NPT_Result ParseTagList (const NPT_String &updates, NPT_Map< NPT_String, NPT_String > &tags)
 

Protected Member Functions

NPT_Result SetupServices () override
 Required method for setting up UPnP services of device host (and any embedded). More...
 
NPT_Result OnAction (PLT_ActionReference &action, const PLT_HttpRequestContext &context) override
 This mehod is called when an action performed by a control point has been received and needs to be answered. More...
 
NPT_Result ProcessHttpGetRequest (NPT_HttpRequest &request, const NPT_HttpRequestContext &context, NPT_HttpResponse &response) override
 This method is called when a "GET" request for a resource other than the device description, SCPD, or icons has been received. More...
 
virtual NPT_Result OnGetCurrentConnectionIDs (PLT_ActionReference &action, const PLT_HttpRequestContext &context)
 
virtual NPT_Result OnGetProtocolInfo (PLT_ActionReference &action, const PLT_HttpRequestContext &context)
 
virtual NPT_Result OnGetCurrentConnectionInfo (PLT_ActionReference &action, const PLT_HttpRequestContext &context)
 
virtual NPT_Result OnGetSortCapabilities (PLT_ActionReference &action, const PLT_HttpRequestContext &context)
 
virtual NPT_Result OnGetSearchCapabilities (PLT_ActionReference &action, const PLT_HttpRequestContext &context)
 
virtual NPT_Result OnGetSystemUpdateID (PLT_ActionReference &action, const PLT_HttpRequestContext &context)
 
virtual NPT_Result OnBrowse (PLT_ActionReference &action, const PLT_HttpRequestContext &context)
 
virtual NPT_Result OnSearch (PLT_ActionReference &action, const PLT_HttpRequestContext &context)
 
virtual NPT_Result OnUpdate (PLT_ActionReference &action, const PLT_HttpRequestContext &context)
 
virtual NPT_Result OnBrowseMetadata (PLT_ActionReference &action, const char *object_id, const char *filter, NPT_UInt32 starting_index, NPT_UInt32 requested_count, const char *sort_criteria, const PLT_HttpRequestContext &context)
 
virtual NPT_Result OnBrowseDirectChildren (PLT_ActionReference &action, const char *object_id, const char *filter, NPT_UInt32 starting_index, NPT_UInt32 requested_count, const char *sort_criteria, const PLT_HttpRequestContext &context)
 
virtual NPT_Result OnSearchContainer (PLT_ActionReference &action, const char *container_id, const char *search_criteria, const char *filter, NPT_UInt32 starting_index, NPT_UInt32 requested_count, const char *sort_criteria, const PLT_HttpRequestContext &context)
 
- Protected Member Functions inherited from PLT_DeviceHost
NPT_Result SetupResponse (NPT_HttpRequest &request, const NPT_HttpRequestContext &context, NPT_HttpResponse &response) override
 NPT_HttpRequestHandler method for setting up the response of an incoming HTTP request. More...
 
NPT_Result Announce (NPT_HttpRequest &request, NPT_UdpSocket &socket, PLT_SsdpAnnounceType type)
 Called during SSDP announce. More...
 
NPT_Result OnSsdpPacket (const NPT_HttpRequest &request, const NPT_HttpRequestContext &context) override
 PLT_SsdpPacketListener method called when a M-SEARCH SSDP packet is received. More...
 
virtual NPT_Result SendSsdpSearchResponse (NPT_HttpResponse &response, NPT_UdpSocket &socket, const char *st, const NPT_SocketAddress *addr=NULL)
 Called by PLT_SsdpDeviceSearchResponseTask when responding to a M-SEARCH SSDP request. More...
 
virtual NPT_Result SetupIcons ()
 Default implementation for registering device icon resources. More...
 
virtual NPT_Result SetupDevice ()
 Default implementation for setting up device host. More...
 
virtual NPT_Result Start (PLT_SsdpListenTask *task)
 Called by PLT_TaskManager when the device is started. More...
 
virtual NPT_Result Stop (PLT_SsdpListenTask *task)
 Called by PLT_TaskManager when the device is stoped. More...
 
virtual NPT_Result ProcessGetDescription (NPT_HttpRequest &request, const NPT_HttpRequestContext &context, NPT_HttpResponse &response)
 This method is called when a control point is requesting the device description. More...
 
virtual NPT_Result ProcessGetSCPD (PLT_Service *service, NPT_HttpRequest &request, const NPT_HttpRequestContext &context, NPT_HttpResponse &response)
 This method is called when a control point is requesting a service SCPD. More...
 
virtual NPT_Result ProcessHttpPostRequest (NPT_HttpRequest &request, const NPT_HttpRequestContext &context, NPT_HttpResponse &response)
 This method is called when a "POST" request has been received. More...
 
virtual NPT_Result ProcessHttpSubscriberRequest (NPT_HttpRequest &request, const NPT_HttpRequestContext &context, NPT_HttpResponse &response)
 This method is called when a request from a subscriber has been received. More...
 
- Protected Member Functions inherited from PLT_DeviceData
virtual void Cleanup ()
 
virtual NPT_Result OnAddExtraInfo (NPT_XmlElementNode *)
 

Additional Inherited Members

- Public Attributes inherited from PLT_DeviceData
NPT_String m_Manufacturer
 
NPT_String m_ManufacturerURL
 
NPT_String m_ModelDescription
 
NPT_String m_ModelName
 
NPT_String m_ModelNumber
 
NPT_String m_ModelURL
 
NPT_String m_SerialNumber
 
NPT_String m_UPC
 
NPT_String m_PresentationURL
 
NPT_String m_DlnaDoc
 
NPT_String m_DlnaCap
 
NPT_String m_AggregationFlags
 
- Static Protected Member Functions inherited from PLT_DeviceHost
static NPT_Result Announce (PLT_DeviceData *device, NPT_HttpRequest &request, NPT_UdpSocket &socket, PLT_SsdpAnnounceType type)
 Static method similar to Announce. More...
 
static NPT_Result SendSsdpSearchResponse (PLT_DeviceData *device, NPT_HttpResponse &response, NPT_UdpSocket &socket, const char *st, const NPT_SocketAddress *addr=NULL)
 Static method similar to SendSsdpSearchResponse. More...
 
- Protected Attributes inherited from PLT_DeviceHost
PLT_TaskManagerReference m_TaskManager
 
PLT_HttpServerReference m_HttpServer
 
bool m_ExtraBroascast
 
NPT_UInt16 m_Port
 
bool m_PortRebind
 
bool m_ByeByeFirst
 
bool m_Started
 
- Protected Attributes inherited from PLT_DeviceData
NPT_String m_ParentUUID
 
NPT_String m_UUID
 
NPT_HttpUrl m_URLDescription
 
NPT_HttpUrl m_URLBase
 
NPT_String m_DeviceType
 
NPT_String m_FriendlyName
 
NPT_TimeInterval m_LeaseTime
 
NPT_TimeStamp m_LeaseTimeLastUpdate
 
NPT_Array< PLT_Service * > m_Services
 
NPT_Array< PLT_DeviceDataReferencem_EmbeddedDevices
 
NPT_Array< PLT_DeviceIconm_Icons
 
NPT_IpAddress m_LocalIfaceIp
 
NPT_String m_Representation
 

Detailed Description

The PLT_MediaServer class implements the base class for a UPnP AV Media Server device.

Member Function Documentation

◆ OnAction()

NPT_Result PLT_MediaServer::OnAction ( PLT_ActionReference action,
const PLT_HttpRequestContext context 
)
overrideprotectedvirtual

This mehod is called when an action performed by a control point has been received and needs to be answered.

Parameters
actionthe action information to answer
contextthe context information including the HTTP request and local and remote socket information (IP & port).

Reimplemented from PLT_DeviceHost.

◆ ProcessHttpGetRequest()

NPT_Result PLT_MediaServer::ProcessHttpGetRequest ( NPT_HttpRequest request,
const NPT_HttpRequestContext context,
NPT_HttpResponse response 
)
overrideprotectedvirtual

This method is called when a "GET" request for a resource other than the device description, SCPD, or icons has been received.

Parameters
requestthe HTTP request
contextthe context information including local and remote socket information.
responsethe response to setup.

Reimplemented from PLT_DeviceHost.

◆ SetupServices()

NPT_Result PLT_MediaServer::SetupServices ( )
overrideprotectedvirtual

Required method for setting up UPnP services of device host (and any embedded).

Called when device starts.

Implements PLT_DeviceHost.

Reimplemented in UPNP::CUPnPServer.


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