Graphtft-plugin-Themes-Anleitung

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Operatoren hinzugefügt)
(Typo's)
 
(3 dazwischenliegende Versionen von einem Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
'''Diese Seite befindet sich noch im Aufbau'''
+
Zur Anzeige von Daten nutzt das [[Graphtft-plugin]] so genannte Themes.
 
+
Zur Anzeige von Daten nutzt das graphTFT Plugin so genannte Themes.
+
 
Diese Themes können selbst nach eigenem Geschmack erstellt und verändert werden.
 
Diese Themes können selbst nach eigenem Geschmack erstellt und verändert werden.
 
Wie das im einzelnen geht und was für Funktionen hierfür zur Verfügung stehen, soll dieser Artikel näher bringen.
 
Wie das im einzelnen geht und was für Funktionen hierfür zur Verfügung stehen, soll dieser Artikel näher bringen.
Zeile 20: Zeile 18:
  
 
Ein Theme besteht aus Sektionen, welche in eckigen Klammern [] markiert werden.
 
Ein Theme besteht aus Sektionen, welche in eckigen Klammern [] markiert werden.
Es gibt graphTFT interne Sektionen, aber auch welche die vom VDR oder von anderen Plugins, wie. z.B. dem Arghdirector, speziell für das graphTFT eingerichtet wurden.
+
Es gibt graphTFT interne Sektionen, aber auch welche die vom VDR oder von anderen Plugins, wie. z.B. das [[Arghdirector-plugin]], speziell für das graphTFT eingerichtet wurden.
 
So können für unterschiedlichste VDR Menüs jeweils eigene Beschreibungen angelegt werden.
 
So können für unterschiedlichste VDR Menüs jeweils eigene Beschreibungen angelegt werden.
 +
 +
In jeder Sektion stehen Variablen zur Verfügung, welche Daten vom VDR oder zuliefernden Plugins, wie z.B. das [[Music-plugin]], enthalten und verwenden werden können.
 +
Die Art der Variablen machen die Buchstaben an Ende der Variablenbezeichnung deutlich.
 +
 +
Diese sind:
 +
 +
{| class="wikitable"
 +
|-
 +
!Buchstabe
 +
!Bedeutung
 +
|-
 +
|t
 +
|time
 +
|-
 +
|a
 +
|text (alpha-num)
 +
|-
 +
|n
 +
|number
 +
|-
 +
|f
 +
|flag
 +
|}
 +
 +
Es gibt einige Variablen, welche in allen Sektionen zur Verfügung stehen.
 +
 +
  
 
{| class="wikitable"
 
{| class="wikitable"
Zeile 27: Zeile 52:
 
!Sektion
 
!Sektion
 
!Verwendung
 
!Verwendung
 +
!Verfügbare Variablen
 
|-
 
|-
 
|[Calibration]
 
|[Calibration]
Zeile 32: Zeile 58:
 
|-
 
|-
 
|[Menu]
 
|[Menu]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuArghDirector]
 
|[MenuArghDirector]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuChannels]
 
|[MenuChannels]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuCommands]
 
|[MenuCommands]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuCommon]
 
|[MenuCommon]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuEpgsSchedule]
 
|[MenuEpgsSchedule]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuEpgsWhatsOn_Event]
 
|[MenuEpgsWhatsOn_Event]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuEpgsWhatsOn_logo_time]
 
|[MenuEpgsWhatsOn_logo_time]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuEpgsWhatsOnElse]
 
|[MenuEpgsWhatsOnElse]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuEpgsWhatsOnNext]
 
|[MenuEpgsWhatsOnNext]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuEpgsWhatsOnNow]
 
|[MenuEpgsWhatsOnNow]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuEvent]
 
|[MenuEvent]
 
|
 
|
 +
|{eventID} - n<br />{eventTitle} - a<br />{eventSubTitle} - a<br />{eventStartTime} - t<br />{eventEndTime} - t
 
|-
 
|-
 
|[MenuExtRecording]
 
|[MenuExtRecording]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuExtRecordings]
 
|[MenuExtRecordings]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuMain]
 
|[MenuMain]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuMusicTrackList]
 
|[MenuMusicTrackList]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuRecording]
 
|[MenuRecording]
 
|
 
|
 +
|{recordingPath} - a<br />{recordingTitle} - a<br />{recordingEventID} - n<br />{recordingPath} - a<br />{recordingTitle} - a<br />{recordingSubTitle} - a<br />{recordingTime} - t<br />{recordingChannel} - a
 
|-
 
|-
 
|[MenuRecordings]
 
|[MenuRecordings]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuSchedule]
 
|[MenuSchedule]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuSetupPage]
 
