summaryrefslogtreecommitdiff
path: root/epgsearch.h
diff options
context:
space:
mode:
Diffstat (limited to 'epgsearch.h')
-rw-r--r--epgsearch.h53
1 files changed, 53 insertions, 0 deletions
diff --git a/epgsearch.h b/epgsearch.h
index b63f109..39d3837 100644
--- a/epgsearch.h
+++ b/epgsearch.h
@@ -7,6 +7,7 @@
#include <string>
#include <vdr/channels.h>
#include <vdr/epg.h>
+#include "tools.h"
namespace vdrlive {
@@ -410,6 +411,58 @@ public:
static bool WriteValue(const std::string& entry, const std::string& value);
};
+// classes for timer conflict interface
+
+// conflicting timer
+class TimerInConflict
+{
+public:
+ int timerIndex; // it's index in VDR
+ int percentage; // percentage of recording
+ std::list<int> concurrentTimerIndices; // concurrent timer indices
+
+ TimerInConflict(int TimerIndex=-1, int Percentage=0) : timerIndex(TimerIndex), percentage(Percentage) {}
+};
+
+class TimerConflict;
+
+bool operator<( TimerConflict const& left, TimerConflict const& right );
+
+// one timer conflict time
+class TimerConflict
+{
+ time_t conflictTime; // time of conflict
+ std::list< TimerInConflict > conflictingTimers; // conflicting timers at this time
+public:
+ friend bool operator<( TimerConflict const& left, TimerConflict const& right );
+
+ TimerConflict( std::string const& data );
+ TimerConflict();
+ void Init();
+
+ time_t ConflictTime() { return conflictTime; }
+ const std::list< TimerInConflict >& ConflictingTimers() { return conflictingTimers; }
+};
+
+class TimerConflicts
+{
+public:
+ typedef std::list< TimerConflict > ConflictList;
+ typedef ConflictList::size_type size_type;
+ typedef ConflictList::iterator iterator;
+ typedef ConflictList::const_iterator const_iterator;
+
+ TimerConflicts();
+
+ size_type size() const { return m_conflicts.size(); }
+ iterator begin() { return m_conflicts.begin(); }
+ const_iterator begin() const { return m_conflicts.begin(); }
+ iterator end() { return m_conflicts.end(); }
+ const_iterator end() const { return m_conflicts.end(); }
+private:
+ ConflictList m_conflicts;
+};
+
}
// namespace vdrlive