From f823e11ec9822ba873143b2c2f6ece82b32d6b12 Mon Sep 17 00:00:00 2001
From: Benjamin Franzke <benjaminfranzke@googlemail.com>
Date: Wed, 16 Jan 2013 03:00:40 +0100
Subject: doc: Add current state and update read-framebuffer

---
 projekt_doku.asciidoc | 47 ++++++++++++++++++++++++++++++++++++++++-------
 1 file changed, 40 insertions(+), 7 deletions(-)

(limited to 'projekt_doku.asciidoc')

diff --git a/projekt_doku.asciidoc b/projekt_doku.asciidoc
index 7106d44..63f5576 100644
--- a/projekt_doku.asciidoc
+++ b/projekt_doku.asciidoc
@@ -9,7 +9,7 @@ Philips TV-Remote unter Linux
 == Aufgabe
 Ziel dieses Forschungsprojektes ist die Programmtechnische Umsetzung
 der Nutzung der Philips TV-Firmware als Netzwerkbasierter-Infoscreen.
-Als Platform ist dabei GNU/Linux zu verwenden und Lösungsmögliuchkeiten für
+Als Platform ist dabei GNU/Linux zu verwenden und Lösungsmöglichkeiten für
 die Probleme der aktuellen Konfiguration mit dem Windows Client Pluggit
 sind zu evaluieren.
 
@@ -47,6 +47,28 @@ Das API zur Steuerung der Fernseher basiert auf einem REST-full
 HTTP-Protokoll.
 Für die Bildübertragung wird 'DirectFB Voodoo' eingesetzt.
 
+== Ist-Zustand
+
+Verwendet werden Fernseherer der 7000er Serie von Philips, auf die eine,
+direkt vom Hersteller erweiterte Firmware geladen wird. Diese beinhaltet die
+'JointSpace' erweiterung.
+
+Als Datenquelle dient eine Windows-Installation in einer virtuellen Maschinen,
+welche das ebenfalls vom 'JointSpace' bereitgestellte Programm 'Pluggit'
+verwendet.
+
+Die einzelnen Fernseher sind alle in eigenen Netzen, da zum Verbindungaufbau
+ein Netzwerk-Broadcast genutzt wird und sich so die Fernseher gegenseitig
+stören würden, wenn in einem Netzwerk enthalten.
+
+Der Firefox-Browser wird für die Darstellung im Vollbildmodus eingesetzt, da
+er unter Windows einer der stabilsten und ausgetestetsten, standardkonformer
+Browser ist.
+
+Die Fernseher bieten eine native Auflösung von 1920x1080 Pixeln,
+die Remote-Anzeige funktioniert aber nur bis zur Auflösung von 1280x720
+Pixeln.
+
 == Problemlösung & Implementation
 
 Im ersten Schritt ist eine eins-zu-eins Umsetzung der Anzeige einen
@@ -133,7 +155,18 @@ einen Fehler, dass ein invalides Argument übergeben wurde.
 
 === Framebuffer Auslesen
 Das X11-Protokoll bietet die Möglichkeit den angezeigten Framebuffer
-über die Funtkion +X_GetImage+ auszulesen.
+über die Funtkion +XGetSubImage(3)+ auszulesen.
+
+Darüber hinaus gibt es eine Anbindung an +shmget(2)+, sodass Unix
+Shared-Memory verwendet werden kann.
+Dies bietet den Vorteil, dass die Framebuffer-Daten nicht über den
+X11-Protokoll-Socket übertragen werden müssen, sondern direkt gelesen werden
+können.
+Es wird ein X11-Pixmap erzeugt, welchem ein auf XImage auf Shared-Memory Basis zu
+grunde liegt.
+Zum Auslesen wird nun +XCopyArea(3)+ mit dem X11-Pixmap als Argument
+aufgerufen. Der X-Server schreibt in der Folge den angefragten Bildinhalt
+in den Shared-Memory, 
 
 
 
@@ -181,12 +214,12 @@ mit dem Prinzip erstellt worden, in andere Programme über das X11-XEmbed
 Protokoll eingebettet zu werden, z.b. um mehrere Instanzen in einem
 Tab-Manager zu embedden.
 
-Dies ermöglicht per Design zwei Punkte:
- - Die Window-ID wird auf stdout ausgegeben (wird als Parameter an Pluggit
-   übergeben)
- - Keine Bedienelemente vorhanden, denn der Browser wird über X11-Properties
-   gesteuert -- das macht ihn scriptable.
+Dies ermöglicht per Design zwei Vorteile:
 
+ - Die Window-ID wird auf +stdout+ ausgegeben. +
+   (Kann demzufolge als Parameter an Pluggit übergeben werden.)
+ - Keine Bedienelemente vorhanden, denn der Browser wird über X11-Properties
+   gesteuert -- das erlaubt Scripting.
 
 == Test
 
-- 
cgit 

