summaryrefslogtreecommitdiff
path: root/timerconflict.h
diff options
context:
space:
mode:
authorChristian Wieninger <cwieninger (at) gmx (dot) de>2008-02-21 19:38:34 +0100
committerChristian Wieninger <cwieninger (at) gmx (dot) de>2008-02-21 19:38:34 +0100
commit5ce71e1affd32470b2d8b6c46f18a1f9751289af (patch)
tree29ea7bdb8b086cd7ae3b4640ba27568494150364 /timerconflict.h
parentea408d448aa65350c686a75d445450979fc8cd9e (diff)
downloadvdr-plugin-live-5ce71e1affd32470b2d8b6c46f18a1f9751289af.tar.gz
vdr-plugin-live-5ce71e1affd32470b2d8b6c46f18a1f9751289af.tar.bz2
timer conflict implementation moved to timerconflict.cpp/h
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
+