Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | db/upnp: merge duplicate branches in Namei() | Max Kellermann | 2014-01-21 | 1 | -25/+10 |
| | |||||
* | db/upnp: simplify Namei() | Max Kellermann | 2014-01-21 | 1 | -7/+6 |
| | |||||
* | db/upnp: use std::list instead of std::vector | Max Kellermann | 2014-01-21 | 1 | -6/+7 |
| | | | | Reduce overhead. | ||||
* | db/upnp: use iterator in Namei() | Max Kellermann | 2014-01-21 | 1 | -4/+5 |
| | |||||
* | db/upnp: move "objid" declaration down | Max Kellermann | 2014-01-21 | 1 | -2/+2 |
| | | | | Don't allocate the object when it's not needed. | ||||
* | db/upnp: eliminate redundant Namei() parameter "oobjid" | Max Kellermann | 2014-01-21 | 1 | -12/+7 |
| | | | | | The caller should better obtain the object id from the returned UPnPDirObject instance. | ||||
* | db/upnp: remove redundant objid.empty() check from VisitServer() | Max Kellermann | 2014-01-21 | 1 | -4/+0 |
| | | | | If Namei() succeeds, the object id is guaranteed to be set. | ||||
* | db/upnp: use std::move() to extract server name | Max Kellermann | 2014-01-21 | 1 | -1/+1 |
| | | | | Reduce runtime overhead. | ||||
* | db/upnp: use vector::front() instead of [0] | Max Kellermann | 2014-01-21 | 1 | -5/+5 |
| | |||||
* | db/upnp: don't construct redundant empty vector<string> in Visit() | Max Kellermann | 2014-01-21 | 1 | -1/+1 |
| | | | | We know already that vpath is empty, let's use this instance. | ||||
* | db/upnp: simplify GetSong() | Max Kellermann | 2014-01-21 | 1 | -20/+18 |
| | |||||
* | LightSong: add attribute "real_uri" | Max Kellermann | 2014-01-21 | 1 | -24/+18 |
| | | | | | The UPnP database plugin can now show relative song URIs for remote songs. | ||||
* | db/upnp: fix empty song URI | Max Kellermann | 2014-01-21 | 1 | -3/+6 |
| | | | | Fall back to UPnPDirObject::url if there is no override. | ||||
* | LightSong: new class to be used by DatabasePlugin callbacks | Max Kellermann | 2014-01-19 | 1 | -31/+40 |
| | | | | | Detach the Song class completely from the public API, only to be used by SimpleDatabase and the update thread. | ||||
* | Song: embed the Tag object statically into class Song | Max Kellermann | 2014-01-19 | 1 | -1/+1 |
| | | | | | Reduces overhead because we need to manage only one memory allocation. According to valgrind/massif, we save 7%. | ||||
* | db/upnp: move Tag from UPnPDirObject to Song | Max Kellermann | 2014-01-18 | 1 | -11/+14 |
| | | | | | The UPnPDirObject is a temporary object, we can move its contents. This reduces runtime overhead. | ||||
* | db/upnp: use getServer() in Visit() | Max Kellermann | 2014-01-18 | 1 | -17/+9 |
| | | | | Reduce bloat. | ||||
* | db/upnp/Discovery: eliminate Error attribute | Max Kellermann | 2014-01-18 | 1 | -21/+4 |
| | | | | | Move code to method Start() and add Error& parameters to several methods. | ||||
* | db/upnp: remove unnecessary m_superdir nullptr checks | Max Kellermann | 2014-01-18 | 1 | -3/+3 |
| | |||||
* | db/upnp: pass ContentDirectoryService references | Max Kellermann | 2014-01-18 | 1 | -27/+27 |
| | |||||
* | db/upnp: include cleanup | Max Kellermann | 2014-01-18 | 1 | -1/+0 |
| | |||||
* | db/upnp: don't use LazyDatabase | Max Kellermann | 2014-01-18 | 1 | -2/+1 |
| | | | | Now that MPD forks early, this workaround is obsolete. | ||||
* | db/upnp: move the LibUPnP instance to class UpnpDatabase | Max Kellermann | 2014-01-16 | 1 | -9/+17 |
| | | | | Delete the object when closing the database. | ||||
* | db/upnp: move the UPnPDeviceDirectory instance to class UpnpDatabase | Max Kellermann | 2014-01-16 | 1 | -4/+6 |
| | | | | Delete the object when closing the database. | ||||
* | db/upnp: don't initialize attributes to nullptr | Max Kellermann | 2014-01-16 | 1 | -4/+0 |
| | | | | Not necessary, these are not used. | ||||
* | db/upnp: remove redundant m_root nullptr checks | Max Kellermann | 2014-01-16 | 1 | -5/+1 |
| | |||||
* | db/upnp/Object: add attribute "tag" | Max Kellermann | 2014-01-14 | 1 | -37/+2 |
| | | | | Replaces "m_title" and "m_props". More bloat removed. | ||||
* | db/upnp: move upnp_tags to Tags.cxx | Max Kellermann | 2014-01-14 | 1 | -11/+1 |
| | |||||
* | db/upnp/Object: disallow copying, always move | Max Kellermann | 2014-01-14 | 1 | -5/+4 |
| | | | | Reduce bloat. | ||||
* | db/upnp: getTagValue() returns string pointer | Max Kellermann | 2014-01-14 | 1 | -19/+13 |
| | | | | Reduce bloat. | ||||
* | db/upnp/Directory: merge m_containers and m_items | Max Kellermann | 2014-01-14 | 1 | -52/+59 |
| | | | | | There is no use in duplicating these containers. It only means that we have to search both, duplicating the code. | ||||
* | db/upnp: pass const reference to getTagValue() | Max Kellermann | 2014-01-14 | 1 | -1/+1 |
| | |||||
* | db/upnp: Namei() returns error when no object was found | Max Kellermann | 2014-01-14 | 1 | -2/+5 |
| | | | | Don't fail silently. | ||||
* | db/upnp/Object: add attribute "name" | Max Kellermann | 2014-01-14 | 1 | -19/+5 |
| | | | | Call titleToPathElt() only once for each object. | ||||
* | db/upnp: use std::replace() in titleToPath() | Max Kellermann | 2014-01-14 | 1 | -10/+4 |
| | |||||
* | db/upnp: pass std::string to titleToPathElt() | Max Kellermann | 2014-01-14 | 1 | -2/+2 |
| | |||||
* | db/upnp: don't sanitize the title tag | Max Kellermann | 2014-01-14 | 1 | -2/+2 |
| | | | We need this only for path names. | ||||
* | copyright year 2014 | Max Kellermann | 2014-01-13 | 1 | -1/+1 |
| | |||||
* | db/upnp: add fallback for emplace() | Max Kellermann | 2014-01-13 | 1 | -1/+6 |
| | | | | | The method emplace() was added in gcc 4.8. This commit restores compatibility with gcc 4.7. | ||||
* | db/upnp/Object: add attribute "url" | Max Kellermann | 2014-01-11 | 1 | -1/+1 |
| | | | | Don't store in the std::map. | ||||
* | db/upnp/Directory: parse duration | Max Kellermann | 2014-01-11 | 1 | -13/+2 |
| | | | | | | 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.cxx | Max Kellermann | 2014-01-11 | 1 | -36/+1 |
| | |||||
* | db/upnp: move lazy Open() call to new class LazyDatabase | Max Kellermann | 2014-01-11 | 1 | -29/+9 |
| | | | | Generic approach for the workaround. | ||||
* | DatabasePlugin: add interface DatabaseListener | Max Kellermann | 2014-01-11 | 1 | -2/+5 |
| | | | | Allow database plugins to announce that they have been modified. | ||||
* | db/upnp: remove "upnplog" option | Max Kellermann | 2014-01-10 | 1 | -6/+1 |
| | | | | | We have removed all libupnp logging calls, and we don't need to debug libupnp. | ||||
* | db/upnp/Object: use strictly-typed enums | Max Kellermann | 2014-01-10 | 1 | -32/+53 |
| | | | | | 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 | 1 | -16/+16 |
| | | | | | Return the return value, instead returning it in a reference parameter. Reduces bloat by reducing unnecessary std::string usage. | ||||
* | 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. | ||||
* | UPnP database plugin | Jean-Francois Dockes | 2014-01-09 | 1 | -0/+923 |
[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] |