Graphtft-plugin

Aus VDR Wiki
Wechseln zu: Navigation, Suche

Inhaltsverzeichnis

Beschreibung

Autor: Lars Tegeler, Jörg Wendel

Plugin welches über ein Framebuffer-Device, eine zweite Full-featured-DVB-Karte oder einen X-Server die VDR Menüs ausgibt. Über den X-Server respektive das bei dem Plugin enthaltene X-Frontend kann der VDR mittels Tastatur und Maus bedient werden.

Status der kommenden Version 0.3.0

Ab der nächsten Version (0.3.0) sind, neben einer Reihe von Fehlerbehebungen und anderen Neuerungen, auch die Funktionen des touchTFT Plugins fester Bestandteil von graphTFT. Dies ermöglicht eine deutlich bessere Zusammenarbeit der Funktionen, als es bisher über Schnittstelle möglich war. Auch die annährend gleichen Setup-Parameter müssen nun nicht mehr doppelt gepflegt werden. graphTFT verfügt über eine optimiertere Kalibrierung, welche neben der selbstständigen Berechnung von Offset und Umrechnungsfaktoren z.B. auch vertauschte X/Y Koordinaten selbsttändig erkennt. Ferner ist eine Testfunktion zum Koordinatencheck enthalten. Das Wiki zum graphTFT-Plugin wird gerade aktualisiert.

Für das neue graphTFT Plugin sind auch wieder neue Themes notwendig.

Enthaltenes Feature: Einblendbare Mausbuttons. Die Maus-Buttons werden nicht wie bisher ständig sichtbar sein und somit unnötig Anzeigeplatz belegen. Statt dessen kann man über einen Button ein Buttonmenü aufrufen, welches sich - ähnlich wie die Lautstärkeregelungsanzeige, über die Menü- oder EPG Informationen legt. Die Buttons können nach Gebrauch manuell ausgeblendet werden oder verschwinden nach einer einstellbaren Zeit wieder automatisch. Die einblendbaren Mausbuttons werden in den Themes eingerichtet. Sie sind also ein KANN - kein MUSS. So kann sich jeder Theme-Autor nach seinem Geschmack frei entfalten. Der Umfang der Buttons entspricht etwa denen der touchTFT-DeepBlue Version.

Soweit schon mal ein "kurzer" Einblick.

Version 0.3.0 ist schon sehr weit fortgeschritten. Wann es fertig ist, kann ich aber noch nicht sagen. Nur soviel: Lange wird es nicht mehr dauern. Aber bitte nicht nachfragen. Behaltet mal das Wiki im Auge...

Bilder

Plugin >= 0.3.0

Theme "Alien vs. Predator" Touchscreen-Kalibrierung
Theme "Alien vs. Predator" Maustasten (z.B. für Touchscreen)
Theme "DeepBlue" Touchscreen-Kalibrierung
Theme "DeepBlue" Maustasten (z.B. für Touchscreen)

Plugin >= 0.2.0

Theme "Alien vs. Predator" Standard-Ansicht
Theme "Alien vs. Predator" Auswahlmenü
Theme "Alien vs. Predator" Kanalauswahl
Theme "Alien vs. Predator" Was läuft jetzt
Theme "Alien vs. Predator" EPG Programmübersicht
Theme "Alien vs. Predator" Wiedergabe Aufnahme
Theme "Alien vs. Predator" Sysinfo Ansicht
Theme "Alien vs. Predator" Clock Ansicht
Theme "Alien vs. Predator" music Plugin
Theme "Alien vs. Predator" music Plugin - Morone-Skin

Plugin >= 0.0.14

Theme "deepblue"
Theme "deepblue"
Theme "deepblue"
Theme "deepblue"
Theme "deepblue"
Theme "deepblue"
Theme "deepblue"
Theme "deepblue"
Theme "Alien vs. Predator"
Theme "Alien vs. Predator"
Theme "Alien vs. Predator"
Theme "Alien vs. Predator"
Theme "Alien vs. Predator"
Theme "Alien vs. Predator"
Theme "Alien vs. Predator"
Theme "Alien vs. Predator"
Theme "Alien vs. Predator"
Theme "Alien vs. Predator" - Morone-Skin
Theme "poetter"
Theme "poetter"
Theme "poetter"
Theme "poetter"
Theme "poetter"
Theme "poetter"

