From e0e3801ef273ba3e35a87a57e97967be39caae74 Mon Sep 17 00:00:00 2001 From: Felix Domke Date: Tue, 19 Jun 2007 23:38:42 +0000 Subject: [PATCH] make VideoWindow usable for main decoder too --- lib/gui/evideo.cpp | 31 ++++++++++++++++++++-------- lib/gui/evideo.h | 8 ++++--- lib/python/Components/VideoWindow.py | 6 +++++- 3 files changed, 32 insertions(+), 13 deletions(-) diff --git a/lib/gui/evideo.cpp b/lib/gui/evideo.cpp index 02d8a529..666fe324 100644 --- a/lib/gui/evideo.cpp +++ b/lib/gui/evideo.cpp @@ -2,6 +2,7 @@ eVideoWidget::eVideoWidget(eWidget *parent): eWidget(parent) { + m_decoder = 1; parent->setPositionNotifyChild(1); } @@ -18,17 +19,24 @@ int eVideoWidget::event(int event, void *data, void *data2) return eWidget::event(event, data, data2); } +eVideoWidget::~eVideoWidget() +{ + updatePosition(1); +} -void eVideoWidget::updatePosition() +void eVideoWidget::updatePosition(int disable) { - ePoint abspos = getAbsolutePosition(); - eDebug("position is %d %d -> %d %d", abspos.x(), abspos.y(), size().width(), size().height()); - + eRect pos(0, 0, 0, 0); + if (!disable) + pos = eRect(getAbsolutePosition(), size()); + + eDebug("position is %d %d -> %d %d", pos.left(), pos.top(), pos.width(), pos.height()); + for (int i=0; i<4; ++i) { char *targets[]={"left", "top", "width", "height"}; char filename[128]; - snprintf(filename, 128, "/proc/stb/vmpeg/%d/dst_%s", 1, targets[i]); + snprintf(filename, 128, "/proc/stb/vmpeg/%d/dst_%s", m_decoder, targets[i]); FILE *f = fopen(filename, "w"); if (!f) { @@ -38,13 +46,18 @@ void eVideoWidget::updatePosition() int val = 0; switch (i) { - case 0: val = abspos.x(); break; - case 1: val = abspos.y(); break; - case 2: val = size().width(); break; - case 3: val = size().height(); break; + case 0: val = pos.left(); break; + case 1: val = pos.top(); break; + case 2: val = pos.width(); break; + case 3: val = pos.height(); break; } fprintf(f, "%08x\n", val); fclose(f); eDebug("%s %08x", filename, val); } } + +void eVideoWidget::setDecoder(int decoder) +{ + m_decoder = decoder; +} diff --git a/lib/gui/evideo.h b/lib/gui/evideo.h index 61f3811d..f31ba661 100644 --- a/lib/gui/evideo.h +++ b/lib/gui/evideo.h @@ -7,11 +7,13 @@ class eVideoWidget: public eWidget { public: eVideoWidget(eWidget *parent); - + ~eVideoWidget(); + void setDecoder(int target); protected: int event(int event, void *data=0, void *data2=0); - - void updatePosition(); + void updatePosition(int disable = 0); + + int m_decoder; }; #endif diff --git a/lib/python/Components/VideoWindow.py b/lib/python/Components/VideoWindow.py index 88cd33f9..31190d95 100644 --- a/lib/python/Components/VideoWindow.py +++ b/lib/python/Components/VideoWindow.py @@ -2,7 +2,11 @@ from GUIComponent import GUIComponent from enigma import eVideoWidget class VideoWindow(GUIComponent): - def __init__(self): + def __init__(self, decoder = 1): GUIComponent.__init__(self) + self.decoder = decoder GUI_WIDGET = eVideoWidget + + def postWidgetCreate(self, instance): + instance.setDecoder(self.decoder) -- 2.30.2