aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* copyright year 2014Max Kellermann2014-01-13756-757/+757
|
* db/upnp: add fallback for emplace()Max Kellermann2014-01-132-1/+10
| | | | | The method emplace() was added in gcc 4.8. This commit restores compatibility with gcc 4.7.
* db/upnp: use std::function for the libupnp callbackMax Kellermann2014-01-133-31/+16
| | | | Replaces the bloated std::map.
* 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
* encoder/shine: remove unnecessary bufferAndrée Ekroth2014-01-131-42/+44
| | | | | | | Now writes to the de-interleaved buffers directly, instead of writing to an intermediate fifo buffer. Fix indentation and 80 char width lines.
* Shine encoding pluginAndrée Ekroth2014-01-133-0/+286
| | | | | | | | | | | | | | | | | This encoding plugin features a fixed-point mp3 encoder, with faster encoding on architectures without a FPU. Right now the encoder is limited to stereo and 16 bit depth. The bitrate and sample rate can be modified in audio_output. audio_output { type "httpd" name "My shine stream" encoder "shine" port "8000" format "44100:16:2" bitrate "320" # default: 128 }
* 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-113-2/+4
| | | | Don't store in the std::map.
* db/upnp/Directory: parse durationMax Kellermann2014-01-113-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.
* db/upnp: move stringToTokens() to Util.cxxMax Kellermann2014-01-113-36/+44
|
* db/upnp: move lazy Open() call to new class LazyDatabaseMax Kellermann2014-01-113-29/+181
| | | | Generic approach for the workaround.
* db/upnp/discovery: convert std::strings to const char *Max Kellermann2014-01-111-11/+13
| | | | Reduce bloat.
* db/upnp: remove unnecessary MutexMax Kellermann2014-01-112-4/+0
|
* db/proxy: forward "idle" eventsMax Kellermann2014-01-111-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.
* DatabasePlugin: add interface DatabaseListenerMax Kellermann2014-01-1111-12/+77
| | | | Allow database plugins to announce that they have been modified.
* db/proxy: move code to Disconnect()Max Kellermann2014-01-111-6/+15
|
* UpdateGlue: move stats_invalidate() call to Instance::DatabaseModified()Max Kellermann2014-01-112-3/+2
|
* Stats: lazy initializationMax Kellermann2014-01-104-11/+37
| | | | | Ask the DatabasePlugin for stats when the first client requests them, not at startup.
* db/upnp: remove unused method setMaxContentLength()Max Kellermann2014-01-102-10/+1
|
* db/upnp: remove "upnplog" optionMax Kellermann2014-01-103-44/+2
| | | | | We have removed all libupnp logging calls, and we don't need to debug libupnp.
* db/upnp: remove unused macro PLOGINF()Max Kellermann2014-01-101-9/+0
|
* db/upnp: remove unused method errAsString()Max Kellermann2014-01-102-12/+0
|
* db/upnp/Device: remove unused attribute "m_tabs"Max Kellermann2014-01-101-4/+1
|
* db/upnp: remove unnecessary empty string checks from CharacterData()Max Kellermann2014-01-102-5/+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-103-11/+40
| | | | 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-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.
* UPnP database pluginJean-Francois Dockes2014-01-0921-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]
* 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-096-258/+201
|
* playlist/asx: make variables more localMax Kellermann2014-01-091-7/+6
|