summaryrefslogtreecommitdiff
path: root/timerconflict.h
diff options
context:
space:
mode:
Diffstat (limited to 'timerconflict.h')
-rw-r--r--timerconflict.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/timerconflict.h b/timerconflict.h
new file mode 100644
index 0000000..e6c2744
--- /dev/null
+++ b/timerconflict.h
@@ -0,0 +1,67 @@
+#ifndef VDR_LIVE_TIMERCONFLICT_H
+#define VDR_LIVE_TIMERCONFLICT_H
+
+#include <list>
+
+namespace vdrlive {
+
+// 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(); }
+
+ bool CheckAdvised();
+private:
+ ConflictList m_conflicts;
+};
+
+}
+
+ // namespace vdrlive
+
+#endif // VDR_LIVE_TIMERCONFLICT_H
+