aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | test: add unit test for playlist_check_translate_song()Max Kellermann2014-01-212-0/+306
| |
* | PlaylistSong: remove redundant "secure" checkMax Kellermann2014-01-211-3/+3
| | | | | | | | This has been verified already in the caller.
* | PlaylistSong: recurse after applying base_uriMax Kellermann2014-01-201-3/+3
| | | | | | | | Allows applying map_to_relative_path() with base_uri.
* | PlaylistSong: remove the IsInDatabase() checkMax Kellermann2014-01-201-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 pathMax Kellermann2014-01-201-18/+2
| | | | | | | | This didn't make sense.
* | CommandLine: show the current git tag and commit idMax Kellermann2014-01-202-1/+9
| |
* | PlaylistSong: pass reference variables internallyMax Kellermann2014-01-201-18/+17
| |
* | Merge branch 'v0.18.x'Max Kellermann2014-01-2012-55/+56
|\|
| * Queue: rename struct queue to QueueMax Kellermann2014-01-2012-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 Kellermann2014-01-201-1/+1
| |
* | Song: make the "parent" attribute mandatoryMax Kellermann2014-01-196-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 Kellermann2014-01-191-15/+1
| |
* | LightSong: new class to be used by DatabasePlugin callbacksMax Kellermann2014-01-1944-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 Kellermann2014-01-191-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 Kellermann2014-01-192-3/+3
| | | | | | | | Simpler to use than const_cast.
* | Tag: pack attributes tighterMax Kellermann2014-01-192-7/+7
| | | | | | | | This saves another 3% memory.
* | Song: embed the Tag object statically into class SongMax Kellermann2014-01-1914-47/+26
| | | | | | | | | | Reduces overhead because we need to manage only one memory allocation. According to valgrind/massif, we save 7%.
* | Song: use the VarSize libraryMax Kellermann2014-01-182-13/+19
| |
* | db/upnp: move Tag from UPnPDirObject to SongMax Kellermann2014-01-181-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 Kellermann2014-01-182-6/+4
| |
* | db/upnp/Discovery: use monotonic clock instead of time()Max Kellermann2014-01-182-10/+18
| |
* | db/upnp/Discovery: eliminate full copy in getServer()Max Kellermann2014-01-182-9/+17
| |
* | db/upnp: use getServer() in Visit()Max Kellermann2014-01-181-17/+9
| | | | | | | | Reduce bloat.
* | db/upnp/Discovery: eliminate Error attributeMax Kellermann2014-01-183-51/+32
| | | | | | | | | | Move code to method Start() and add Error& parameters to several methods.
* | db/upnp: remove unnecessary m_superdir nullptr checksMax Kellermann2014-01-181-3/+3
| |
* | db/upnp: pass ContentDirectoryService referencesMax Kellermann2014-01-181-27/+27
| |
* | db/upnp: cache m_path.back()Max Kellermann2014-01-182-16/+18
| |
* | db/upnp: add UpnpMakeAction() helper functionMax Kellermann2014-01-183-30/+79
| |
* | db/upnp/ixmlwrap: getFirstElementValue() returns const char *Max Kellermann2014-01-185-27/+33
| | | | | | | | Eliminate the std::string bloat.
* | db/upnp: merge duplicate nullptr checkMax Kellermann2014-01-181-2/+2
| |
* | db/upnp: free IXML_Document *request manuallyMax Kellermann2014-01-181-38/+40
| |
* | db/upnp/Device: move code to method Parse()Max Kellermann2014-01-184-31/+39
| | | | | | | | Forward the Error to the caller.
* | db/upnp/Device: use ContentDirectoryDescriptor's move operatorMax Kellermann2014-01-183-7/+7
| | | | | | | | Reduce bloat.
* | db/upnp/Discovery: don't copy XML to std::stringMax Kellermann2014-01-183-4/+4
| | | | | | | | Pass "const char *" to Expat.
* | db/upnp/Discovery: fix memory leakMax Kellermann2014-01-181-0/+1
| |
* | db/upnp: remove unused typedef DevServItMax Kellermann2014-01-181-2/+0
| |
* | db/upnp: use move operator to assign XML CDATAMax Kellermann2014-01-182-12/+12
| | | | | | | | Reduce runtime bloat.
* | db/upnp/Util: trimstring() constructs string from bufferMax Kellermann2014-01-184-17/+15
| | | | | | | | | | Reduce overhead by omitting the part of the buffer that consists only of whitespace.
* | db/upnp/Discovery: free the response bodyMax Kellermann2014-01-181-0/+1
| | | | | | | | Memory leak.
* | db/upnp/Discovery: don't copy the response bodyMax Kellermann2014-01-181-2/+1
| | | | | | | | Bloat.
* | db/upnp: don't hold mutex while downloading device descriptionMax Kellermann2014-01-181-1/+1
| | | | | | | | Must not perform blocking I/O while holding a mutex.
* | db/upnp: don't use WorkQueue for _ADVERTISEMENT_BYEBYEMax Kellermann2014-01-182-36/+30
| | | | | | | | Remove the ContentDirectoryDescriptor right away. Reduces bloat.
* | db/upnp: include cleanupMax Kellermann2014-01-181-1/+0
| |
* | db/upnp: don't use LazyDatabaseMax Kellermann2014-01-181-2/+1
| | | | | | | | Now that MPD forks early, this workaround is obsolete.
* | Daemon: fork as early as possibleMax Kellermann2014-01-184-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 modeMax Kellermann2014-01-181-1/+1
| |
* | Daemon: move code to class PidFileMax Kellermann2014-01-183-19/+72
| |
* | Daemon: don't use daemon(), always require fork()Max Kellermann2014-01-182-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 localMax Kellermann2014-01-181-13/+9
| |
* | Main: eliminate variable "success"Max Kellermann2014-01-181-10/+7
| |