Plugin = 0.0.8

Einstellungen
Theme "standard"
Theme "brst"
Theme "motz"
Theme "enigma"
Theme "deepblue"
Theme "bluepenguin"
VMware + Debian + VDR + xine + graphtft im x fenster
7", 800x480 Pixel
PSOne


Hardwareanforderungen

Softwareanforderungen

  • FFmpeg
  • imlib2
  • Fonts (Vera) (nur bis graphTFT 0.1.21alpha)

Installation

Optionen

HAVE_IMLIB = 1 Unterstützung für DVB- und FB-Geräte aktivieren
HAVE_DFB = 1
HAVE_SOFTMPEG = 1
DirectDB und LibSoftMPEG installieren

(Benutzen kann man nur directFB ohne ffmpeg, imlib und libsoftmpeg, aber ohne Pbp)

HAVE_FAST_MEMCPY = 1 Benutze FASTMEMCPY mit CPUACCEL
HAVE_PVRFB = 1 Fix für PVR350-FRAMEBUFFER
DEBUG=1 Debuging aktivieren

Patches

  • vdr >= 1.3.18 Patch ist für das Plugin 0.0.8.

Source

cd $SOURCEDIR
tar xvzf imlib2-<VERSION>.tar.gz
cd imlib2-<VERSION>
./configure --prefix=/usr/local
make
make install
ldconfig
cd -

tar xvzf ffmpeg-<VERSION>.tar.gz
ln -s ffmpeg-<VERSION> ffmpeg
cd ffmpeg
./configure --prefix=/usr/local \
            --enable-shared
make
make install
ldconfig

Arch-Linux

pacman -S imlib2 ffmpeg

Crux

prt-get depinst imlib2 ffmpeg

Debian

Quelle: http://www.vdrwiki.com/index.php/M%C3%B3dulo_osdpip

apt-get install libimlib2-dev ffmpeg libavcodeccvs51 libavcodeccvs51-dev

Gentoo

emerge a52dec imlib2 ffmpeg

SuSE

yast -i imlib2-devel <BITTE ERGÄNZEN>

Konfiguration

Spezielle Fonts: Nur für graphTFT Versionen kleiner 0.2.0

Für alle 0.0.x und 0.1.x Versionen benötigt das Plugin Fonts, laut README -> Vera.ttf Ab 0.2.0 verfügt graphTFT über einen eigenen internen Font -> graphTFT.ttf.

mkdir -p $VDRCONFIG/plugins/graphTFT/fonts
locate Vera.ttf
/usr/X11R6/lib/X11/fonts/truetype/Vera.ttf
cp /usr/X11R6/lib/X11/fonts/truetype/Vera.ttf $VDRCONFIG/plugins/graphTFT/fonts

Findet Ihr mit dem Suchtool (locate) keine Fonts auf dem System, kann man sie auch nachinstallieren.

Debian -> apt-get install ttf-bitstream-vera
SuSE   -> yast -i bitstream-vera
Gentoo -> emerge ttf-bitstream-vera

Oder mal google bemühen... danach die Schritte oben erneut ausführen.

Zu den Themes, diese sind unterhalb von ../plugins/graphTFT/themes zu entpacken.

mkdir -p $VDRCONFIG/plugins/graphTFT/themes
tar jxvf /wo/auch/immer/standard-theme-<VERSION>.tar.bz2 -C $VDRCONFIG/plugins/graphTFT/themes

Für das Plugin ab Version 0.0.14 muss der VDR mir einem Patch versehen werden. Der entsprechende Patch liegt dem Plugin bei, Beispiel:

cd $SOURCEDIR/VDR
patch -p1 < PLUGINS/src/graphtft/patch/vdr-<VDRVERSION>.plain-graphtft-0.1.17.alpha.diff

Seit der Patch in Zulus 'Extension-Patch' enthalten ist liegt er dem Plugin nur noch für wenige VDR Versionen bei! Daher sollte man in der Regel auf das Extension Patch zurückgreifen.

