Philips TV-Remote unter Linux
=============================
:author: Benjamin Franzke
:lang: de
:imagesdir: image
// a2x: --dblatex-opts="-p thesis.xsl -s thesis.sty -b xetex"

== Begriffe

- DirectFB
- DirectFB Voodoo

== Ablauf der Portierung

Im ersten Schritt ist eine eins-zu-eins Umsetzung der Anzeige einen
Linux-Screens auf einen Fernseher zu implementieren.
Im zweiten sollten von einem Rechner mehrere Streams an JointSpace-Fernseher
gesandt werden.  In diesem Fall 3 Clients.

== Linux Betriebssystem
Arch Linux

== Verbindungsaufbau

Die DirectFB-Voodoo Platform nutzt als Standardmethode zum Verbindungsaufbau
einen Broadcast Request, um verfügbare Anzeigegeräte zu finden.
Dies ist für den Einsatz im Heimnetzwerk gedacht, bei dem der
Verbindungsaufwand möglich gering gehalten werden soll.
Sind meherere der Fernseher in einem Netzwerk, so ist nicht eindeutig
definiert, welcher zuerst auf den Broadcast antworten, und dadurch für die
Verbindung ausgewählt werden wird. 
Deshalb ist direkter Unicast nötig.

Die Bibliothek bietet kein direktes API, um die Ziel-Addresse zu verabeiten.
Die Initialisierungsmethode +DirectFB::Init()+ erwartet einen Argumentzähler
und -vektor. Dieser Vektor bezieht sich auf die Kommandozeilen Argumente,
im folgenden beispielhaft dargestellt:

[source,c]
----
#include <directfb.h>
int
main(int argc, char *argv[])
{
	DirectFB::Init(&argc, &argv);
	return 0;
}
----


== Verbindungsabbruch
Schlägt die Verbindung fehl, so wird in der Bibliothek DirectFB dies nicht an
die Anwendung signalisiert.
Intern wird der Rückgabewert von +send(2)+ nicht auf einen Verbindungsabbruch
geprüft.

== Test

Getestet wurde jeweils mit der Infoscreen-Website des Fachbereichs EuI:
http://et.hs-wismar.de/~infosc/index.php?file=config16n

== HowTo

=== Linux-Installation

Arch installieren?

=== DirectFB

Neuste Version von:
http://sourceforge.net/projects/jointspace/files/remote_applications_SDK/
In der Arbeit verwendet: DirectFB141_source_1.3.1beta5.7z

[source,c]
----
7z x DirectFB141_source_1.3.1beta5.7z
----


[source,sh]
----
make
----

=== Pluggit

[source,sh]
----
DIRECTFB_VOODOO= make
----

=== Browser

Webkit/Firefox?

// vim: set syntax=asciidoc tw=78 filetype=asciidoc:
// spell spelllang=de,en:
