aboutsummaryrefslogtreecommitdiffstats
path: root/src/db/plugins/UpnpDatabasePlugin.cxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-01-26db/upnp: remove sleep(2) callMax Kellermann1-3/+0
This call was unnecessary. It is a bad idea anyway to block the MPD process for some arbitrary amount of time.
2014-01-26upnp: initialize the client handle only onceMax Kellermann1-16/+10
Eliminate class LibUPnP and move the code to ClientInit.cxx. Its initialization function can be called multiple times, but UpnpRegisterClient() is called at most once.
2014-01-26upnp/discovery: use a plain UpnpClient_Handle instead of class LibUPnPMax Kellermann1-1/+1
2014-01-26db/upnp: move generic code to lib/upnp/Max Kellermann1-5/+5
2014-01-26db/upnp: rename variablesMax Kellermann1-21/+21
2014-01-24Database*: move to db/Max Kellermann1-5/+5
2014-01-24Config*: move to config/Max Kellermann1-1/+1
2014-01-23db/upnp: strict vpath checks for the "root" directoryMax Kellermann1-0/+20
2014-01-23db/upnp: move code to VisitObject()Max Kellermann1-22/+33
2014-01-23db/upnp: merge two PathTraitsUTF8::Build() callsMax Kellermann1-16/+4
2014-01-23db/upnp: move code to VisitItem()Max Kellermann1-61/+56
2014-01-23db/upnp: fix subdirectory paths in "listallinfo"Max Kellermann1-3/+3
Add missing server name prefix.
2014-01-23base_uriMax Kellermann1-0/+4
2014-01-23db/upnp: pass char* to visitSong()Max Kellermann1-6/+6
Don't use std::string, reduce bloat.
2014-01-22db/upnp: call VisitDirectory on servers, even in recursive modeMax Kellermann1-14/+10
2014-01-22db/upnp: make several methods "const"Max Kellermann1-12/+12
2014-01-22db/upnp: inline Configure()Max Kellermann1-1/+1
2014-01-22db/upnp: don't duplicate song data for VisitSongMax Kellermann1-2/+9
Not necessary because we control the LightSong's life cycle.
2014-01-22db/proxy: merge redundant string::push_back() callsMax Kellermann1-4/+2
2014-01-22db/upnp: use PathTraitsUTF8::Build()Max Kellermann1-5/+14
2014-01-22LightDirectory: new struct replacing Directory in the DB APIMax Kellermann1-9/+4
2014-01-22db/upnp: append characters instead of single-character stringsMax Kellermann1-2/+2
2014-01-22db/upnp: use string::push_back() instead of string::append()Max Kellermann1-5/+5
2014-01-22db/upnp: use std::list instead of std::set for SearchCapabilitiesMax Kellermann1-1/+1
Reduce bloat. We never used the set lookup.
2014-01-21db/upnp: merge duplicate branches in Namei()Max Kellermann1-25/+10
2014-01-21db/upnp: simplify Namei()Max Kellermann1-7/+6
2014-01-21db/upnp: use std::list instead of std::vectorMax Kellermann1-6/+7
Reduce overhead.
2014-01-21db/upnp: use iterator in Namei()Max Kellermann1-4/+5
2014-01-21db/upnp: move "objid" declaration downMax Kellermann1-2/+2
Don't allocate the object when it's not needed.
2014-01-21db/upnp: eliminate redundant Namei() parameter "oobjid"Max Kellermann1-12/+7
The caller should better obtain the object id from the returned UPnPDirObject instance.
2014-01-21db/upnp: remove redundant objid.empty() check from VisitServer()Max Kellermann1-4/+0
If Namei() succeeds, the object id is guaranteed to be set.
2014-01-21db/upnp: use std::move() to extract server nameMax Kellermann1-1/+1
Reduce runtime overhead.
2014-01-21db/upnp: use vector::front() instead of [0]Max Kellermann1-5/+5
2014-01-21db/upnp: don't construct redundant empty vector<string> in Visit()Max Kellermann1-1/+1
We know already that vpath is empty, let's use this instance.
2014-01-21db/upnp: simplify GetSong()Max Kellermann1-20/+18
2014-01-21LightSong: add attribute "real_uri"Max Kellermann1-24/+18
The UPnP database plugin can now show relative song URIs for remote songs.
2014-01-21db/upnp: fix empty song URIMax Kellermann1-3/+6
Fall back to UPnPDirObject::url if there is no override.
2014-01-19LightSong: new class to be used by DatabasePlugin callbacksMax Kellermann1-31/+40
Detach the Song class completely from the public API, only to be used by SimpleDatabase and the update thread.
2014-01-19Song: embed the Tag object statically into class SongMax Kellermann1-1/+1
Reduces overhead because we need to manage only one memory allocation. According to valgrind/massif, we save 7%.
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: use getServer() in Visit()Max Kellermann1-17/+9
Reduce bloat.
2014-01-18db/upnp/Discovery: eliminate Error attributeMax Kellermann1-21/+4
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: 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-16db/upnp: move the LibUPnP instance to class UpnpDatabaseMax Kellermann1-9/+17
Delete the object when closing the database.
2014-01-16db/upnp: move the UPnPDeviceDirectory instance to class UpnpDatabaseMax Kellermann1-4/+6
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.
2014-01-16db/upnp: remove redundant m_root nullptr checksMax Kellermann1-5/+1