|[MenuSetupPage]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuSetupPlugins]
 
|[MenuSetupPlugins]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuTimers]
 
|[MenuTimers]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuUnknown]
 
|[MenuUnknown]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuWhatsOnNext]
 
|[MenuWhatsOnNext]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MenuWhatsOnNow]
 
|[MenuWhatsOnNow]
 +
|
 
|
 
|
 
|-
 
|-
 
|[MouseButtons]
 
|[MouseButtons]
 +
|
 
|
 
|
 
|-
 
|-
 
|[NormalClock]
 
|[NormalClock]
 +
|
 
|
 
|
 
|-
 
|-
 
|[NormalDia]
 
|[NormalDia]
 +
|
 
|
 
|
 
|-
 
|-
 
|[NormalRadio]
 
|[NormalRadio]
 +
|
 
|
 
|
 
|-
 
|-
 
|[NormalSysinfo]
 
|[NormalSysinfo]
 +
|
 
|
 
|
 
|-
 
|-
 
|[NormalTV]
 
|[NormalTV]
 
|
 
|
 +
|{eventID} - n<br />{eventTitle} - a<br />{eventSubTitle} - a<br />{eventStartTime} - t<br />{eventEndTime} - t
 
|-
 
|-
 
|[OSD-Messages]
 
|[OSD-Messages]
 +
|
 
|
 
|
 
|-
 
|-
 
|[RecSymbol]
 
|[RecSymbol]
 +
|
 
|
 
|
 
|-
 
|-
 
|[ReplayCommon]
 
|[ReplayCommon]
 +
|
 
|
 
|
 
|-
 
|-
 
|[ReplayDVD]
 
|[ReplayDVD]
 +
|
 
|
 
|
 
|-
 
|-
 
|[ReplayMP3]
 
|[ReplayMP3]
 
|
 
|
 +
|{recordingPath} - a<br />{recordingTitle} - a<br />{recordingEventID} - n<br />{recordingPath} - a<br />{recordingTitle} - a<br />{recordingSubTitle} - a<br />{recordingTime} - t<br />{recordingChannel} - a<br /><br />Music Plugin: (ReplayMP3 mit music Plugin, in der 'Player-View')<br />{musicArtist} - a<br/>{musicAlbum} - a<br/>{musicGenre} - a<br/>{musicYear} - n // <0 wenn unbekannt<br/>{musicFilename} - a<br/>{musicComment} - a<br/>{musicFrequence} - n<br/>{musicBitrate} - n<br/>{musicStereoMode} - a<br/>{musicIndex} - n // Numer of Current Track<br/>{musicCount} - n // Count of Tracks in Playlist<br/>{musicPlayStatus} - a // Playing, Stopped, ...<br/>{musicRating} - n // 0-nicht bewertet 3-zum löschen, >3-rating<br/>{musicLoop} - f<br/>{musicShuffle} - f<br/>{musicShutdown} - f<br/>{musicRecording} - f<br/>{musicButtonRed} - a // Button-Texte des Music-Plugins<br/>{musicButtonYellow} - a<br/>{musicButtonGreen} - a<br/>{musicButtonBlue} - a<br/>{musicCoverName} - a // Cover Image (Pfad)<br/><br/>Beispiel:<br/>  Item=Text,text={time/%d.%m %H:%M},x=520,y=27,width=200,height=40,red=52,green=162,blue=159;
 
|-
 
|-
 
|[ReplayNormal]
 
|[ReplayNormal]
 
|
 
|
 +
|{recordingPath} - a<br />{recordingTitle} - a<br />{recordingEventID} - n<br />{recordingPath} - a<br />{recordingTitle} - a<br />{recordingSubTitle} - a<br />{recordingTime} - t<br />{recordingChannel} - a
 
|-
 
|-
 
|[Theme]
 
|[Theme]
 +
|
 
|
 
|
 
|-
 
|-
 
|[TV_Radio_Common]
 
|[TV_Radio_Common]
 +
|
 
|
 
|
 
|-
 
|-
 
|[Volume]
 
|[Volume]
 +
|
 
|
 
|
 
|-
 
|-
Zeile 156: Zeile 222:
  
 
In jeder Sektion finden verschiedene Funktionen Anwendung. So gibt die eine Funktion z.B. EPG Daten aus, die andere wiederum ein Bild oder eine Zeitleiste.
 
