Arduino DLNA Server
Loading...
Searching...
No Matches
IDevice.h
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4
5class Print;
6
7namespace tiny_dlna {
8
9class DLNADeviceInfo;
10class ISubscriptionMgrDevice;
11class DLNAServiceInfo;
12class IUDPService;
13class IHttpServer;
14
15class IHttpServer;
16
19
20
30class IDevice {
31 public:
32 virtual ~IDevice() = default;
33
35 virtual bool begin(DLNADeviceInfo& device, IUDPService& udp,
36 IHttpServer& server) = 0;
40 virtual void end() = 0;
42 virtual bool loop(int loopActions = RUN_ALL) = 0;
44 virtual bool loopServer() = 0;
46 virtual DLNAServiceInfo& getService(const char* id) = 0;
48 virtual DLNAServiceInfo& getServiceByAbbrev(const char* abbrev) = 0;
50 virtual DLNAServiceInfo* getServiceByEventPath(const char* requestPath) = 0;
52 virtual void addChange(const char* serviceAbbrev,
53 std::function<size_t(Print&, void*)> changeWriter,
54 void* ref) = 0;
58 virtual void setSchedulerActive(bool flag) = 0;
60 virtual bool isSchedulerActive() = 0;
62 virtual void setPostAliveRepeatMs(uint32_t ms) = 0;
64 virtual void setSubscriptionsActive(bool flag) = 0;
66 virtual bool isSubscriptionsActive() const = 0;
68 virtual void setReference(void* ref) = 0;
70 virtual void* getReference() = 0;
71};
72
73} // namespace tiny_dlna
Device Attributes and generation of XML using urn:schemas-upnp-org:device-1-0. We could just return a...
Definition: DLNADeviceInfo.h:25
Attributes needed for the DLNA Service Definition.
Definition: DLNAServiceInfo.h:18
Abstract interface for DLNA device functionality.
Definition: IDevice.h:30
virtual void setSubscriptionsActive(bool flag)=0
Enable/disable event subscriptions.
virtual bool begin(DLNADeviceInfo &device, IUDPService &udp, IHttpServer &server)=0
Initialize device with device info, UDP service, and HTTP server.
virtual bool loop(int loopActions=RUN_ALL)=0
Process device loop for UDP and scheduler operations.
virtual void end()=0
Stop device and cleanup resources.
virtual ISubscriptionMgrDevice & getSubscriptionMgr()=0
Get subscription manager for event handling.
virtual bool loopServer()=0
Process HTTP server loop.
virtual DLNAServiceInfo & getServiceByAbbrev(const char *abbrev)=0
Get service by abbreviation.
virtual DLNAServiceInfo & getService(const char *id)=0
Get service by ID.
virtual void setSchedulerActive(bool flag)=0
Enable/disable scheduler for periodic announcements.
virtual bool isSubscriptionsActive() const =0
Check if subscriptions are active.
virtual bool isSchedulerActive()=0
Check if scheduler is active.
virtual DLNADeviceInfo & getDeviceInfo()=0
Get device information.
virtual ~IDevice()=default
virtual void * getReference()=0
Get user reference pointer.
virtual void addChange(const char *serviceAbbrev, std::function< size_t(Print &, void *)> changeWriter, void *ref)=0
Add state change event for notification.
virtual DLNAServiceInfo * getServiceByEventPath(const char *requestPath)=0
Get service by event subscription path.
virtual void setPostAliveRepeatMs(uint32_t ms)=0
Set repeat interval for alive announcements (ms)
virtual void setReference(void *ref)=0
Set user reference pointer.
Abstract interface for HTTP server functionality.
Definition: IHttpServer.h:30
Abstract interface for UPnP event subscription management.
Definition: ISubscriptionMgrDevice.h:27
Abstract Interface for UDP API.
Definition: IUDPService.h:33
Definition: Allocator.h:13
LoopAction
Loop Action flag.
Definition: IDevice.h:18
@ RUN_UDP
Definition: IDevice.h:18
@ RUN_SERVER
Definition: IDevice.h:18
@ RUN_ALL
Definition: IDevice.h:18
@ RUN_SUBSCRIPTIONS
Definition: IDevice.h:18