Zusammenspiel mit anderen Plugins

Um graphTFT zur Zusammenarbeit mit anderen Plugins wie z.B. epgsearch oder extrecmenu zu bewegen müssen auch diese, je nach Version, gepatched werden. In neueren Versionen von epgsearch, extrecmenu und music sind die nötigen Erweiterungen bereits enthalten, hier ist nur darauf zu achten, dass sie ggf. mit der entsprechenden Makefile Schaltern übersetzt wurden bzw. werden.

Die Darstellung von ID3Tag Daten in Zusammenspiel mit dem music Plugin, funktioniert erst ab der music Plugin Version 0.4.0-b3. music Plugin Version 0.4.0-b3 wiederum läuft erst ab VDR 1.6.0.

Ab Version 0.2.0 bitte auch unbedingt den Abschnitt Probleme beachten.

Ab Version 0.3.0 (noch nicht verfügbar) unterstützt graphTFT Plugin auch direkt Touchscreens. Das touchTFT Plugin wird dann nicht mehr benötigt und ist, um Kollisionen zu vermeiden, zu deinstallieren. Siehe auch Touchscreen Einrichtung


Einstellungen

Folgende Einstellungen gibt es im Setup

Parameter Funktion
Theme Theme Auswahl
Hide Mainmenu Entry OSD-Hauptmenü Eintrag ausblenden
Convert Iso to UTF-8 Texte vor der Anzeige in UTF-8 konvertieren
Spectrum Analyzer Spektrum Analyzer aktivieren
Dump Image
Dump image to file Die graphTFT Ausgabe automatisch alle <Dump Refresh> Sekunden als graphTFT.png Datei unter /tmp abspeichern
Einmal eingestellt werden die Dump Bilder selbstständig, bis zum ausschalten der Funktion hier im Setup, immer wieder unter gleichen Namen, wobei sie sich gegenseitig überschreiben damit der Plattenplatz nicht ausgeht, erstellt. Zur Erzeugung ist außer diesem Eintrag hier, keine weitere manuelle Aktion notwendig.
Dump Refresh In welchem Zyklus (Sekunden) soll der graphTFT Screenshot erstellt werden?
Dump image width Breite der abgespeicherten Grafik.
Dump image height Höhe der abgespeicherten Grafik.
Snapshot Schnappschüsse für Bilder von Sendungen und Aufnahmen zur Anzeige in den OSD Menüs
Snapshot width Schnappschuss Breite
Snapshot height Schnappschuss Höhe
Snapshot Jpeg Quality Qualität des Schnappschuss-Jpeg (0-100)
Snapshot path Ordner in welchem die Schnappschüsse abgelegt werden
DVB Device
Use Stillpicture Die Pausefunktion des DVB-Treibers wird benutzt, um die Grafik anzuzeigen.
Refresh  ???
DVB/FB Device
Flip OSD Bild 180° spiegeln
Width Display Breite
Height Display Höhe
X Offset Bildposition vertikal
Y Offset Bildposition horizontal
Border to Width Rahmen rechts/links
Border to Height Rahmen oben/unten
TCP Connection Parameter der TCP Verbindung zum optionalen X-Frontend
Jpeg Quality Jpeg Übertragungsqualität (0-100); schlechtere Qualität -> schnellere Übertragung ;)
touch Device
Device Device des Touch-Displays z.B. /dev/input/event?
Debug
Log Device Auswahl des Log-Device
Debug Level Wie viel soll geloggt werden.

Parameter

Folgende Kommandozeilenparameter gibt es

Parameter (kurz) Parameter (lang) Beschreibung
-d <DEV> --device=<DEV'>> Setzt das Gerät, z.B.: /dev/fb0 oder für VDR-Dev.: vdr/1

OSD-Hauptmenüeintrag

graphTFT verfügt, sofern es im Setup enstprechend aktiviert wird, über ein eigenes OSD-Menü mit folgenden Punkten:

