aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/upnp/Directory.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-01-22db/upnp/Directory: replace std::vector with a simple enumMax Kellermann1-20/+34
Reduce bloat.
2014-01-22db/upnp/Directory: join all CDATA nodes for tag valuesMax Kellermann1-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.
2014-01-22db/upnp/Directory: make "m_dir" privateMax Kellermann1-1/+2
2014-01-21db/upnp: don't use stringToTokens() in ParseDuration()Max Kellermann1-4/+20
Reduce bloat.
2014-01-18db/upnp: cache m_path.back()Max Kellermann1-4/+5
2014-01-18db/upnp/ixmlwrap: getFirstElementValue() returns const char *Max Kellermann1-2/+2
Eliminate the std::string bloat.
2014-01-18db/upnp: use move operator to assign XML CDATAMax Kellermann1-1/+1
Reduce runtime bloat.
2014-01-18db/upnp/Util: trimstring() constructs string from bufferMax Kellermann1-2/+1
Reduce overhead by omitting the part of the buffer that consists only of whitespace.
2014-01-14db/upnp/Object: add attribute "tag"Max Kellermann1-20/+19
Replaces "m_title" and "m_props". More bloat removed.
2014-01-14db/upnp/Object: disallow copying, always moveMax Kellermann1-1/+1
Reduce bloat.
2014-01-14db/upnp/Directory: merge m_containers and m_itemsMax Kellermann1-9/+3
There is no use in duplicating these containers. It only means that we have to search both, duplicating the code.
2014-01-14db/upnp/Directory: eliminate one std::string copy with std::move()Max Kellermann1-2/+2
2014-01-14db/upnp/Object: add attribute "name"Max Kellermann1-3/+20
Call titleToPathElt() only once for each object.
2014-01-13db/upnp: fix "upnp:class" parserMax Kellermann1-7/+7
"upnp:class" is an element, not an attribute of element "item". This fixes a regression from commit 65ebfb16
2014-01-11db/upnp/Directory: parse item_class in StartElementMax Kellermann1-12/+8
Don't add to the std::map.
2014-01-11db/upnp/Object: add attribute "url"Max Kellermann1-1/+1
Don't store in the std::map.
2014-01-11db/upnp/Directory: parse durationMax Kellermann1-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.
2014-01-10db/upnp: remove unnecessary empty string checks from CharacterData()Max Kellermann1-2/+0
2014-01-10db/upnp/Directory: simplify checkobjok()Max Kellermann1-9/+9
2014-01-10db/upnp/Directory: don't log unknown itemsMax Kellermann1-8/+0
2014-01-10db/upnp/Directory: eliminate the "attributes" std::mapMax Kellermann1-11/+19
Look up attributes in the "atts" array. Reduce bloat.
2014-01-10db/upnp/Directory: move "res" attributes to arrayMax Kellermann1-7/+15
Reduce bloat.
2014-01-10db/upnp: use nullptr-terminated arrayMax Kellermann1-6/+4
Reduce bloat.
2014-01-10db/upnp/Directory: eliminate struct StackEl, use std::stringMax Kellermann1-11/+6
Reduces bloat.
2014-01-10db/upnp/Directory: make "attributes" a local variableMax Kellermann1-14/+14
We only need it inside StartElement(). Reduces bloat.
2014-01-10db/upnp/Directory: move "res" tag handler to StartElement()Max Kellermann1-12/+16
No need to handle this in EndElement() - in StartElement(), we already have all we need.
2014-01-10db/upnp/Directory: don't use std::map to parse upnp:classMax Kellermann1-9/+18
Reduce excessive bloat.
2014-01-10db/upnp/Object: use strictly-typed enumsMax Kellermann1-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.
2014-01-09UPnP database pluginJean-Francois Dockes1-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]