aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/upnp/Directory.cxx (follow)
Commit message (Collapse)AuthorAgeFilesLines
* db/upnp/Directory: "emplace" items into the vectorMax Kellermann2014-01-221-1/+1
|
* db/upnp/Directory: replace std::vector with a simple enumMax Kellermann2014-01-221-20/+34
| | | | Reduce bloat.
* db/upnp/Directory: join all CDATA nodes for tag valuesMax Kellermann2014-01-221-11/+43
| | | | | | Expat can call CharacterData() multiple times if the CDATA contains entity references. We need to collect all of them in one large string.
* db/upnp/Directory: make "m_dir" privateMax Kellermann2014-01-221-1/+2
|
* db/upnp: don't use stringToTokens() in ParseDuration()Max Kellermann2014-01-211-4/+20
| | | Reduce bloat.
* db/upnp: cache m_path.back()Max Kellermann2014-01-181-4/+5
|
* db/upnp/ixmlwrap: getFirstElementValue() returns const char *Max Kellermann2014-01-181-2/+2
| | | | Eliminate the std::string bloat.
* db/upnp: use move operator to assign XML CDATAMax Kellermann2014-01-181-1/+1
| | | | Reduce runtime bloat.
* db/upnp/Util: trimstring() constructs string from bufferMax Kellermann2014-01-181-2/+1
| | | | | Reduce overhead by omitting the part of the buffer that consists only of whitespace.
* db/upnp/Object: add attribute "tag"Max Kellermann2014-01-141-20/+19
| | | | Replaces "m_title" and "m_props". More bloat removed.
* db/upnp/Object: disallow copying, always moveMax Kellermann2014-01-141-1/+1
| | | | Reduce bloat.
* db/upnp/Directory: merge m_containers and m_itemsMax Kellermann2014-01-141-9/+3
| | | | | There is no use in duplicating these containers. It only means that we have to search both, duplicating the code.
* db/upnp/Directory: eliminate one std::string copy with std::move()Max Kellermann2014-01-141-2/+2
|
* db/upnp/Object: add attribute "name"Max Kellermann2014-01-141-3/+20
| | | | Call titleToPathElt() only once for each object.
* db/upnp: fix "upnp:class" parserMax Kellermann2014-01-131-7/+7
| | | | | "upnp:class" is an element, not an attribute of element "item". This fixes a regression from commit 65ebfb16
* db/upnp/Directory: parse item_class in StartElementMax Kellermann2014-01-111-12/+8
| | | | Don't add to the std::map.
* db/upnp/Object: add attribute "url"Max Kellermann2014-01-111-1/+1
| | | | Don't store in the std::map.
* db/upnp/Directory: parse durationMax Kellermann2014-01-111-15/+14
| | | | | | Don't put all <res/> attributes to the attributes map; parse the "duration" attribute as soon as we receive it, and store it in an integer attribute. This reduces bloat.
* db/upnp: remove unnecessary empty string checks from CharacterData()Max Kellermann2014-01-101-2/+0
|
* db/upnp/Directory: simplify checkobjok()Max Kellermann2014-01-101-9/+9
|
* db/upnp/Directory: don't log unknown itemsMax Kellermann2014-01-101-8/+0
|
* db/upnp/Directory: eliminate the "attributes" std::mapMax Kellermann2014-01-101-11/+19
| | | | Look up attributes in the "atts" array. Reduce bloat.
* db/upnp/Directory: move "res" attributes to arrayMax Kellermann2014-01-101-7/+15
| | | | Reduce bloat.
* db/upnp: use nullptr-terminated arrayMax Kellermann2014-01-101-6/+4
| | | | Reduce bloat.
* db/upnp/Directory: eliminate struct StackEl, use std::stringMax Kellermann2014-01-101-11/+6
| | | | Reduces bloat.
* db/upnp/Directory: make "attributes" a local variableMax Kellermann2014-01-101-14/+14
| | | | We only need it inside StartElement(). Reduces bloat.
* db/upnp/Directory: move "res" tag handler to StartElement()Max Kellermann2014-01-101-12/+16
| | | | | No need to handle this in EndElement() - in StartElement(), we already have all we need.
* db/upnp/Directory: don't use std::map to parse upnp:classMax Kellermann2014-01-101-9/+18
| | | | Reduce excessive bloat.
* db/upnp/Object: use strictly-typed enumsMax Kellermann2014-01-101-6/+6
| | | | | At the same time, rename the enum types and the class attributes, and add an "UNKNOWN" type/class. The latter avoids the "-1" hack.
* UPnP database pluginJean-Francois Dockes2014-01-091-0/+177
[mk: renamed source files, applied coding style, reduced bloat, using MPD's threading library, using MPD's error reporting and logging library and refactoring, fixed lots of bugs]