From c8e697daf68f1c545ee3962d2f2e9b411c56b4f2 Mon Sep 17 00:00:00 2001 From: methodus Date: Sun, 30 Sep 2012 15:52:54 +0200 Subject: Working on plugin interface. PluginManager almost done. --- include/media/mediaManager.h | 28 +++++++++++++++++++++------- 1 file changed, 21 insertions(+), 7 deletions(-) (limited to 'include/media/mediaManager.h') diff --git a/include/media/mediaManager.h b/include/media/mediaManager.h index 09b3919..18cf458 100644 --- a/include/media/mediaManager.h +++ b/include/media/mediaManager.h @@ -40,13 +40,14 @@ public: std::string GetTransferMode(const std::string& requestedMode ) const; bool Seekable() const; - bool Open(string uri); + bool Open(); size_t Read(char* buf, size_t bufLen); bool Seek(size_t offset, int origin); void Close(); }; class cMediaManager : public cThread { + friend class upnp::cPluginManager; private: struct MediaRequest { @@ -80,7 +81,8 @@ public: cMediaManager(); virtual ~cMediaManager(); - void SetDatabaseFile(string file); + void SetPluginDirectory(const string& directory); + void SetDatabaseFile(const string& file); bool Initialise(); @@ -108,11 +110,23 @@ private: cUPnPResourceProvider* CreateResourceProvider(const std::string& uri); - uint32_t mSystemUpdateID; - IdList mEventedContainerUpdateIDs; - StringList mScanDirectories; - string mDatabaseFile; - tntdb::Connection mConnection; + void AddProviderFunctor(upnp::cPluginManager::FunctionPtr providerFunctor); + void AddProfiler(cMediaProfiler* profiler); + + uint32_t systemUpdateID; + IdList eventedContainerUpdateIDs; + StringList scanDirectories; + string databaseFile; + string pluginDirectory; + tntdb::Connection connection; + + upnp::cPluginManager* pluginManager; + + typedef std::map ProviderMap; + typedef std::list> ProfilerList; + + ProviderMap providers; + ProfilerList profilers; }; -- cgit v1.2.3