In jeder Sektion finden verschiedene Funktionen Anwendung. So gibt die eine Funktion z.B. EPG Daten aus, die andere wiederum ein Bild oder eine Zeitleiste.
Nicht alle Funktionen können in allen Sektionen verwand werden, da hierfür entweder nicht die geeigneten Daten zur Verfügung stehen, es sich um spezielle graphTFT interne Funktionen handelt oder die Funktion im der gewählten Sektion keinen Sinn macht.
+
Nicht alle Funktionen können in allen Sektionen verwendet werden, da hierfür entweder nicht die geeigneten Daten zur Verfügung stehen, es sich um spezielle graphTFT interne Funktionen handelt oder die Funktion im der gewählten Sektion keinen Sinn macht.
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
Zeile 186: Zeile 252:
 
|
 
|
 
|-
 
|-
|#define - #ifdef - #else - #endif - #undef
+
|#define - #ifdef - #else - #endif - #ifndef
 
|
 
|
 
|-
 
|-
Zeile 283: Zeile 349:
 
|-
 
|-
 
|Text
 
|Text
|
+
|Anzuzeigender Text<br/>Der Text kann Variablen enthalten, diese werden in geschweiften Klammern angegeben. Für Datum/Zeit Felder kann optional ein Formatstring definiert werden.<br/>Der Formatstring für Datum/Zeit entspricht dem in der Manpage zu strftime beschriebenen. Anzuzeigende Kommata und Semikolons im Formatstring müssen mit '\' maskiert werden.
 
|-
 
|-
 
|TextList
 
|TextList
Zeile 301: Zeile 367:
 
|-
 
|-
 
|}
 
|}
 
 
 
 
  
 
== Parameter ==
 
== Parameter ==
Zeile 315: Zeile 377:
  
 
== Operatoren ==
 
== Operatoren ==
Sollen Theme Items nur in bestimmten Situationen angezeigt werden kann dies uber den Parameter condition erreicht werden.
+
Sollen Theme Items nur in bestimmten Situationen angezeigt werden kann dies über den Parameter condition erreicht werden.
  
 
Bedingungen können aufbauend auf den unten beschriebenen Variablen definiert werden.
 
Bedingungen können aufbauend auf den unten beschriebenen Variablen definiert werden.

Aktuelle Version vom 29. August 2013, 21:23 Uhr

Zur Anzeige von Daten nutzt das Graphtft-plugin so genannte Themes. Diese Themes können selbst nach eigenem Geschmack erstellt und verändert werden. Wie das im einzelnen geht und was für Funktionen hierfür zur Verfügung stehen, soll dieser Artikel näher bringen.


Inhaltsverzeichnis

[Bearbeiten] Allgemeines

Wie werden Themes aufgebaut?

Wo werden diese abgelegt?

Beispiele...

...

[Bearbeiten] Sektionen

Ein Theme besteht aus Sektionen, welche in eckigen Klammern [] markiert werden. Es gibt graphTFT interne Sektionen, aber auch welche die vom VDR oder von anderen Plugins, wie. z.B. das Arghdirector-plugin, speziell für das graphTFT eingerichtet wurden. So können für unterschiedlichste VDR Menüs jeweils eigene Beschreibungen angelegt werden.

In jeder Sektion stehen Variablen zur Verfügung, welche Daten vom VDR oder zuliefernden Plugins, wie z.B. das Music-plugin, enthalten und verwenden werden können. Die Art der Variablen machen die Buchstaben an Ende der Variablenbezeichnung deutlich.

Diese sind:

Buchstabe Bedeutung
t time
a text (alpha-num)
n number
f flag

Es gibt einige Variablen, welche in allen Sektionen zur Verfügung stehen.


Sektion Verwendung Verfügbare Variablen
[Calibration] Beschreibt die Darstellung der graphTFT internen Kalibrationsdarstellung.
[Menu]
[MenuArghDirector]
[MenuChannels]
[MenuCommands]
[MenuCommon]
[MenuEpgsSchedule]
[MenuEpgsWhatsOn_Event]
[MenuEpgsWhatsOn_logo_time]
[MenuEpgsWhatsOnElse]
[MenuEpgsWhatsOnNext]
[MenuEpgsWhatsOnNow]
[MenuEvent] {eventID} - n
{eventTitle} - a
{eventSubTitle} - a
{eventStartTime} - t
{eventEndTime} - t
[MenuExtRecording]
[MenuExtRecordings]
[MenuMain]
[MenuMusicTrackList]
[MenuRecording] {recordingPath} - a
{recordingTitle} - a
{recordingEventID} - n
{recordingPath} - a
{recordingTitle} - a
{recordingSubTitle} - a
{recordingTime} - t
{recordingChannel} - a
[MenuRecordings]
[MenuSchedule]
[MenuSetupPage]
[MenuSetupPlugins]
[MenuTimers]
[MenuUnknown]
[MenuWhatsOnNext]
[MenuWhatsOnNow]
[MouseButtons]
[NormalClock]
[NormalDia]
[NormalRadio]
[NormalSysinfo]
[NormalTV] {eventID} - n
{eventTitle} - a
{eventSubTitle} - a
{eventStartTime} - t
{eventEndTime} - t
[OSD-Messages]
[RecSymbol]
[ReplayCommon]
[ReplayDVD]
[ReplayMP3] {recordingPath} - a
{recordingTitle} - a
{recordingEventID} - n
{recordingPath} - a
{recordingTitle} - a
{recordingSubTitle} - a
{recordingTime} - t
{recordingChannel} - a

