aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-01-19Directory: use Song::Export()Max Kellermann1-15/+1
2014-01-19LightSong: new class to be used by DatabasePlugin callbacksMax Kellermann42-223/+404
Detach the Song class completely from the public API, only to be used by SimpleDatabase and the update thread.
2014-01-19db/proxy: simplify error handling in GetSong()Max Kellermann1-11/+9
Check mpd_response_finish() before using mpd_song. Don't skip this check even if the mpd_song is non-nullptr.
2014-01-19db/simple: make borrowed_song_count "mutable"Max Kellermann2-3/+3
Simpler to use than const_cast.
2014-01-19Tag: pack attributes tighterMax Kellermann2-7/+7
This saves another 3% memory.
2014-01-19Song: embed the Tag object statically into class SongMax Kellermann14-47/+26
Reduces overhead because we need to manage only one memory allocation. According to valgrind/massif, we save 7%.
2014-01-18Song: use the VarSize libraryMax Kellermann2-13/+19
2014-01-18db/upnp: move Tag from UPnPDirObject to SongMax Kellermann1-11/+14
The UPnPDirObject is a temporary object, we can move its contents. This reduces runtime overhead.
2014-01-18db/upnp/Discovery: eliminate attribute "last_seen"Max Kellermann2-6/+4
2014-01-18db/upnp/Discovery: use monotonic clock instead of time()Max Kellermann2-10/+18
2014-01-18db/upnp/Discovery: eliminate full copy in getServer()Max Kellermann2-9/+17
2014-01-18db/upnp: use getServer() in Visit()Max Kellermann1-17/+9
Reduce bloat.
2014-01-18db/upnp/Discovery: eliminate Error attributeMax Kellermann3-51/+32
Move code to method Start() and add Error& parameters to several methods.
2014-01-18db/upnp: remove unnecessary m_superdir nullptr checksMax Kellermann1-3/+3
2014-01-18db/upnp: pass ContentDirectoryService referencesMax Kellermann1-27/+27
2014-01-18db/upnp: cache m_path.back()Max Kellermann2-16/+18
2014-01-18db/upnp: add UpnpMakeAction() helper functionMax Kellermann2-30/+78
2014-01-18db/upnp/ixmlwrap: getFirstElementValue() returns const char *Max Kellermann5-27/+33
Eliminate the std::string bloat.
2014-01-18db/upnp: merge duplicate nullptr checkMax Kellermann1-2/+2
2014-01-18db/upnp: free IXML_Document *request manuallyMax Kellermann1-38/+40
2014-01-18db/upnp/Device: move code to method Parse()Max Kellermann4-31/+39
Forward the Error to the caller.
2014-01-18db/upnp/Device: use ContentDirectoryDescriptor's move operatorMax Kellermann3-7/+7
Reduce bloat.
2014-01-18db/upnp/Discovery: don't copy XML to std::stringMax Kellermann3-4/+4
Pass "const char *" to Expat.
2014-01-18db/upnp/Discovery: fix memory leakMax Kellermann1-0/+1
2014-01-18db/upnp: remove unused typedef DevServItMax Kellermann1-2/+0
2014-01-18db/upnp: use move operator to assign XML CDATAMax Kellermann2-12/+12
Reduce runtime bloat.
2014-01-18db/upnp/Util: trimstring() constructs string from bufferMax Kellermann4-17/+15
Reduce overhead by omitting the part of the buffer that consists only of whitespace.
2014-01-18db/upnp/Discovery: free the response bodyMax Kellermann1-0/+1
Memory leak.
2014-01-18db/upnp/Discovery: don't copy the response bodyMax Kellermann1-2/+1
Bloat.
2014-01-18db/upnp: don't hold mutex while downloading device descriptionMax Kellermann1-1/+1
Must not perform blocking I/O while holding a mutex.
2014-01-18db/upnp: don't use WorkQueue for _ADVERTISEMENT_BYEBYEMax Kellermann2-36/+30
Remove the ContentDirectoryDescriptor right away. Reduces bloat.
2014-01-18db/upnp: include cleanupMax Kellermann1-1/+0
2014-01-18db/upnp: don't use LazyDatabaseMax Kellermann1-2/+1
Now that MPD forks early, this workaround is obsolete.
2014-01-18Daemon: fork as early as possibleMax Kellermann4-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.
2014-01-18PidFile: open in write-only modeMax Kellermann1-1/+1
2014-01-18Daemon: move code to class PidFileMax Kellermann2-19/+71
2014-01-18Daemon: don't use daemon(), always require fork()Max Kellermann1-11/+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().
2014-01-18Main: make variables more localMax Kellermann1-13/+9
2014-01-18Main: eliminate variable "success"Max Kellermann1-10/+7
2014-01-17pcm/Volume: make DSD a no-opMax Kellermann1-2/+8
Kludge to work around DSD playback failure because the ReplayGainFilterPlugin is always in the filter chain.
2014-01-17Mapper: add function map_song_detach()Max Kellermann7-5/+27
Make the DetachedSong(Song) conversion constructor private. Everybody should use map_song_detach() which will take over more responsibilities soon.
2014-01-17QueueSave: use DatabaseDetachSong()Max Kellermann1-11/+3
2014-01-17DatabaseSong: new library merging duplicate codeMax Kellermann5-35/+90
2014-01-17db/upnp/Discovery: move callbacks and data structures into classMax Kellermann3-72/+80
Eliminate global variables.
2014-01-17db/upnp: split cluCallback()Max Kellermann1-15/+29
2014-01-17db/upnp: add local reference variablesMax Kellermann1-11/+16
Prepare to refactor some code.
2014-01-16db/upnp: move the LibUPnP instance to class UpnpDatabaseMax Kellermann7-77/+49
Delete the object when closing the database.
2014-01-16db/upnp: remove useless static MutexMax Kellermann1-6/+0
2014-01-16db/upnp: move the UPnPDeviceDirectory instance to class UpnpDatabaseMax Kellermann3-19/+8
Delete the object when closing the database.
2014-01-16db/upnp: don't initialize attributes to nullptrMax Kellermann1-4/+0
Not necessary, these are not used.