diff options
Diffstat (limited to 'media')
-rw-r--r-- | media/mediaManager.cpp | 4 | ||||
-rw-r--r-- | media/pluginManager.cpp | 7 |
2 files changed, 7 insertions, 4 deletions
diff --git a/media/mediaManager.cpp b/media/mediaManager.cpp index c869bb0..409b49d 100644 --- a/media/mediaManager.cpp +++ b/media/mediaManager.cpp @@ -270,7 +270,7 @@ int cMediaManager::CreateResponse(MediaRequest& request, const string& select, c boost::shared_ptr<cUPnPResourceProvider> provider(CreateResourceProvider(row2.getString(property::resource::KEY_RESOURCE))); if(provider.get()){ - string resourceURI = provider->GetHTTPUri(row2.getString(property::resource::KEY_RESOURCE)); + string resourceURI = provider->GetHTTPUri(row2.getString(property::resource::KEY_RESOURCE), cMediaServer::GetInstance()->GetServerIPAddress()); IXML_Element* resource = ixml::IxmlAddFilteredProperty(filterList, DIDLDoc, object, property::resource::KEY_RESOURCE, resourceURI); @@ -608,7 +608,7 @@ cResourceStreamer* cMediaManager::GetResourceStreamer(const string& objectID, in } cUPnPResourceProvider* cMediaManager::CreateResourceProvider(const string& uri){ - return NULL; + return pluginManager->CreateProvider(uri.substr(0, uri.find_first_of(':',0))); } void cMediaManager::SetDatabaseFile(const string& file){ diff --git a/media/pluginManager.cpp b/media/pluginManager.cpp index 280f0c9..a76af8f 100644 --- a/media/pluginManager.cpp +++ b/media/pluginManager.cpp @@ -229,7 +229,7 @@ bool cUPnPResourceProvider::GetMetadata(const string& uri, cMetadata& metadata){ } -string cUPnPResourceProvider::GetHTTPUri(const string& uri, const string& currentIP){ +string cUPnPResourceProvider::GetHTTPUri(const string&, const string&){ return string(); } @@ -268,7 +268,10 @@ int upnp::cPluginManager::Count() const { } cUPnPResourceProvider* upnp::cPluginManager::CreateProvider(const string& schema) { - return providers[schema](); + if(providers[schema]) + return providers[schema](); + else + return NULL; } #define UPNPPLUGIN_PREFIX "libupnp-" |