Music Plugin: (ReplayMP3 mit music Plugin, in der 'Player-View')
{musicArtist} - a
{musicAlbum} - a
{musicGenre} - a
{musicYear} - n // <0 wenn unbekannt
{musicFilename} - a
{musicComment} - a
{musicFrequence} - n
{musicBitrate} - n
{musicStereoMode} - a
{musicIndex} - n // Numer of Current Track
{musicCount} - n // Count of Tracks in Playlist
{musicPlayStatus} - a // Playing, Stopped, ...
{musicRating} - n // 0-nicht bewertet 3-zum löschen, >3-rating
{musicLoop} - f
{musicShuffle} - f
{musicShutdown} - f
{musicRecording} - f
{musicButtonRed} - a // Button-Texte des Music-Plugins
{musicButtonYellow} - a
{musicButtonGreen} - a
{musicButtonBlue} - a
{musicCoverName} - a // Cover Image (Pfad)

Beispiel:
Item=Text,text={time/%d.%m %H:%M},x=520,y=27,width=200,height=40,red=52,green=162,blue=159;
[ReplayNormal] {recordingPath} - a
{recordingTitle} - a
{recordingEventID} - n
{recordingPath} - a
{recordingTitle} - a
{recordingSubTitle} - a
{recordingTime} - t
{recordingChannel} - a
[Theme]
[TV_Radio_Common]
[Volume]

[Bearbeiten] Funktionen / Items

In jeder Sektion finden verschiedene Funktionen Anwendung. So gibt die eine Funktion z.B. EPG Daten aus, die andere wiederum ein Bild oder eine Zeitleiste. Nicht alle Funktionen können in allen Sektionen verwendet werden, da hierfür entweder nicht die geeigneten Daten zur Verfügung stehen, es sich um spezielle graphTFT interne Funktionen handelt oder die Funktion im der gewählten Sektion keinen Sinn macht.

Funktion / Item Verwendung
Background
CalibrationCursor
Column
ColumnSelected
Defaults
EventColumn
EventColumnSelected
if - endif
#define - #ifdef - #else - #endif - #ifndef
Image
ImageFile
Include
MailCount
MailSymbol
Menu
MenuButtonBackgroundBlue
MenuButtonBackgroundGreen
MenuButtonBackgroundRed
MenuButtonBackgroundYellow
MenuButtonBlue
MenuButtonGreen
MenuButtonRed
MenuButtonYellow
MenuImageMap
MenuNavigationArea
MenuSelected
MenuText
MenuTitle
Message
PartingLine
Progressbar
Recording
Rectangle
SpectrumAnalyzer
Sym2ch
SymCrypt
SymDD
SymRecording
SymVTX
Sysinfo
Text Anzuzeigender Text
Der Text kann Variablen enthalten, diese werden in geschweiften Klammern angegeben. Für Datum/Zeit Felder kann optional ein Formatstring definiert werden.
Der Formatstring für Datum/Zeit entspricht dem in der Manpage zu strftime beschriebenen. Anzuzeigende Kommata und Semikolons im Formatstring müssen mit '\' maskiert werden.
TextList
Theme
Timebar
var
Volumebar

[Bearbeiten] Parameter

Koordinaten

Größenangeben

Pfadangaben

[Bearbeiten] Operatoren

Sollen Theme Items nur in bestimmten Situationen angezeigt werden kann dies über den Parameter condition erreicht werden.

Bedingungen können aufbauend auf den unten beschriebenen Variablen definiert werden.

Operator Bedeutung Verwendung
< kleiner
> größer
<= keiner gleich
>= größer gleich
<> ungleich
!= ungleich
= gleich
== gleich (c/c++ like ;))

Beispiel:

Item=Image,condition={musicLoop} == 1,x=25,y=515,width=20,height=20,fit=yes,path=symbols/music-loop.png;
Item=Image,condition={musicLoop} <> 1,x=25,y=515,width=20,height=20,fit=yes,path=symbols/music-noloop.png;