add video widget
authorFelix Domke <tmbinc@elitedvb.net>
Sat, 8 Apr 2006 00:58:12 +0000 (00:58 +0000)
committerFelix Domke <tmbinc@elitedvb.net>
Sat, 8 Apr 2006 00:58:12 +0000 (00:58 +0000)
lib/gui/evideo.cpp [new file with mode: 0644]
lib/gui/evideo.h [new file with mode: 0644]

diff --git a/lib/gui/evideo.cpp b/lib/gui/evideo.cpp
new file mode 100644 (file)
index 0000000..8151e80
--- /dev/null
@@ -0,0 +1,48 @@
+#include <lib/gui/evideo.h>
+
+eVideoWidget::eVideoWidget(eWidget *parent): eWidget(parent)
+{
+}
+
+int eVideoWidget::event(int event, void *data, void *data2)
+{
+       switch (event)
+       {
+       case evtChangedPosition:
+       case evtChangedSize:
+               eDebug("position is now ...");
+               updatePosition();
+       }
+       return eWidget::event(event, data, data2);
+}
+
+
+void eVideoWidget::updatePosition()
+{
+       ePoint abspos = getAbsolutePosition();
+       eDebug("position is %d %d -> %d %d", abspos.x(), abspos.y(), size().width(), size().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]);
+               FILE *f = fopen(filename, "w");
+               if (!f)
+               {
+                       eDebug("failed to open %s - %m", filename);
+                       break;
+               }
+               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;
+               }
+               fprintf(f, "%08x\n", val);
+               fclose(f);
+               eDebug("%s %08x", filename, val);
+       }
+}
diff --git a/lib/gui/evideo.h b/lib/gui/evideo.h
new file mode 100644 (file)
index 0000000..61f3811
--- /dev/null
@@ -0,0 +1,17 @@
+#ifndef __lib_gui_evideo_h
+#define __lib_gui_evideo_h
+
+#include <lib/gui/ewidget.h>
+
+class eVideoWidget: public eWidget
+{
+public:
+       eVideoWidget(eWidget *parent);
+       
+protected:
+       int event(int event, void *data=0, void *data2=0);
+       
+       void updatePosition();
+};
+
+#endif