make VideoWindow usable for main decoder too
authorFelix Domke <tmbinc@elitedvb.net>
Tue, 19 Jun 2007 23:38:42 +0000 (23:38 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Tue, 19 Jun 2007 23:38:42 +0000 (23:38 +0000)
lib/gui/evideo.cpp
lib/gui/evideo.h
lib/python/Components/VideoWindow.py

index 02d8a52..666fe32 100644 (file)
@@ -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;
+}
index 61f3811..f31ba66 100644 (file)
@@ -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
index 88cd33f..31190d9 100644 (file)
@@ -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)