OSD-Menü Verwendung
Themes neu laden Lädt das eingestellte Theme File neu, ohne das der VDR neu gestartet werden muss. Sehr hilfreich bei der Erstellung neuer Themes.
Entspricht SVDRP Befehl: RELOAD
Anzeige aktualisieren Aktiviert/Deaktiviert die Anzeigeaktualisierung.
Entspricht SVDRP Befehl: ACTIVE
Standardanzeige Umschaltung und Festlegung der graphTFT Standardanzeige (wird in setup.conf als Default gespeichert).
Die Darstellung der gewählten Anzeige wird in den Theme Files in den Abschnitten [normal...] festgelegt. Default verfügbare Darstellungen sind: Standard, Dia, Clock und Sysinfo.
Entspricht SVDRP Befehl: VIEW
Snapshot Erzeugt ein Bildschirmfoto der laufenden Wiedergabe (TV-Bild) in dem im Setup festgelegten Verzeichnis (Snapshot path).
Snapshot erzeugt kein Bild der graphTFT Ausgabe. Ein graphTFT-Screenshot wird nur über die im Setup unter Dump Image vorzunehmenden Einstellungen erreicht.


SVDRP Unterstützung

Einige graphTFT Funktionen lassen sich auch über SVDRP Befehle ausführen.

Allgemeiner Aufruf:

 svdrpsend.pl plug graphtft [Befehl] [Option]
Befehl Optionen Verwendung
ACTIVE Aktiviert/Deaktiviert die Anzeigeaktualisierung. ACTIVE funktioniert nur zusammen mit einer der folgenden Optionen
ACTIVE on Aktiviert die Anzeigeaktualisierung.
ACTIVE off Deaktiviert die Anzeigeaktualisierung.
NORMALVIEW Wurde mit graphTFT 0.2.2 gegen den Befehl VIEW ersetzt. Die Optionen sind die gleichen wie bei VIEW.
REFRESH Bewirkt eine erzwungene Aktualisierung der angezeigten Informationen.
RELOAD Lädt das eingestellte Theme File neu, ohne das der VDR neu gestartet werden muss. Sehr hilfreich bei der Erstellung neuer Themes.
VIEW Umschaltung und Festlegung der graphTFT Standardanzeige (wird in setup.conf als Default gespeichert).
Die Darstellung der gewählten Anzeige wird in den Theme Files in den Abschnitten [normal...] festgelegt. VIEW funktioniert nur zusammen mit einer der folgenden Optionen.
VIEW Standard Schaltet die Darstellung des Displays auf Standard-Ansicht um.
Die Standardansicht zeigt eine Übersicht über das laufende und nachfolgende Programm sowie Programmoptionen wie z.B. Dolby Digital oder Zweikanal Tonübertragung.
VIEW Dia Schaltet die Darstellung des Displays auf Dia-Ansicht um.
Die Dia Darstellung dient zur Ausgabe von beliebigen Bildern auf dem TFT. Mit diesem SVDRP Befehl ist es - durch Einsatz eines externen Scripts - möglich, das Display zusätzlich zur Programmanzeige auch als digitalen Bilderrahmen nutzen zu können. Ein kommentiertes Beispielscript liegt den graphTFT Sourcen unter scripts/dia.sh bei.
VIEW Clock Schaltet die Darstellung des Displays auf Uhren-Ansicht um.
Bei der Clock-Ansicht bildet eine große Uhren- und Datumsanzeige den Bildmittelpunkt. Darüber hinaus zeigt eine Übersicht über das laufende und nachfolgende Programm an.
VIEW Sysinfo Schaltet die Darstellung des Displays auf Systeminfo-Ansicht um.
Sysinfo bietet einen Überblick über die genutzten und freien Systemressourcen, wie z.B. der aktuellen Prozessorauslastung, des VDRs. Es werden keine Angaben zum laufenden Programm angezeigt.

Touchscreen Einrichtung

Ab Version 0.3.0 (noch nicht verfügbar) verfügt graphTFT über eine eigene Schnittstelle für Touchscreen Displays.
Das bisher dafür notwendige touchTFT Plugin wird nun nicht mehr benötigt und muss, um Kollisionen zu vermeiden, sofern vorhanden deinstalliert werden.

