diff options
author | methodus <methodus@web.de> | 2013-04-27 09:42:33 +0200 |
---|---|---|
committer | methodus <methodus@web.de> | 2013-04-27 09:42:33 +0200 |
commit | e0813ab8cfdee367ab6138c0227205274c76ffe1 (patch) | |
tree | a7b247527185aa7ca324aa970001e59bc0c4d430 /media | |
parent | bcc8e557adb68576c44fd07ce19a9d3d96786af3 (diff) | |
download | vdr-plugin-upnp-e0813ab8cfdee367ab6138c0227205274c76ffe1.tar.gz vdr-plugin-upnp-e0813ab8cfdee367ab6138c0227205274c76ffe1.tar.bz2 |
Possible fix for high CPU load when refreshing EPG
Diffstat (limited to 'media')
-rw-r--r-- | media/mediaManager.cpp | 19 | ||||
-rw-r--r-- | media/pluginManager.cpp | 2 |
2 files changed, 11 insertions, 10 deletions
diff --git a/media/mediaManager.cpp b/media/mediaManager.cpp index 199a942..c1b84a3 100644 --- a/media/mediaManager.cpp +++ b/media/mediaManager.cpp @@ -133,7 +133,7 @@ IdList cMediaManager::GetContainerUpdateIDs(bool unevented){ return list; } -void cMediaManager::OnContainerUpdate(const string& uri, long updateID, const string& target){ +void cMediaManager::OnContainerUpdate(const string& uri, long updateID, const StringList& target){ systemUpdateID = time(NULL); string objectID = tools::GenerateUUIDFromURL(uri); @@ -144,16 +144,17 @@ void cMediaManager::OnContainerUpdate(const string& uri, long updateID, const st // does not exist. Therefore, we cannot scan this directory successfully. if(!UpdateContainerUpdateId(objectID, updateID)) return; - stringstream ss; - - ss << uri; - - if(!target.empty()){ - ss << target; + if(target.empty()){ + scanTargets.push_back(uri); + } else { + stringstream ss; + for(StringList::const_iterator it = target.begin(); it != target.end(); ++it){ + ss.str(); + ss << uri << *it; + scanTargets.push_back(ss.str()); + } } - scanTargets.push_back(ss.str()); - // Start scanning for changed files. Start(); } diff --git a/media/pluginManager.cpp b/media/pluginManager.cpp index 32a2436..a17e9c9 100644 --- a/media/pluginManager.cpp +++ b/media/pluginManager.cpp @@ -310,7 +310,7 @@ bool cUPnPResourceProvider::Seek(size_t offset, int origin){ void cUPnPResourceProvider::Close(){ } -void cUPnPResourceProvider::OnContainerUpdate(const string& uri, long int cUID, const string& target){ +void cUPnPResourceProvider::OnContainerUpdate(const string& uri, long int cUID, const StringList& target){ cMediaServer::GetInstance()->GetManager().OnContainerUpdate(uri, cUID, target); } |