Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | PlaylistSong: modify the given song object in-place | Max Kellermann | 2014-01-21 | 5 | -122/+86 |
| | | | | Reduce bloat. | ||||
* | test: add unit test for playlist_check_translate_song() | Max Kellermann | 2014-01-21 | 2 | -0/+306 |
| | |||||
* | PlaylistSong: remove redundant "secure" check | Max Kellermann | 2014-01-21 | 1 | -3/+3 |
| | | | | This has been verified already in the caller. | ||||
* | PlaylistSong: recurse after applying base_uri | Max Kellermann | 2014-01-20 | 1 | -3/+3 |
| | | | | Allows applying map_to_relative_path() with base_uri. | ||||
* | PlaylistSong: remove the IsInDatabase() check | Max Kellermann | 2014-01-20 | 1 | -4/+0 |
| | | | | | No caller passes a database song to this function, but if he does, this check doesn't make sense. | ||||
* | PlaylistSong: don't map relative URI to absolute path | Max Kellermann | 2014-01-20 | 1 | -18/+2 |
| | | | | This didn't make sense. | ||||
* | CommandLine: show the current git tag and commit id | Max Kellermann | 2014-01-20 | 2 | -1/+9 |
| | |||||
* | PlaylistSong: pass reference variables internally | Max Kellermann | 2014-01-20 | 1 | -18/+17 |
| | |||||
* | Merge branch 'v0.18.x' | Max Kellermann | 2014-01-20 | 12 | -55/+56 |
|\ | |||||
| * | Queue: rename struct queue to Queue | Max Kellermann | 2014-01-20 | 12 | -55/+56 |
| | | | | | | | | | | Works around a build failure on Solaris because annoyingly, Solaris reserves the name "queue". This rename was pending anyway. | ||||
| * | Queue: make the constructor "explicit" | Max Kellermann | 2014-01-20 | 1 | -1/+1 |
| | | |||||
* | | Song: make the "parent" attribute mandatory | Max Kellermann | 2014-01-19 | 6 | -21/+16 |
| | | | | | | | | | | The Song class is only used for database songs now. A Song without a Directory is not possible anymore. | ||||
* | | Directory: use Song::Export() | Max Kellermann | 2014-01-19 | 1 | -15/+1 |
| | | |||||
* | | LightSong: new class to be used by DatabasePlugin callbacks | Max Kellermann | 2014-01-19 | 44 | -237/+386 |
| | | | | | | | | | | Detach the Song class completely from the public API, only to be used by SimpleDatabase and the update thread. | ||||
* | | db/proxy: simplify error handling in GetSong() | Max Kellermann | 2014-01-19 | 1 | -11/+9 |
| | | | | | | | | | | Check mpd_response_finish() before using mpd_song. Don't skip this check even if the mpd_song is non-nullptr. | ||||
* | | db/simple: make borrowed_song_count "mutable" | Max Kellermann | 2014-01-19 | 2 | -3/+3 |
| | | | | | | | | Simpler to use than const_cast. | ||||
* | | Tag: pack attributes tighter | Max Kellermann | 2014-01-19 | 2 | -7/+7 |
| | | | | | | | | This saves another 3% memory. | ||||
* | | Song: embed the Tag object statically into class Song | Max Kellermann | 2014-01-19 | 14 | -47/+26 |
| | | | | | | | | | | Reduces overhead because we need to manage only one memory allocation. According to valgrind/massif, we save 7%. | ||||
* | | Song: use the VarSize library | Max Kellermann | 2014-01-18 | 2 | -13/+19 |
| | | |||||
* | | 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/Discovery: eliminate attribute "last_seen" | Max Kellermann | 2014-01-18 | 2 | -6/+4 |
| | | |||||
* | | db/upnp/Discovery: use monotonic clock instead of time() | Max Kellermann | 2014-01-18 | 2 | -10/+18 |
| | | |||||
* | | db/upnp/Discovery: eliminate full copy in getServer() | Max Kellermann | 2014-01-18 | 2 | -9/+17 |
| | | |||||
* | | 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 | 3 | -51/+32 |
| | | | | | | | | | | 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: cache m_path.back() | Max Kellermann | 2014-01-18 | 2 | -16/+18 |
| | | |||||
* | | db/upnp: add UpnpMakeAction() helper function | Max Kellermann | 2014-01-18 | 3 | -30/+79 |
| | | |||||
* | | db/upnp/ixmlwrap: getFirstElementValue() returns const char * | Max Kellermann | 2014-01-18 | 5 | -27/+33 |
| | | | | | | | | Eliminate the std::string bloat. | ||||
* | | db/upnp: merge duplicate nullptr check | Max Kellermann | 2014-01-18 | 1 | -2/+2 |
| | | |||||
* | | db/upnp: free IXML_Document *request manually | Max Kellermann | 2014-01-18 | 1 | -38/+40 |
| | | |||||
* | | db/upnp/Device: move code to method Parse() | Max Kellermann | 2014-01-18 | 4 | -31/+39 |
| | | | | | | | | Forward the Error to the caller. | ||||
* | | db/upnp/Device: use ContentDirectoryDescriptor's move operator | Max Kellermann | 2014-01-18 | 3 | -7/+7 |
| | | | | | | | | Reduce bloat. | ||||
* | | db/upnp/Discovery: don't copy XML to std::string | Max Kellermann | 2014-01-18 | 3 | -4/+4 |
| | | | | | | | | Pass "const char *" to Expat. | ||||
* | | db/upnp/Discovery: fix memory leak | Max Kellermann | 2014-01-18 | 1 | -0/+1 |
| | | |||||
* | | db/upnp: remove unused typedef DevServIt | Max Kellermann | 2014-01-18 | 1 | -2/+0 |
| | | |||||
* | | db/upnp: use move operator to assign XML CDATA | Max Kellermann | 2014-01-18 | 2 | -12/+12 |
| | | | | | | | | Reduce runtime bloat. | ||||
* | | db/upnp/Util: trimstring() constructs string from buffer | Max Kellermann | 2014-01-18 | 4 | -17/+15 |
| | | | | | | | | | | Reduce overhead by omitting the part of the buffer that consists only of whitespace. | ||||
* | | db/upnp/Discovery: free the response body | Max Kellermann | 2014-01-18 | 1 | -0/+1 |
| | | | | | | | | Memory leak. | ||||
* | | db/upnp/Discovery: don't copy the response body | Max Kellermann | 2014-01-18 | 1 | -2/+1 |
| | | | | | | | | Bloat. | ||||
* | | db/upnp: don't hold mutex while downloading device description | Max Kellermann | 2014-01-18 | 1 | -1/+1 |
| | | | | | | | | Must not perform blocking I/O while holding a mutex. | ||||
* | | db/upnp: don't use WorkQueue for _ADVERTISEMENT_BYEBYE | Max Kellermann | 2014-01-18 | 2 | -36/+30 |
| | | | | | | | | Remove the ContentDirectoryDescriptor right away. Reduces bloat. | ||||
* | | 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. | ||||
* | | Daemon: fork as early as possible | Max Kellermann | 2014-01-18 | 4 | -28/+107 |
| | | | | | | | | | | | | | | Keep the parent process around until MPD has finished initializing. This is important for libraries that are allergic to fork(), such as libupnp. | ||||
* | | PidFile: open in write-only mode | Max Kellermann | 2014-01-18 | 1 | -1/+1 |
| | | |||||
* | | Daemon: move code to class PidFile | Max Kellermann | 2014-01-18 | 3 | -19/+72 |
| | | |||||
* | | Daemon: don't use daemon(), always require fork() | Max Kellermann | 2014-01-18 | 2 | -12/+0 |
| | | | | | | | | | | | | Prepare for more advanced daemonization code, which will not work with daemon(). Let's just require fork(). Everybody who supports daemon() also supports fork(). | ||||
* | | Main: make variables more local | Max Kellermann | 2014-01-18 | 1 | -13/+9 |
| | |