diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/media/mediaManager.h | 29 | ||||
-rw-r--r-- | include/tools.h | 2 |
2 files changed, 31 insertions, 0 deletions
diff --git a/include/media/mediaManager.h b/include/media/mediaManager.h index 41707d1..7e97799 100644 --- a/include/media/mediaManager.h +++ b/include/media/mediaManager.h @@ -18,6 +18,33 @@ namespace upnp { +class cMediaManager; + +class cResourceStreamer { + friend class cMediaManager; +private: + cUPnPResourceProvider* provider; + cMetadata::Resource* resource; + + cMediaManager* manager; + + StringVector protocolInfo; + + cResourceStreamer(cMediaManager* manager, cUPnPResourceProvider* provider, cMetadata::Resource* resource); +public: + std::string GetContentFeatures() const; + size_t GetContentLength() const; + std::string GetContentType() const; + std::string GetTransferMode(const std::string& requestedMode ) const; + std::string GetRange() const; + std::string GetAvailableSeekRange(const std::string& seekRequest) const; + + bool Open(string uri); + size_t Read(char* buf, size_t bufLen); + bool Seek(size_t offset, int origin); + void Close(); +}; + class cMediaManager : public cThread { private: @@ -67,6 +94,8 @@ public: static BrowseFlag ToBrowseFlag(std::string browseFlag); + cResourceStreamer* GetResourceStreamer(std::string objectID); + private: void Action(); diff --git a/include/tools.h b/include/tools.h index e322adc..008b74a 100644 --- a/include/tools.h +++ b/include/tools.h @@ -121,6 +121,8 @@ namespace tools { string GenerateUUIDFromURL(string url); string GenerateUUIDRandomly(); + + void StringExplode(string str, string separator, StringVector results); } namespace ixml { |