aboutsummaryrefslogtreecommitdiffstats
path: root/src/db (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-01-22db/upnp: check offset<total at end of loopMax Kellermann1-16/+7
2014-01-22db/upnp: break when zero objects have been returnedMax Kellermann1-0/+3
2014-01-22db/upnp: free responses manuallyMax Kellermann1-21/+6
2014-01-22db/upnp: break when count==0Max Kellermann1-6/+3
Make this non-fatal. Just stop reading more objects.
2014-01-22db/upnp: use ParseUnsigned() instead of atoi()Max Kellermann1-16/+10
2014-01-22db/upnp: pass unsigned integers to readDirSlice()Max Kellermann2-17/+17
2014-01-22db/upnp: inline ContentDirectoryService::readDirSlice()Max Kellermann1-1/+1
2014-01-22db/upnp: remove special case for "*"Max Kellermann1-3/+1
Passing this to csvToStrings() will do the same.
2014-01-22db/upnp: obtain char* from ixmlwrap::getFirstElementValue()Max Kellermann1-9/+13
Fixes crash when there's no SearchCaps element.
2014-01-22db/upnp/Util: pass char* to csvToStrings()Max Kellermann3-8/+12
2014-01-22db/upnp: require an empty input capability setMax Kellermann1-1/+2
2014-01-22db/upnp/Util: handle absolute URI paths properly in caturl()Max Kellermann1-7/+20
Fixes problems with some UPnP servers.
2014-01-22db/upnp/Util: use string::back(), string::front()Max Kellermann1-5/+5
2014-01-22db/upnp/Device: clear the "value" pointer on unknown elementMax Kellermann1-0/+2
Avoid appending to an obsolete string object.
2014-01-22db/upnp/Device: replace std::vector with a std::string pointerMax Kellermann3-47/+50
2014-01-22db/upnp/Device: remove unused UPnPService attributesMax Kellermann2-16/+0
2014-01-22db/upnp/Directory: "emplace" items into the vectorMax Kellermann1-1/+1
2014-01-22db/upnp/Device: emplace/move the UPnPService into the vectorMax Kellermann1-1/+1
Reduce overhead.
2014-01-22db/upnp/Util: "emplace" items into the listMax Kellermann1-3/+3
Reduce overhead.
2014-01-22db/upnp/Directory: replace std::vector with a simple enumMax Kellermann1-20/+34
Reduce bloat.
2014-01-22db/upnp/Directory: join all CDATA nodes for tag valuesMax Kellermann1-11/+43
Expat can call CharacterData() multiple times if the CDATA contains entity references. We need to collect all of them in one large string.
2014-01-22db/upnp/Directory: make "m_dir" privateMax Kellermann1-1/+2
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 Kellermann3-10/+11
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 use stringToTokens() in ParseDuration()Max Kellermann1-4/+20
Reduce bloat.
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 Kellermann6-110/+142
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-19Song: embed the Tag object statically into class SongMax Kellermann2-2/+2
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/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