Zur Einrichtung des Tochscreens ist im graphTFT-Setup zunächst das Event-Device des Touchscreens anzugeben.
Ist dies geschehen, folgt die Kalibrierung. Diese wird durch den gelben "Calibrate" Button gestartet.
Es erscheint ein Kalibrierungsbildschirm mit entsprechenden Anweisungen, welche mit dem Anklicken des Cursors in der linken oberen Ecke beginnen.

Bei einigen Touchscreens sind die X und Y Koordinaten vertauscht. Das Kalibrierungsprogramm erkennt dies automatisch, sobald die rechte obere Ecke "getouched" wurde. Ist dieser der Fall, springt der Cursor in die linke obere Ecke zurück und die Kalibrierung beginnt, diesmal unter Berücksichtigung der getauschten X/Y Koordinaten, erneut.

Ist der Cursor in allen vier Ecken berührt worden, ist die Kalibrierung abgeschlossen.

Nun kann zum Test der Funktion und Genauigkeit wahllos auf dem Bildschrim "rumgetouched" werden. Die gewählten Koordinaten werden angezeigt und wenn alles richtig Funktioniert hat, sollte der Cursor auch an die berührte Stelle springen. Tut er es nicht, sollte die Kalibrierung noch einmal wiederholt werden.

Der Kalibrierungsvorgang wird wieder mit dem gelben Button (jetzt mit "Stop" beschriftet) beendet.

Möchte man die Kalibrierung seines Displays später noch einmal testen, gelangt man über den grünen Button "Test" in einen entsprechenden Testmodus. Es erscheint das gleiche Bild wie bei der Kalibrierung, es werden hier aber nur Koordinaten angezeigt und keine vorhandenen Werte überschrieben. Auch hier beendet der gelbe Button den Testvorgang.

Sonstiges

Probleme

Keine EPG Daten mit graphTFT 0.2.x

Mit graphTFT 0.2.x wurde die EPG-Daten-Anzeige in Zusammenarbeit mit dem epgsearch Plugin stark überarbeitet. Die Darstellung ist nun auch unabhängig von der Verwendung des epgsearch Plugins und der epgsearch.conf, somit muss das Theme diesbezüglich nicht mehr an euer System angepasst werden.

Damit diese Änderungen genutzt werden können, muss der vdr (mit vdr-1.7.0-extension-59-graphTFT-0.2.0.diff, dieses Passt zum VDR 1.7.0 mit Extension Patch) und das epgsearch-Plugin (mit epgsearch-0.9.24.diff) gepatcht werden. Die notwendigen Patches werden im ./patch Verzeichnis des graphTFT Plugins mitgeliefert.

Für andere Versionen muss man ggf. selbst Hand anlegen und ein paar Rejects auflösen.

Anschließend müssen der vdr und ALLE Plugins neu übersetzt und installiert werden.

Das VDR Patch wird voraussichtlich im Extension Patch 65 Aufnahme finden. Die Änderungen am epgsearch Plugin wurden in die Version 0.9.25 (ab Beta6) mit aufgenommen. Von da an, ist ein gesonderter Patch nicht mehr erforderlich.

Dargestellte Spalten stimmen nicht

Einige OSD Darstellungen, wie z.B. den Umfang der angezeigten Daten im Aufnahmemenü, können individuell am OSD vorgenommen werden. In den graphTFT Themes sind für einige Bereiche jedoch feste Spalten vorgesehen. Wählt ein Benutzer nun für das OSD eine andere Einstellung, kommt es zur Verschiebung und unsauberen Darstellung der Informationen auf der graphTFT Ausgabe.

Dies gilt besonders für die Anzeige der Aufnahmemenü's (mit und ohne extRecMenu Plugin) sowie des ArghDirector Plugins.
Wünscht man sich nun eine andere Darstellung, muss auch das jeweilige Theme File manuell angepasst werden.

Ein Beispiel anhand der Aufnahmemenü Sektion im theme File.

//***************************************************************************
// Aufnahmemenü (VDR Standardversion)
//***************************************************************************
[MenuRecordings]
...
// Date
// conditon example
Item=Column,number=1,width=150;
// Time
Item=Column,number=2,width=120;
// length
Item=Column,number=3,width=120;
// text
Item=Column,number=4,dots=yes;
// Select Entry
...

