aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/plugins/upnp/ContentDirectoryService.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'src/db/plugins/upnp/ContentDirectoryService.cxx')
-rw-r--r--src/db/plugins/upnp/ContentDirectoryService.cxx77
1 files changed, 4 insertions, 73 deletions
diff --git a/src/db/plugins/upnp/ContentDirectoryService.cxx b/src/db/plugins/upnp/ContentDirectoryService.cxx
index 35445e09d..c097f7644 100644
--- a/src/db/plugins/upnp/ContentDirectoryService.cxx
+++ b/src/db/plugins/upnp/ContentDirectoryService.cxx
@@ -18,41 +18,16 @@
*/
#include "config.h"
-#include "ContentDirectoryService.hxx"
-#include "Domain.hxx"
-#include "Device.hxx"
-#include "ixmlwrap.hxx"
+#include "lib/upnp/ContentDirectoryService.hxx"
+#include "lib/upnp/Domain.hxx"
+#include "lib/upnp/ixmlwrap.hxx"
+#include "lib/upnp/Action.hxx"
#include "Directory.hxx"
-#include "Util.hxx"
-#include "Action.hxx"
#include "util/NumberParser.hxx"
#include "util/Error.hxx"
-#include <string.h>
#include <stdio.h>
-ContentDirectoryService::ContentDirectoryService(const UPnPDevice &device,
- const UPnPService &service)
- :m_actionURL(caturl(device.URLBase, service.controlURL)),
- m_serviceType(service.serviceType),
- m_deviceId(device.UDN),
- m_friendlyName(device.friendlyName),
- m_manufacturer(device.manufacturer),
- m_modelName(device.modelName),
- m_rdreqcnt(200)
-{
- if (!m_modelName.compare("MediaTomb")) {
- // Readdir by 200 entries is good for most, but MediaTomb likes
- // them really big. Actually 1000 is better but I don't dare
- m_rdreqcnt = 500;
- }
-}
-
-ContentDirectoryService::~ContentDirectoryService()
-{
- /* this destructor exists here just so it won't get inlined */
-}
-
static bool
ReadResultTag(UPnPDirContent &dirbuf, IXML_Document *response, Error &error)
{
@@ -192,50 +167,6 @@ ContentDirectoryService::search(UpnpClient_Handle hdl,
}
bool
-ContentDirectoryService::getSearchCapabilities(UpnpClient_Handle hdl,
- std::list<std::string> &result,
- Error &error) const
-{
- assert(result.empty());
-
- IXML_Document *request =
- UpnpMakeAction("GetSearchCapabilities", m_serviceType.c_str(),
- 0,
- nullptr, nullptr);
- if (request == 0) {
- error.Set(upnp_domain, "UpnpMakeAction() failed");
- return false;
- }
-
- IXML_Document *response;
- auto code = UpnpSendAction(hdl, m_actionURL.c_str(),
- m_serviceType.c_str(),
- 0 /*devUDN*/, request, &response);
- ixmlDocument_free(request);
- if (code != UPNP_E_SUCCESS) {
- error.Format(upnp_domain, code,
- "UpnpSendAction() failed: %s",
- UpnpGetErrorMessage(code));
- return false;
- }
-
- const char *s = ixmlwrap::getFirstElementValue(response, "SearchCaps");
- if (s == nullptr || *s == 0) {
- ixmlDocument_free(response);
- return true;
- }
-
- bool success = true;
- if (!csvToStrings(s, result)) {
- error.Set(upnp_domain, "Bad response");
- success = false;
- }
-
- ixmlDocument_free(response);
- return success;
-}
-
-bool
ContentDirectoryService::getMetadata(UpnpClient_Handle hdl,
const char *objectId,
UPnPDirContent &dirbuf,