Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | db/upnp: move stringToTokens() to Util.cxx | Max Kellermann | 2014-01-11 | 3 | -36/+44 | |
| | | ||||||
* | | db/upnp: move lazy Open() call to new class LazyDatabase | Max Kellermann | 2014-01-11 | 4 | -29/+182 | |
| | | | | | | | | Generic approach for the workaround. | |||||
* | | db/upnp/discovery: convert std::strings to const char * | Max Kellermann | 2014-01-11 | 1 | -11/+13 | |
| | | | | | | | | Reduce bloat. | |||||
* | | db/upnp: remove unnecessary Mutex | Max Kellermann | 2014-01-11 | 2 | -4/+0 | |
| | | ||||||
* | | db/proxy: forward "idle" events | Max Kellermann | 2014-01-11 | 2 | -4/+116 | |
| | | | | | | | | | | Send "idle" to the other MPD whenever there's nothing else to do and forward incoming "idle database" events to all our MPD clients. | |||||
* | | DatabasePlugin: add interface DatabaseListener | Max Kellermann | 2014-01-11 | 13 | -13/+93 | |
| | | | | | | | | Allow database plugins to announce that they have been modified. | |||||
* | | db/proxy: move code to Disconnect() | Max Kellermann | 2014-01-11 | 1 | -6/+15 | |
| | | ||||||
* | | UpdateGlue: move stats_invalidate() call to Instance::DatabaseModified() | Max Kellermann | 2014-01-11 | 2 | -3/+2 | |
| | | ||||||
* | | Stats: lazy initialization | Max Kellermann | 2014-01-10 | 4 | -11/+37 | |
| | | | | | | | | | | Ask the DatabasePlugin for stats when the first client requests them, not at startup. | |||||
* | | db/upnp: remove unused method setMaxContentLength() | Max Kellermann | 2014-01-10 | 2 | -10/+1 | |
| | | ||||||
* | | db/upnp: remove "upnplog" option | Max Kellermann | 2014-01-10 | 3 | -44/+2 | |
| | | | | | | | | | | We have removed all libupnp logging calls, and we don't need to debug libupnp. | |||||
* | | db/upnp: remove unused macro PLOGINF() | Max Kellermann | 2014-01-10 | 1 | -9/+0 | |
| | | ||||||
* | | db/upnp: remove unused method errAsString() | Max Kellermann | 2014-01-10 | 2 | -12/+0 | |
| | | ||||||
* | | db/upnp/Device: remove unused attribute "m_tabs" | Max Kellermann | 2014-01-10 | 1 | -4/+1 | |
| | | ||||||
* | | db/upnp: remove unnecessary empty string checks from CharacterData() | Max Kellermann | 2014-01-10 | 2 | -5/+0 | |
| | | ||||||
* | | db/upnp/Directory: simplify checkobjok() | Max Kellermann | 2014-01-10 | 1 | -9/+9 | |
| | | ||||||
* | | db/upnp/Directory: don't log unknown items | Max Kellermann | 2014-01-10 | 1 | -8/+0 | |
| | | ||||||
* | | db/upnp/Directory: eliminate the "attributes" std::map | Max Kellermann | 2014-01-10 | 3 | -11/+40 | |
| | | | | | | | | Look up attributes in the "atts" array. Reduce bloat. | |||||
* | | db/upnp/Directory: move "res" attributes to array | Max Kellermann | 2014-01-10 | 1 | -7/+15 | |
| | | | | | | | | Reduce bloat. | |||||
* | | db/upnp: use nullptr-terminated array | Max Kellermann | 2014-01-10 | 1 | -6/+4 | |
| | | | | | | | | Reduce bloat. | |||||
* | | db/upnp/Directory: eliminate struct StackEl, use std::string | Max Kellermann | 2014-01-10 | 1 | -11/+6 | |
| | | | | | | | | Reduces bloat. | |||||
* | | db/upnp/Directory: make "attributes" a local variable | Max Kellermann | 2014-01-10 | 1 | -14/+14 | |
| | | | | | | | | We only need it inside StartElement(). Reduces bloat. | |||||
* | | db/upnp/Directory: move "res" tag handler to StartElement() | Max Kellermann | 2014-01-10 | 1 | -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:class | Max Kellermann | 2014-01-10 | 1 | -9/+18 | |
| | | | | | | | | Reduce excessive bloat. | |||||
* | | db/upnp/Object: use strictly-typed enums | Max Kellermann | 2014-01-10 | 3 | -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. | |||||
* | | db/upnp: getprop() returns const char * | Max Kellermann | 2014-01-10 | 2 | -21/+19 | |
| | | | | | | | | | | Return the return value, instead returning it in a reference parameter. Reduces bloat by reducing unnecessary std::string usage. | |||||
* | | Expat: attributes come in name/value pairs (bug fix) | Max Kellermann | 2014-01-10 | 1 | -2/+2 | |
| | | | | | | | | | | I wrongfully assumed that each array element is a name and a value concatenated. | |||||
* | | db/upnp: don't set mtime, start_ms, end_ms | Max Kellermann | 2014-01-10 | 1 | -5/+0 | |
| | | | | | | | | Not necessary or useful. | |||||
* | | db/upnp: use TagTable in upnpItemToSong() | Max Kellermann | 2014-01-10 | 1 | -25/+14 | |
| | | | | | | | | Reduces bloat by eliminating one std::map. | |||||
* | | doc/user: mention the upnp database plugin | Max Kellermann | 2014-01-09 | 1 | -0/+8 | |
| | | ||||||
* | | UPnP database plugin | Jean-Francois Dockes | 2014-01-09 | 25 | -0/+3292 | |
| | | | | | | | | | | | | [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] | |||||
* | | ExpatParser: add Parse() overload with buffer | Max Kellermann | 2014-01-09 | 2 | -9/+22 | |
| | | ||||||
* | | ExpatParser: add helper class CommonExpatParser | Max Kellermann | 2014-01-09 | 1 | -0/+48 | |
| | | ||||||
* | | event/Loop: allow AddTimer() after Run() has returned | Max Kellermann | 2014-01-09 | 1 | -1/+3 | |
| | | | | | | | | Kludge for libavahi-client quirk. | |||||
* | | tag/TagTable: add lookup TagType -> name | Max Kellermann | 2014-01-09 | 2 | -0/+19 | |
| | | ||||||
* | | event/Loop: allow scheduling events before Run() | Max Kellermann | 2014-01-09 | 3 | -5/+29 | |
| | | | | | | | | | | Add the debug-only flag "virgin" which gets checked by assert() calls. Fixes assertion failures when using zeroconf/avahi. | |||||
* | | Directory: remove method Free() | Max Kellermann | 2014-01-09 | 4 | -13/+5 | |
| | | ||||||
* | | db/proxy: allocate Directory instance on the stack | Max Kellermann | 2014-01-09 | 1 | -7/+3 | |
| | | ||||||
* | | Directory: convert to fixed-size struct | Max Kellermann | 2014-01-09 | 2 | -56/+15 | |
| | | | | | | | | | | Using a variable-size struct with embedded string is not worth the trouble here. There are not so many Directory objects. | |||||
* | | Timer: remove unused method Synchronize() | Max Kellermann | 2014-01-09 | 2 | -15/+0 | |
| | | ||||||
* | | playlist/{asx,rss,xspf}: use Expat instead of GLib to parse XML | Max Kellermann | 2014-01-09 | 8 | -261/+225 | |
| | | ||||||
* | | playlist/asx: make variables more local | Max Kellermann | 2014-01-09 | 1 | -7/+6 | |
| | | ||||||
* | | DetachedSong: fork of struct Song | Max Kellermann | 2014-01-09 | 70 | -785/+817 | |
| | | | | | | | | | | | | 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. | |||||
* | | test/DumpDatabase: fix nullptr dereference | Max Kellermann | 2014-01-09 | 1 | -1/+1 | |
| | | ||||||
* | | SongUpdate: move code to handle_lsinfo() | Max Kellermann | 2014-01-08 | 5 | -20/+30 | |
| | | | | | | | | | | Don't create a temporary Song object in handle_lsinfo(). Instead, print all tags while parsing the remote file. | |||||
* | | SongSave: make variables more local | Max Kellermann | 2014-01-08 | 1 | -5/+4 | |
| | | ||||||
* | | doc/user.xml: add alsa input section | Steven O'Brien | 2014-01-08 | 1 | -0/+18 | |
| | | ||||||
* | | Merge branch 'v0.18.x' | Max Kellermann | 2014-01-08 | 6 | -3/+12 | |
|\| | ||||||
| * | decoder/faad: fix memory leak | Max Kellermann | 2014-01-08 | 2 | -0/+4 | |
| | | ||||||
| * | playlist/pls: don't free stack buffer | Max Kellermann | 2014-01-08 | 2 | -1/+1 | |
| | |