aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
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 Kellermann3-2/+4
Don't store in the std::map.
2014-01-11db/upnp/Directory: parse durationMax Kellermann3-28/+22
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-11db/upnp: move stringToTokens() to Util.cxxMax Kellermann3-36/+44
2014-01-11db/upnp: move lazy Open() call to new class LazyDatabaseMax Kellermann3-29/+181
Generic approach for the workaround.
2014-01-11db/upnp/discovery: convert std::strings to const char *Max Kellermann1-11/+13
Reduce bloat.
2014-01-11db/upnp: remove unnecessary MutexMax Kellermann2-4/+0
2014-01-11db/proxy: forward "idle" eventsMax Kellermann1-4/+115
Send "idle" to the other MPD whenever there's nothing else to do and forward incoming "idle database" events to all our MPD clients.
2014-01-11DatabasePlugin: add interface DatabaseListenerMax Kellermann11-12/+77
Allow database plugins to announce that they have been modified.
2014-01-11db/proxy: move code to Disconnect()Max Kellermann1-6/+15
2014-01-11UpdateGlue: move stats_invalidate() call to Instance::DatabaseModified()Max Kellermann2-3/+2
2014-01-10Stats: lazy initializationMax Kellermann4-11/+37
Ask the DatabasePlugin for stats when the first client requests them, not at startup.
2014-01-10db/upnp: remove unused method setMaxContentLength()Max Kellermann2-10/+1
2014-01-10db/upnp: remove "upnplog" optionMax Kellermann3-44/+2
We have removed all libupnp logging calls, and we don't need to debug libupnp.
2014-01-10db/upnp: remove unused macro PLOGINF()Max Kellermann1-9/+0
2014-01-10db/upnp: remove unused method errAsString()Max Kellermann2-12/+0
2014-01-10db/upnp/Device: remove unused attribute "m_tabs"Max Kellermann1-4/+1
2014-01-10db/upnp: remove unnecessary empty string checks from CharacterData()Max Kellermann2-5/+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 Kellermann3-11/+40
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 Kellermann3-44/+74
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-10db/upnp: getprop() returns const char *Max Kellermann2-21/+19
Return the return value, instead returning it in a reference parameter. Reduces bloat by reducing unnecessary std::string usage.
2014-01-10Expat: attributes come in name/value pairs (bug fix)Max Kellermann1-2/+2
I wrongfully assumed that each array element is a name and a value concatenated.
2014-01-10db/upnp: don't set mtime, start_ms, end_msMax Kellermann1-5/+0
Not necessary or useful.
2014-01-10db/upnp: use TagTable in upnpItemToSong()Max Kellermann1-25/+14
Reduces bloat by eliminating one std::map.
2014-01-09UPnP database pluginJean-Francois Dockes21-0/+3236
[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]
2014-01-09ExpatParser: add Parse() overload with bufferMax Kellermann2-9/+22
2014-01-09ExpatParser: add helper class CommonExpatParserMax Kellermann1-0/+48
2014-01-09event/Loop: allow AddTimer() after Run() has returnedMax Kellermann1-1/+3
Kludge for libavahi-client quirk.
2014-01-09tag/TagTable: add lookup TagType -> nameMax Kellermann2-0/+19
2014-01-09event/Loop: allow scheduling events before Run()Max Kellermann3-5/+29
Add the debug-only flag "virgin" which gets checked by assert() calls. Fixes assertion failures when using zeroconf/avahi.
2014-01-09Directory: remove method Free()Max Kellermann4-13/+5
2014-01-09db/proxy: allocate Directory instance on the stackMax Kellermann1-7/+3
2014-01-09Directory: convert to fixed-size structMax Kellermann2-56/+15
Using a variable-size struct with embedded string is not worth the trouble here. There are not so many Directory objects.
2014-01-09Timer: remove unused method Synchronize()Max Kellermann2-15/+0
2014-01-09playlist/{asx,rss,xspf}: use Expat instead of GLib to parse XMLMax Kellermann6-258/+201
2014-01-09playlist/asx: make variables more localMax Kellermann1-7/+6
2014-01-09DetachedSong: fork of struct SongMax Kellermann66-745/+773
From now on, struct Song will be used by the database only, and DetachedSong will be used by everybody else. DetachedSong is easier to use, but Song has lower overhead.
2014-01-08SongUpdate: move code to handle_lsinfo()Max Kellermann5-20/+30
Don't create a temporary Song object in handle_lsinfo(). Instead, print all tags while parsing the remote file.
2014-01-08SongSave: make variables more localMax Kellermann1-5/+4
2014-01-08decoder/faad: fix memory leakMax Kellermann1-0/+2
2014-01-08playlist/pls: don't free stack bufferMax Kellermann1-1/+0
2014-01-08playlist/pls: make variables more localMax Kellermann1-17/+9