summaryrefslogtreecommitdiff
path: root/gridelement.c
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2015-03-12 17:22:16 +0100
committerlouis <louis.braun@gmx.de>2015-03-12 17:22:16 +0100
commit3cc8e78e1bf00e16b49520ac416b74b5fd73c906 (patch)
tree4425c4eb4b9833d927aae2f65d0f3a99d3792f83 /gridelement.c
downloadvdr-plugin-tvguideng-3cc8e78e1bf00e16b49520ac416b74b5fd73c906.tar.gz
vdr-plugin-tvguideng-3cc8e78e1bf00e16b49520ac416b74b5fd73c906.tar.bz2
Version 0.0.10.0.1
Diffstat (limited to 'gridelement.c')
-rw-r--r--gridelement.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/gridelement.c b/gridelement.c
new file mode 100644
index 0000000..fe36128
--- /dev/null
+++ b/gridelement.c
@@ -0,0 +1,56 @@
+#include "gridelement.h"
+#include "channelepg.h"
+
+long cGridElement::idCounter;
+
+cGridElement::cGridElement(cChannelEpg *owner) {
+ id = idCounter;
+ idCounter++;
+ init = true;
+ active = false;
+ hasTimer = false;
+ hasSwitchTimer = false;
+ this->owner = owner;
+}
+
+cGridElement::~cGridElement(void) {
+}
+
+bool cGridElement::Match(time_t t) {
+ if ((StartTime() < t) && (EndTime() > t))
+ return true;
+ else
+ return false;
+}
+
+bool cGridElement::IsFirst(void) {
+ return owner->IsFirst(this);
+}
+
+int cGridElement::CalcOverlap(cGridElement *neighbor) {
+ int overlap = 0;
+ if (Intersects(neighbor)) {
+ if ((StartTime() <= neighbor->StartTime()) && (EndTime() <= neighbor->EndTime())) {
+ overlap = EndTime() - neighbor->StartTime();
+ } else if ((StartTime() >= neighbor->StartTime()) && (EndTime() >= neighbor->EndTime())) {
+ overlap = neighbor->EndTime() - StartTime();
+ } else if ((StartTime() >= neighbor->StartTime()) && (EndTime() <= neighbor->EndTime())) {
+ overlap = Duration();
+ } else if ((StartTime() <= neighbor->StartTime()) && (EndTime() >= neighbor->EndTime())) {
+ overlap = neighbor->EndTime() - neighbor->StartTime();
+ }
+ }
+ return overlap;
+}
+
+bool cGridElement::Intersects(cGridElement *neighbor) {
+ return ! ( (neighbor->EndTime() <= StartTime()) || (neighbor->StartTime() >= EndTime()) );
+}
+
+const cChannel *cGridElement::Channel(void) {
+ return owner->Channel();
+}
+
+cChannelEpg *cGridElement::Owner(void) {
+ return owner;
+}