Dieser Abschnitt ist so aufgebaut, dass die ersten vier Spalten (number) der OSD Anzeige ausgegeben werden.

width beschreibt dabei die Breite der Spalte. Wird kein width angegeben, wird automatisch die max. mögliche Spaltenbreite genommen.

Legt man im OSD Setup nun fest, dass z.B. die Aufnahmezeit (Time) nicht mehr angezeigt werden soll, gäbe es keine vier sondern nur noch drei angezeige Spalten, welche erneut durchnummeriert werden. Der Effekt ist nun, dass die ehemals 4. Spalte (text) nun die Nummer 3 (vormals length) trägt. Für die Spalte 3 ist aber eine width von 120 Pixeln festgelegt, wohingegen die ursprüngliche Spalte 4 keine Längenbegrenzung besaß. In Folge dessen wird der Text (der Sendungstitel) nun nach 120 Pixeln abgeschnitten.

Um das zu korrigieren enpfielt es sich, die nun mehr gewünschte Spalte auszukommentieren, und die Spaltenzähler der nachfolgenden Zeilen entsprechend der OSD Position zu korrigieren.
Für unser Beispiel sähe das so aus:

// Date
// conditon example
Item=Column,number=1,width=150;
// Time
Item=Column,number=2,width=120;
// length
// Item=Column,number=3,width=120;
// text
Item=Column,number=3,dots=yes;
// Select Entry
...

Nach Änderungen am Themefile muss dieses neu geladen werden. Siehe hierzu die o.g. Abschnitte OSD-Menü oder SVDRP.


Kompilieren unter SuSE

Wenn man die Fehlermeldung "cannot find -lX11" bekommt, muss das xorg-x11-devel Paket nachinstalliert werden.

yast -i xorg-x11-devel


Themes

Alien vs. Predator Theme

Dieses Theme wurde für die Auflösung von 800x600 Pixeln erstellt. Es kann aber auch mit kleineren Auflösungen verwandt werden, da graphTFT die Darstellung dann automatisch skalliert.

Um die entsprechenden TFTs optimal nutzen zu können, sollten im GraphTFT folgende Einstellungen vorgenommen werden:

Width 800
Height 600
X Offset 0
Y Offset 0
Border to Height 0
Border to Width 0

Im Theme selbst gibt es ebenfalls einige Einstellungsmöglichkeiten wie z.B. eine alternative Ansicht für das music plugin oder wählbare Maus-Buttons.
Einstellbar ist das ganze über einen Editor in der avp.theme Datei. Die entsprechenden Abschnitte sind in der Datei selbst dokumentiert.


Nur für AvP kleiner Version 0.8 / graphTFT kleiner 0.2.0:

Für das Theme wurden die beiden Schriftarten Vera und Enigma des DeepBlue Themes verwandt.

Von diesen Schriften gibt es mehrere Versionen, daher sind die hier genutzen ebenfalls auf der graphTFT Downloadseite zu beziehen.

Die Schriftarten gehören in das fonts Verzeichnis des Plugins unter ../plugins/graphTFT/fonts

Neuere Plugin/Theme Versionen verfügen über einen eigenen internen Zeichensatz (graphTFT.ttf). Hier müssen keine Fonts mehr kopiert werden.


Folgende graphTFT und AvP Theme Versionen passen zu einander:

graphTFT Version AvP Theme Version
>=0.2.1 0.0.11
0.2.0 0.0.10
0.1.19 - .21alpha 0.0.8 (benötigt Fonts)
<0.1.19alpha für diese Versionen gibt es kein AvP Theme)


Links

  1. Imlib2
  2. FFmpeg
  3. Daten / Schaltungen - speziell für das PSone LCD
  4. Vorlage:Spiegel 2

Plugin >= 0.0.14

  1. Homepage des Plugins
  2. Theme deepblue
  3. Theme Alien vs. Predator (800x600)
  4. Theme poetter

Plugin = 0.0.8

  1. Homepage des Plugins
  2. Theme NAME?
  3. Theme NAME?
  4. Theme NAME?
  5. Theme NAME?
  6. Theme NAME?
In anderen Sprachen