summaryrefslogtreecommitdiff
path: root/plugins/provider
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/provider')
-rw-r--r--plugins/provider/recProvider/recProvider.cpp24
1 files changed, 21 insertions, 3 deletions
diff --git a/plugins/provider/recProvider/recProvider.cpp b/plugins/provider/recProvider/recProvider.cpp
index 22fc5eb..31d46e4 100644
--- a/plugins/provider/recProvider/recProvider.cpp
+++ b/plugins/provider/recProvider/recProvider.cpp
@@ -258,12 +258,30 @@ public:
}
virtual void Action(){
+ int state = 0;
+ time_t now;
+ bool update = false;
while(Running()){
- int state = 0;
- if(Recordings.NeedsUpdate() || Recordings.StateChanged(state)){
+ update = false;
+
+ if(Recordings.NeedsUpdate()){
+ update = true;
+ } else if(Recordings.StateChanged(state)){
+ now = time(NULL);
+ for(cRecording* rec = Recordings.First(); rec; rec = Recordings.Next(rec)){
+ struct stat st;
+ if (lstat(rec->FileName(), &st) == 0) {
+ if(now < st.st_mtime){
+ update = true;
+ }
+ }
+ }
+ }
+
+ if(update){
OnContainerUpdate(GetRootContainer(), GetContainerUpdateId(GetRootContainer()));
}
- sleep(100);
+ sleep(10);
}
}