[Announce] SkinDesigner 0.0.1

  • Moin,


    nach ziemlich genau einem halben Jahr Entwicklungszeit freue ich mich, euch mein neuestes Plugin, den Skindesigner, in der Version 0.0.1 vorstellen zu können. Das Plugin ist auf VDRDeveloper.org verfügbar, per Git bekommt man es mit:


    Code
    git clone git://projects.vdr-developer.org/vdr-plugin-skindesigner.git


    Wichtig zu verstehen ist: das Plugin ist kein Skin! Das Plugin ist viel mehr eine Skinning Engine, die auf xml Files und Graphiken basierte Skins darstellt. Also in etwa das, was text2skin auch macht, jedoch mit allen Features, die moderne Skins bieten:


    • true color Unterstützung
    • Unterstützung der Menükategorien, so dass eigene Darstellungen für die verschiedenen Menüs (Hauptmenü, Setup, Schedules, Channels, Timers, Recordings) möglich sind
    • Scaling des TV Bilds
    • Fade- und Scroll Effekte
    • Image Caching
    • Scraper2VDR Unterstützung
    • Tabbed Views in den Detailansichten
    • EPGSearch Integration für Wiederholungen und Timerkonflikte
    • Remotetimers Integration
    • ...


    Das Plugin trennt komplett die Logik von der Ausgabe, sodass eigene Skins vollständig über XML Files mit einer entsprechenden "SkinDesigner XML Syntax" und dazu passenden Graphiken erzeugt werden können. Ich habe dem Plugin quasi als Proof of Concept zwei Skins beigelegt: zum einen den MetrixHD Skin, zum anderen habe ich nOpacity Freestyle "nachgebaut". Für MetrixHD habe ich mal ein paar Screenshots angehängt, der nOpacity Style ist ja schon ausreichend bekannt ;)


    Zur Installation ist alles nötige im README beschrieben. Bitte die Hinweise zu den Channel Logos beachten. Des Weiteren benutzt MetrixHD "VDR Open Sans" als Schriftart. Wer diese Schrift noch nicht auf seinem System hat, sollte diesen Font installieren, er ist in den Sourcen unter fonts/ beigelegt. Ansonsten wird die im VDR OSD Menü eingestellte Default Schriftart benutzt, was gegebenenfalls ein bisschen Scheisse aussehen könnte ;)


    Skindesigner basiert mehr oder weniger auf dem nOpacity Code, allerdings ist im Laufe der Entwicklung nicht mehr besonders viel davon übrig geblieben...es ist also durchaus Wahrscheinlich, dass sich noch einige Bugs verstecken. Deshalb wäre es erst mal gut, wenn Ihr das Plugin intensiv mit den beinhalteten Skins testet und die Bugs fleissig reportet...wie immer nicht hier im Announce Thread, sondern entweder in einem eigenen Thread oder als Ticket auf vdrdeveloper.org.


    Läuft das ganze erst mal so weit stabil, wird es natürlich erst richtig interessant, wenn einige von euch sich daran versuchen, eigene Skins zu erstellen. Ich werde demnächst eine Doku der Skindesigner "API" bzw. der "SkinDesigner XML Syntax" erstellen, zur Zeit ist der Sourcecode die einzige Dokumentation. Prinzipiell sollte man durch anschauen der existierenden XML Files eigentlich auch alles verstehen können, das wäre aber ein bisschen unübersichtlich ;) Über die XML Files ist aber wirklich das komplette Aussehen eines Skins steuerbar, der gestalterischen Ader sollten kaum Steine in den Weg gelegt sein. Ich würde mich freuen, wenn sich demnächst ein paar mutige kreative Köpfe finden, die Lust darauf haben, einen eigenen Skin zu erstelllen, die "Pioniere" bekommen natürlich von mir besondere Unterstützung ;)


    Jo...dann erst mal viel Spass mit dem neuen Plugin und testet mal fleissig...Ciao Louis


    MetrixHD Channel Switch
    MetrixHD Main Menu
    MetrixHD What's on now
    MetrixHD Recordings
    MetrixHD TVGuide Theme

  • Du bisch ja en geile Siech. :D


    Da hab ich doch gleich mal was zu tun zum Samstag. Klingt vielversprechend!


    EDIT: Bekam noch einen Fehler beim Kompilieren, was sich durch manuelles erstellen einen "po"-Verzeichnisses fixen lies.

    - 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

    Einmal editiert, zuletzt von TheChief ()

  • War das der Fehler?

    Code
    g++ -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector --param=ssp-buffer-size=4 -D_FORTIFY_SOURCE=2  -O3 -fPIC -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -Wl,-O1,--sort-common,--as-needed,-z,relro -shared skindesigner.o config.o setup.o designer.o displaychannel.o displaymenu.o displaymessage.o displayreplay.o displaytracks.o displayvolume.o libcore/pixmapcontainer.o libcore/fontmanager.o libcore/imagecache.o libcore/imagemagickwrapper.o libcore/imagescaler.o libcore/helpers.o libcore/imageloader.o libcore/timers.o libtemplate/globals.o libtemplate/parameter.o libtemplate/template.o libtemplate/templateview.o libtemplate/templateviewelement.o libtemplate/templateviewlist.o libtemplate/templatepixmap.o libtemplate/templateviewtab.o libtemplate/templatefunction.o libtemplate/templateloopfunction.o libtemplate/xmlparser.o views/view.o views/displaychannelview.o views/displaymenurootview.o views/displaymenuview.o views/displaymenulistview.o views/displaymenuitemview.o views/displaymenuitemcurrentview.o views/displaymenudetailview.o views/displaymenutabview.o views/displaymessageview.o views/displayreplayview.o views/displayvolumeview.o views/displayaudiotracksview.o -lMagick++-6.Q16HDRI -lMagickWand-6.Q16HDRI -lMagickCore-6.Q16HDRI  -lxml2 -lz -lm -ldl -o libvdr-skindesigner.so
    xgettext -C -cTRANSLATORS --no-wrap --no-location -k -ktr -ktrNOOP --package-name=vdr-skindesigner --package-version=0.0.1 --msgid-bugs-address='<see README>' -o po/skindesigner.pot `ls setup.c displayvolume.c config.c designer.c displayreplay.c displaymenu.c displaychannel.c skindesigner.c displaymessage.c displaytracks.c`
    xgettext: Ausgabedatei »po/skindesigner.pot« kann nicht erstellt werden: Datei oder Verzeichnis nicht gefunden
    Makefile:134: recipe for target 'po/skindesigner.pot' failed
    make: *** [po/skindesigner.pot] Error 1

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Ja genau. Einfach ein po-Verzeichnis erstellen.

    - 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

  • Moin,


    was ich vergessen habe: es gibt auch ein kleines Update für scraper2vdr...ich habe einen API Call ergänzt, damit auch bei laufenden Aufnahmen Banner und Poster angezeigt werden können. Wer das mag, also auch mal scraper2vdr updaten.


    Ciao Louis

  • Nach anfänglichen Schwierigkeiten geht nun alles. Sieht schick aus! Super Arbeit!

    - 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

  • Moin,

    Sieht schick aus! Super Arbeit!


    Danke für das Lob...aber um das aussehen geht es primär gar nicht ;) Wichtig ist, dass das ganze stabil und ausreichend performant läuft...ich lade zwar den Skin zu beginn komplett in den Speicher, aber während der Darstellung muss doch so einiges berechnet werden, was bei einem nativen Skin aufgrund der fehlenden Generik nicht notwendig ist. Schaumer mal... ;)


    Ciao Louis

  • PS: und noch als kurzer Hinweis: sollte nach Auswählen vom skindesigner als Skin LCARS angezeigt werden, dann läuft irgendetwas beim Laden des Skins schief. Einfach mal ins Log schauen, dort sollte recht genau stehen, was in die Hose geht...


    Ciao Louis

  • Danke für das Lob...aber um das aussehen geht es primär gar nicht Wichtig ist, dass das ganze stabil und ausreichend performant läuft...ich lade zwar den Skin zu beginn komplett in den Speicher, aber während der Darstellung muss doch so einiges berechnet werden, was bei einem nativen Skin aufgrund der fehlenden Generik nicht notwendig ist. Schaumer mal...


    Ciao Louis


    Bei mir läufts, auch aureichend performant.


    Bei remotimers, tvscraper, signalinformationen und co. braucht das Hauptmenü aber schon einen Moment, wenn man beispielsweise vom Programm zurück ins Hauptmenü wechselt. Dann sieht man ca. 0.5 Sekunden nur die Scrollbar. Mich störts nicht weiter und für die 0.0.1 gibts nichts zu meckern.

    - 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


  • Bei remotimers, tvscraper, signalinformationen und co. braucht das Hauptmenü aber schon einen Moment, wenn man beispielsweise vom Programm zurück ins Hauptmenü wechselt. Dann sieht man ca. 0.5 Sekunden nur die Scrollbar. Mich störts nicht weiter und für die 0.0.1 gibts nichts zu meckern.


    Das wird wohl remotetimers und ggf. auch das Prüfen auf Timerkonflikte per epgsearch sein...für remotetimers habe ich einen Patch von Uwe für nOpacity drinn, der das ganze asynchron abwickelt, das sollte eigentlich nicht groß reinhauen. Den Patch hatte CKOne auch schon ewig laufen, und er hat ihn für gut befunden. Bei vielen Timern kann allerdings das prüfen auf Timerkonflikte ein bisschen dauern. Wieviele Timer hast du denn? Vielleicht sollte ich diese Info cachen...


    Ciao Louis

  • Im Moment 5 aktive Timer. Muss mal mit nopacity vergleichen. Aber wie gesagt, stören tuts nichts.


    Bei fehlenden EPG Infos werden übrigens noch die Variablen angezeigt, z.B. {start} {title}

    - 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

    Einmal editiert, zuletzt von TheChief ()

  • Boah, das ist ja genial.


    Ohne bisher irgendwas angeschaut zu haben. Wie stark unterscheidet sich die Syntax von der text2skin-Syntax?
    Ich spiele mit dem Gedanken den ein oder anderen text2skin Skin zu konvertieren. Oder eventuell (je nach Aufwand) auch einen Konverter in Perl zu implementieren.

  • Moin,

    Boah, das ist ja genial.


    Ohne bisher irgendwas angeschaut zu haben. Wie stark unterscheidet sich die Syntax von der text2skin-Syntax?
    Ich spiele mit dem Gedanken den ein oder anderen text2skin Skin zu konvertieren. Oder eventuell (je nach Aufwand) auch einen Konverter in Perl zu implementieren.


    hmmm, keine Ahnung, ich habe mir die text2skin Syntax nie angesehen...ich befürchte aber, dass das nicht so trivial sein wird, ich denke, da ist z.B. anthra schneller per Hand nachgebaut. Bei einer vorhandenen Vorlage inkl. Graphiken geht das eigentlich recht zügig, ich habe für das nachbauen des nOpacity Skins ca. 6h benötigt. Ok, ich wusste direkt so in etwa, was ich zu tun hatte ;) Aber ich denke, da kommt man recht schnell rein.


    Ciao Louis

  • Herzlichen Glückwunsch zum Release, krasse Geschichte mit der du da kommst Kumpel: hast ja nicht mal uns vorher reinschauen lassen. :mua


    Alle Daumen hoch von meiner Seite, bin gespannt was die Skinner raus basteln - bei soner tollen Engine kommt bestimmt auch tomas wieder auf den Geschmack ;)


    PS: Der remotetimers patch läuft hier btw immer noch stabil, kannst du auch gern langsam mal ins nopacity einchecken.

    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



  • Oh Mann!!! Ihr seid doch echt alle bescheuert!!! Da denkt man man hat soweit mal ruhe und dann haut jemand wieder so nen burner raus!!!
    Jetzt muss ich doch wieder Stundenlang am VDR rum spielen :D :D


    Meine Frau wird wieder fluchen :mua


    Ich hab mal kurz reingeschaut, scheint mit meiner Hardware flüssig zu laufen. Geiles Teil Louis !!! Alle Daumen hoch :tup :tup


    EDIT:
    Kurze Kritik: den Namen finde ich etwas irreführend. Klingt nach nem externen Proggi um Skins zu basteln

    Gruß Patrick


    [size=8]* Meine NeverEndingProjects ;) *


    vectra --- glasslike ---

  • Kurze Kritik: den Namen finde ich etwas irreführend. Klingt nach nem externen Proggi um Skins zu basteln


    Geht mir genauso, z:B. skinengine fänd ich besser


    vdr-User-# 755 to_h264 chk_r vdr-transcode github

  • Aber ich denke, da kommt man recht schnell rein.


    Ich habe es mal überflogen. Sieht recht übersichtlich aus. Ich versuche mich morgen mal an NarrowHD.
    Der ist simpel und als Einstieg ganz gut geeignet. Sollte mir daran nicht schon die Lust vergehen, würde ich auf lange Sicht alle vorhandenen Skins portieren.


    Wenn also jemand bereits angefangen hat, oder in Kürze anfängt einen vorhandenen Skin zu portieren, wäre es praktisch, wenn er sich hier mal meldet.
    Damit keine Arbeit doppelt gemacht wird.

Jetzt mitmachen!

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