Der graphtftng Konfigurationsthread

  • Hallo,


    da ich mich gerade mit der Erstellung eines themes für graphtftng beschäftige und die Doku sehr spärlich und auch teilweise veraltet ist, würde ich es ganz gut finden, wenn man diesen Thread dazu nutzen könnte, die Erfahrungen mit der Themeerstellung bei graphtftng hier zu teilen.
    Es ist manchmal nämlich recht mühsam heraus zu bekommen, wie was funktioniert.
    Vielleicht führt das ja auch dazu, daß der Wiki Artikel mal mehr Inhalt bekommt.


    Ich fange mal mit etwas banalem an, welche Variablen bzw. Attribute kann denn z.B Text haben, also x und y Position, width, size, height, line, align, dots, on_click
    Gibt's da noch mehr? Und was bedeutet eigentlich dots genau?


    Würde mich freuen, wenn es hier eine rege Beteiligung gäbe.


    massi


    P.S. Ich war mir jetzt nicht sicher ob's hierhin oder eher in den VDR Pluginteil gehört.

    Blog


    VDR1 (Server): Gigabyte Z87-HD3, Intel(R) Core(TM) i7-4770S CPU @ 3.10GHz, 16GB RAM, NVIDIA GT 640 (Zotac), Digital Devices Cine V7, OrigenAE S21T, yavdr ansible an Röhre mit vga2scart

    VDR2 (Client): AsRock ION 330, yavdr-ansible auf Ubuntu 18.04 an Panasonic Beamer (HDMI)

    Einmal editiert, zuletzt von massi ()

  • Dann lass uns doch noch banaler anfangen ;)


    Es gibt grundsätzlich vier Bestandteile für ein Theme File:


    1.) Sektionen
    Sektionen werden durch den Namen der Sektion in eckigen Klammern definiert.
    Eine Sektion hält eine Menge Items zusammen welche 'gleichzeitig' angezeigt werden sollen. So ziemlich jeder Ansicht/Menü des VDRs kann eine Sektion zugeordnet werden, das hängt von der Methode 'MenuKind' ab welche durch das graphTFT Patch in den VDR kommt und je Menü oder Ansicht einen anderen Bezeichner zurückgibt. Einige Plugins unterstützen dies ebenso (epgsearch, extrec, ...).
    Darüberhinaus kann man weitere, beliebige Sektionen definieren um Items zu gruppieren und in anderen Sektionen per Include wiederzuverwenden. Eine Besonderheit sind hierbei Sektionen dessen Name mit 'Normal' beginnt, zwischen diesen kann bei LiveTV mittels Plugin-Menü und SCVDP hin und her geschaltet werden.


    2.) Items
    Die anzuzeigenden Items wie Text, Image ColorButton, Menu... etc. (Liste im nächsten Thread)


    3.) Parameter
    Die Parameter der Theme Items, über diese wird Position, Farbe, Größe etc. des Items bestimmt


    4.) Variablen
    Hier gibt es eine Menge automatisch gefüllter welche von Plugin je nach Kontext mit aktuellen Daten gefüllt werden welche gerade zur Verfügung stehen ist vom Kontext abhängig in dem der VDR sich befindet (LiveTV, Wiedergabe, EpgMenü, Mauptmenü, Menü(XYZ). Weiterhin kann man im Theme eigene Variablen definieren z.B. um an zentraler Stelle einige Einstellungen machen zu können. Variablen dienen in erster Linie der Zuordnung zu den Parametern, so setzt man z.B. den Wert des text Parameters auf den akztuellen Sendungstitel indem man die Variable presentTitle verwendet: text={presentTitle}.
    Variablen löst man mittels der geschweiften Klammern auf. Zum Teil gibt es zu den Variablen noch Formatierungsanweisung welche mittels / getrennt angegeben werden können. Aktuell beschränken sich diese auf 'upper', 'lower' und die Formatstrings für die Formatierung von datum und zeit welcher der Manpage von strftime entsprechen. Den aktuellen Titel in Kleinbuchstaben erhält man somit mittels: {presentTitle/lower}


    5.) Schlüsselwörter und Direktiven
    Dazu kommen Schlüsselwörter wie Include und var sowie die Direktiven (#ifdef, #define, #ifndef und #endif).


    Grüße, Jörg

    2 Mal editiert, zuletzt von horchi ()

  • Sektionen des VDR (durch den Patch):



    Für epgsearch:

    Code
    "MenuEpgsSchedule"
    "MenuEpgsWhatsOnElse"
    "MenuEpgsWhatsOnNow" 
    "MenuEpgsFavorites"
    "MenuEpgsWhatsOnNext"


    Für extrec kommen diese hinzu:

    Code
    "MenuExtRecording"
    "MenuExtRecordings"


    Für Menüs welche (in Plugins) dies nicht definiert ist wird 'MenuUnknown' verwendet, für alle Sektionsanfragen die im Theme fehlen wird die Sektion "Menü" gewählt, diese sollte mindestens definiert sein.
    Denke die Namen sagen schon aus für was sie sind, ansonsten Fragen ....


    Jörg

  • Die Parameter:



    fast 'depricated', größtenteils durch andere Features abgedeckt:


    Code
    focus       (use path)
    image_map   (damit ist nicht das Theme MenuImageMap gemeint!)
    switch      (noch nicht abgelöst, wird für Farbwechsel ProgressBar verwendet)


    'depricated' Untersützung wird früher oder später eingestellt:


    Fehlt noch für was sie sind und welche von welchen Theme Items unterstützt werden.


    Jörg

  • Die Theme Items:

  • Na, das ist ja schonmal was.


    Kannst Du mir vielleicht auch noch sagen wo sowas hier herkommt?


    Text text={selectedRowEventDescription}

    Blog


    VDR1 (Server): Gigabyte Z87-HD3, Intel(R) Core(TM) i7-4770S CPU @ 3.10GHz, 16GB RAM, NVIDIA GT 640 (Zotac), Digital Devices Cine V7, OrigenAE S21T, yavdr ansible an Röhre mit vga2scart

    VDR2 (Client): AsRock ION 330, yavdr-ansible auf Ubuntu 18.04 an Panasonic Beamer (HDMI)

  • das sind die Variablen, die stelle ich gerade neben bei zusammen ;)

  • Hoffe ich hab alle :o


    Die Variablen setzen sich aus einem Präfix und Bezeicher zusammen, das Präfix spezifiziert den Context.
    Beispiel der Titel der aktuellen Sendung steht in "presentTitle", der Titel der folgenden Sendung in "followingTitle"
    Wo und wann die Variablen verfügbar sind ist abhängig vom Präfix, siehe unten










    Grüße Jörg

  • Danke, damit kann man was anfangen!

    Blog


    VDR1 (Server): Gigabyte Z87-HD3, Intel(R) Core(TM) i7-4770S CPU @ 3.10GHz, 16GB RAM, NVIDIA GT 640 (Zotac), Digital Devices Cine V7, OrigenAE S21T, yavdr ansible an Röhre mit vga2scart

    VDR2 (Client): AsRock ION 330, yavdr-ansible auf Ubuntu 18.04 an Panasonic Beamer (HDMI)

  • Bei der Bearbeitung eines Themes bin ich über dies hier gestolpert:


    PartingLine


    Was macht das genau? Irgendwie sehe ich keinen Unterschied ob das drin ist oder nicht.


    massi

    Blog


    VDR1 (Server): Gigabyte Z87-HD3, Intel(R) Core(TM) i7-4770S CPU @ 3.10GHz, 16GB RAM, NVIDIA GT 640 (Zotac), Digital Devices Cine V7, OrigenAE S21T, yavdr ansible an Röhre mit vga2scart

    VDR2 (Client): AsRock ION 330, yavdr-ansible auf Ubuntu 18.04 an Panasonic Beamer (HDMI)

  • soweit ich mich erinnere ist das ne Trennlinie...


    Christian

    CKone: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G540, 2x 2GB Kingston DDR3, Zotac GT630 1GB, S2-1600, Ocz Agility 3 60GB, LG GH24NS DVD, 15.6" Selbstbau TFT, Harmony 665, CIR Selbstbau - das Ganze im Silverstone SST-SG03B
    CKtwo: yavdr-ansible/18.04 LTS/2.4.1/kodi18 auf Intel DH67BL, Intel Celeron G1610, 2x 2GB Corsair DDR3, Zotac GT630 1GB, TT S2-1600, Ocz Vertex 2 50 GB, 92 Kanal Seduatmo, Harmony 665, atric USB
    CKthree: yavdr-ansible/22.04 LTS/2.6.1/kodi19.3 auf Intel NUC, Celeron J4005, UHD Graphics 600, 4GB Crucial DDR4, Ocz Vertex2 50 GB, Harmony 350

    PowerEdge: Ubuntu Server 16.04 LTS / VDR 2.4.1 auf Dell PowerEdge T20, Xeon E3-1225 v3, 16GB ECC DDR3, 2x Cine S2 V6 mit Duoflex, Samsung 840 EVO 120GB, 3x WD White WD80EZAZ 8TB in SW Raid5



  • damit stellt man ein wie die Trennlinien die das epgsearch Plugin den EPG Menüs hinzufügt aussehen sollen.

  • O.K., danke!

    Blog


    VDR1 (Server): Gigabyte Z87-HD3, Intel(R) Core(TM) i7-4770S CPU @ 3.10GHz, 16GB RAM, NVIDIA GT 640 (Zotac), Digital Devices Cine V7, OrigenAE S21T, yavdr ansible an Röhre mit vga2scart

    VDR2 (Client): AsRock ION 330, yavdr-ansible auf Ubuntu 18.04 an Panasonic Beamer (HDMI)

  • wenn es die bei epgsearch auch auf dem OSD nicht gibt müssen sie im epgsearch Setup konfiguriert werden ;)

  • Da ich mal wieder ein wenig an meinem Eigenbau-Theme gebastelt habe, bin ich mal wieder über was gestolpert.:-)


    Beim abspielen soll das zugehörige EPG Bild angezeigt werden, das habe ich mir aus einem anderen Theme geklaut und sieht so aus:


    Code
    Image x=1110,y=100,width=170,height=170, 
          path=
          {replayPath}/thumbnail_(0-9).jpg 
          :{replayPath}/{replayEventId}_(0-9).jpg 
          :{varImagesPath_2}/{replayTitle}.jpg 
          :{varImagesPath_1}/{replayTitle}.jpg
          :symbols/video.png,fit=yes,aspect_ratio=yes,delay=5,overlay=yes;


    Soweit so gut, die Frage dabei ist, wieso versucht der das Bild aus dem {replayPath} zu holen, da sind bei mir noch nie Bilder gewesen oder anders gefragt, wer oder was soll die denn dahin kopiert haben?
    Ich bekomme nämlich immer nur das video.png angezeigt, nie ein EPG Bild.

    Blog


    VDR1 (Server): Gigabyte Z87-HD3, Intel(R) Core(TM) i7-4770S CPU @ 3.10GHz, 16GB RAM, NVIDIA GT 640 (Zotac), Digital Devices Cine V7, OrigenAE S21T, yavdr ansible an Röhre mit vga2scart

    VDR2 (Client): AsRock ION 330, yavdr-ansible auf Ubuntu 18.04 an Panasonic Beamer (HDMI)

  • Geht um Aufnahmen nehm ich an?!


    Normalerweise kopiert ein recording-hook bei/nach Aufnahme die Bilder aus dem epgimages-Pfad in den Aufnahmepfad, denn im epgimages-Pfad wird ab und an aufgeräumt und die Bilder würden verloren gehen.

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

  • ja, sofern die verwendete Distribution ein solchen Skript mitbringt, ansonsten muss man selbst eines erstellen

  • Zitat

    Geht um Aufnahmen nehm ich an?!


    Ja.


    Zitat

    Normalerweise kopiert ein recording-hook bei/nach Aufnahme die Bilder aus dem epgimages-Pfad in den Aufnahmepfad


    Muß man sich den selber basteln oder gibt's den schon irgendwo fertig?


    Zitat

    denn im epgimages-Pfad wird ab und an aufgeräumt und die Bilder würden verloren gehen.


    Das war mir schon klar, sonst hätte ich den Pfad ja einfach auf den epgimages Pfad setzen können aber wenn ich nach 3 Monaten eine Aufnahme ansehe habe ich dann auch verloren.:-)

    Blog


    VDR1 (Server): Gigabyte Z87-HD3, Intel(R) Core(TM) i7-4770S CPU @ 3.10GHz, 16GB RAM, NVIDIA GT 640 (Zotac), Digital Devices Cine V7, OrigenAE S21T, yavdr ansible an Röhre mit vga2scart

    VDR2 (Client): AsRock ION 330, yavdr-ansible auf Ubuntu 18.04 an Panasonic Beamer (HDMI)

  • Hab den recording-hook unter /usr/share/vdr/recording-hooks gefunden, danke für den Stups in die richtige Richtung!

    Blog


    VDR1 (Server): Gigabyte Z87-HD3, Intel(R) Core(TM) i7-4770S CPU @ 3.10GHz, 16GB RAM, NVIDIA GT 640 (Zotac), Digital Devices Cine V7, OrigenAE S21T, yavdr ansible an Röhre mit vga2scart

    VDR2 (Client): AsRock ION 330, yavdr-ansible auf Ubuntu 18.04 an Panasonic Beamer (HDMI)

  • Muss mal schauen, ob der auch mehrere Bilder unterstützt, ansonsten such mal im Forum. :tup

    - Client1: Thermaltake DH 102 mit 7" TouchTFT * Debian Stretch/vdr-2.4.0/graphtft/MainMenuHooks-Patch * Zotac H55-ITX WiFi * Core i3 540 * 4GB RAM ** Zotac GT630 * 1 TB System HDD * 4 GB RAM * Harmony 900 * satip-Plugin

    - Client2: Alfawise H96 Pro Plus * KODI
    - Server: Intel Pentium G3220 * DH87RL * 16GB RAM * 4x4TB 3.5" WD RED + 1x500GB 2.5" * satip-Plugin
    - SAT>IP: Inverto iLNB

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!