aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* 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-103-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 Kellermann2014-01-102-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 Kellermann2014-01-101-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_msMax Kellermann2014-01-101-5/+0
| | | | Not necessary or useful.
* db/upnp: use TagTable in upnpItemToSong()Max Kellermann2014-01-101-25/+14
| | | | Reduces bloat by eliminating one std::map.
* doc/user: mention the upnp database pluginMax Kellermann2014-01-091-0/+8
|
* UPnP database pluginJean-Francois Dockes2014-01-0925-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 bufferMax Kellermann2014-01-092-9/+22
|
* ExpatParser: add helper class CommonExpatParserMax Kellermann2014-01-091-0/+48
|
* event/Loop: allow AddTimer() after Run() has returnedMax Kellermann2014-01-091-1/+3
| | | | Kludge for libavahi-client quirk.
* tag/TagTable: add lookup TagType -> nameMax Kellermann2014-01-092-0/+19
|
* event/Loop: allow scheduling events before Run()Max Kellermann2014-01-093-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 Kellermann2014-01-094-13/+5
|
* db/proxy: allocate Directory instance on the stackMax Kellermann2014-01-091-7/+3
|
* Directory: convert to fixed-size structMax Kellermann2014-01-092-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 Kellermann2014-01-092-15/+0
|
* playlist/{asx,rss,xspf}: use Expat instead of GLib to parse XMLMax Kellermann2014-01-098-261/+225
|
* playlist/asx: make variables more localMax Kellermann2014-01-091-7/+6
|
* DetachedSong: fork of struct SongMax Kellermann2014-01-0970-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 dereferenceMax Kellermann2014-01-091-1/+1
|
* SongUpdate: move code to handle_lsinfo()Max Kellermann2014-01-085-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 localMax Kellermann2014-01-081-5/+4
|
* doc/user.xml: add alsa input sectionSteven O'Brien2014-01-081-0/+18
|
* Merge branch 'v0.18.x'Max Kellermann2014-01-086-3/+12
|\
| * decoder/faad: fix memory leakMax Kellermann2014-01-082-0/+4
| |
| * playlist/pls: don't free stack bufferMax Kellermann2014-01-082-1/+1
| |
| * doc/user: fix typoMax Kellermann2014-01-071-1/+1
| |
| * util/UriUtil: uri_get_suffix() fails if name begins with dotMax Kellermann2013-12-292-1/+6
| | | | | | | | | | A file called ".jpg" is not a JPEG file with an empty name; it is merely a hidden file.
* | valgrind.suppressions: add libsmbclient suppressionsMax Kellermann2014-01-081-0/+22
| |
* | playlist/pls: make variables more localMax Kellermann2014-01-081-17/+9
| |
* | playlist/pls: convert "while" loop to "for" loopMax Kellermann2014-01-081-2/+1
| |
* | playlist/pls: simplify error handlerMax Kellermann2014-01-081-11/+4
| | | | | | | | | | Don't pass a GError** to g_key_file_get_X(). We don't need to dispose something we didn't request in the first place.
* | DespotifyUtils: return Tag, not pointerMax Kellermann2014-01-084-12/+12
| |
* | DespotifyUtils: pass const ds_track referenceMax Kellermann2014-01-084-17/+17
| |
* | tag/TagBuilder: overload Commit() returning a Tag objectMax Kellermann2014-01-087-12/+24
| |
* | tag/TagBuilder: rename Commit() to CommitNew()Max Kellermann2014-01-0820-23/+23
| |
* | input/AlsaInputPlugin: remove unnecessary alsa s/w param setting to fix high ↵Steven O'Brien2014-01-081-9/+0
| | | | | | | | CPU load issue
* | SongSticker: use Song referencesMax Kellermann2014-01-084-31/+26
| |
* | PlayerThread: use Song referencesMax Kellermann2014-01-081-15/+13
| |
* | DecoderThread: use Song referencesMax Kellermann2014-01-081-10/+10
| |
* | test: add missing includesMax Kellermann2014-01-078-0/+11
| |
* | util/Alloc: new library replacing GLib's g_malloc()Max Kellermann2014-01-0720-57/+209
| |
* | DecoderBuffer: use NewVarSize()Max Kellermann2014-01-071-13/+10
| |
* | tag/TagPool: use NewVarSize() to allocate TagPoolSlotMax Kellermann2014-01-071-21/+27
| |
* | tag/TagPool: rename struct slot to TagPoolSlotMax Kellermann2014-01-071-14/+13
| |