Willkommen! Melden Sie sich an oder registrieren Sie sich.

Um schreiben oder kommentieren zu können, benötigen Sie ein Benutzerkonto.

Anmelden - oder - Benutzerkonto erstellen

MerlinMusicPlayer2 Skinner Dokumentation

  • Ich mach mal die copy&paste Waldfee, da es speziell zum Thema "wie skinne ich den MerliMusicPlayer2" bestimmt auch für die Allgemeinheit interessierende Dokus gibt.


    Cover


    Mode:


    • cover --> Einfache Coveranzeige, rechteckig
    • blendCover --> Einfache Coveranzeige, abgerundet
    • visRoundCover --> Animierte Coveranzeige, abgerundet


    Beispiel:


    Code
    1. <widget name="cover" position="1290,157" size="300,300" mode="blendCover" noCoverAvailablePic="/usr/share/enigma2/Nuke.Evo/gfx/no-cover255.png" />



    Level-Meter


    Mode:


    • standardEnigmaSlider --> schnell erklärt: hier werden die Standard-Enima2 Slider genommen (also Progressbar)...alle normalen Eigenschaften/Attribute haben Ihre Gültigkeit
    • imagesOrientationUp, imagesOrientationDown, imagesOrientationLeft, imagesOrientationRight: hier wird ein kleines Pixmap geladen, und aufgrund weiterer Attribute erstelle ich daraus das GUI-Widget (siehe Bild 1 um das Cover rum).
    • singleImageOrientationUp, singleImageOrientationLeft : hier kann man eine Pixmap verwenden (im Prinzip so wie der Standard-Enigma2-Slider), jedoch kann man über Attribute da vieles genauer Einstellen.
    • circle --> hier kann man ein Pixmap als Kreisdarstellung berechnen lassen
    • arc --> hier kann man ein Pixmap als Kreisbogen berechnen lassen

    Beispiel:


    bsp1.JPG


    Code
    1. <widget name="rms0" channel="0" pixmap="Nuke.Evo/gfx/mmpbar.png"position="403,807" size="547,20" borderWidth="0" mode="standardEnigmaSlider" maxValue="120" fadeOutTime="1600" smoothing="0.93" />
    2. <widget name="rms1" channel="1" pixmap="Nuke.Evo/gfx/mmpbar.png" position="403,841" size="547,20" borderWidth="0" mode="standardEnigmaSlider" maxValue="120" fadeOutTime="1600" smoothing="0.93" />



    VU Meter


    Mode:


    vumeter (mit opengl, deswegen nur auf der 900er, theoretisch auch auf der 7080/820, aber DMM hat da noch keinen Fix für opengl innerhalb von Enigma2)


    Beispiel:


    bsp2.png


    Code
    1. <widget name="rms0" channel="0" backgroundColor="background" zPosition="13" position="376,786" size="270,200" pixmap1="/usr/share/enigma2/Nuke.Evo/gfx/needle2.png" transparent="1" mode="vumeter" maxValue="120" smoothing="0.98" startAngle="-50" clockwise="1" vumeterLocation="0,0" vumeterAttack="0.1" vumeterAxis="135,160" />
    2. <widget name="rms1" channel="1" backgroundColor="background" zPosition="13" position="689,786" size="270,200" pixmap1="/usr/share/enigma2/Nuke.Evo/gfx/needle2.png" transparent="1" mode="vumeter" maxValue="120" smoothing="0.98" startAngle="-50" clockwise="1" vumeterLocation="0,0" vumeterAttack="0.1" vumeterAxis="135,160" />


    • pixmap1="/usr/lib/enigma2/python/Plugins/Extensions/MerlinMusicPlayer2/images/vumeter_nadel_drbest_style.png" --> hier wird die Nadel geladen, die animiert werden soll
    • maxValue --> die Anzahl der Grade , bei 90 wären das also 90°
    • smoothing --> würde ich hier sehr hoch setzen, damit die Nadel langsam abfällt
    • clockwise --> in welche Richtung soll das Bogenmaß gesetzt werden --> 1 = Uhrzeigersinn | 0 entgegen
    • vumeterLocation --> die untere(!) Position der Nadel...opengl Koordinatensystem --> (0,0) = Bildmitte, positive Werte nach unten, negative nach oben für x... y = pos. Werte rechts, negative Werte links.... Einheiten in Pixel
    • startAngle --> da ein Bogenmaß gezeichnet wird, brauchen wir den Anfangswinkel ... 0 Grad ist nun 12 Uhr, 90 Grad = 3 Uhr usw...man kann auch -Werte einsetzen...in meinem Beispiel unten habe ich "-50" gesetzt, äquivalent wäre "310"
    • vumeterAxis --> hier sollte der Achsendrehpunkt eingegeben werden --> in Pixel bezogen auf das Gesamtbild
    • vumeterLocation --> hier kann man innerhalb des Widgets noch mal die Pixmap verschieben, bei diesen Angaben ist 0,0 in der Bildmitte...+Werte nach unten/rechts, - Werte nach links/oben, in Pixel
    • vumeterAttack (default = 0.1) --> ich würde das nicht höher als 0.2 machen, bei 0.05 geht die Nadel sehr geschmeidig, aber langsam, zum Peak...


    Es wird nicht gescaled (damit die Pixel-Einheiten stimmen und man schön Grafiken drunter oder drüber legen kann...



    Screen Saver (OpenGL Visualisierungen)

    • visGLRandom --> automatisches Wechseln der GL Modes mit Alpha-Blending nach 3 1/2 Minuten (die Liste der Modes mische ich vorher, die ist also immer anders)
    • visGLDots (animierte Kreise, welche auf FFT reagieren mit Heligkeit und Größe, geblendet auf das Cover...)
    • visGLWaves
    • visGLBalls
    • visGLEclipse


    Beispiel:


    Code
    1. <widget name="cover" position="0,0" size="1920,1080" backgroundColor="#00000000" mode="visGLWaves" />


    ARM/MIPSEL Unterscheidungen


    Bedenkt bitte, das es aufgrund der verschiedenen Hardwarevoraussetzungen der Dreamboxen Limitierungen gibt, bspw. lassen sich VU Meter (die analogen Zappler) im Gegensatz zu den Level Metern nicht sinnvoll auf MIPSEL Boxen einsetzen. Deswegen wird dem Skinner die Möglichkeit gegeben für beide SoC Typen getrennte Screens im Skin zu erstellen:


    • MerlinMusicPlayer2Screen --> Basis Screen für alle Boxen, sofern nicht (wie unten aufgeführt) zwischen ARM und MIPSEL unterschieden werden soll
    • MerlinMusicPlayer2ScreenSaver --> Screen Saver für alle Boxen, sofern nicht (wie unten aufgeführt) zwischen ARM und MIPSEL unterschieden werden soll


    • MerlinMusicPlayer2Screen_ARM --> Basis Screen für ARM Boxen (900UHD, 920UHD)
    • MerlinMusicPlayer2ScreenSaver_ARM --> Screen Saver für ARM Boxen (900UHD, 920UHD)


    • MerlinMusicPlayer2Screen_MIPSEL --> Basis Screen für MIPSEL Boxen (7080HD ...)
    • MerlinMusicPlayer2ScreenSaver_MIPSEL -> Screen Saver für MIPSEL Boxen (7080HD ...)
  • (PS.: ich hoffe ich hab mich nicht vermalt) :undweg:


    So viel Notizen habe ich mir fürs Implementieren dieser Funktionalität nicht machen müssen :undweg:

    Du hast das aber nach schnellen Überblick von mir sehr gut begriffen und schön dargestellt. :topok:

  • So viel Notizen habe ich mir fürs Implementieren dieser Funktionalität nicht machen müssen :undweg:

    Du hast das aber nach schnellen Überblick von mir sehr gut begriffen und schön dargestellt. :topok:

    ja kannst mal sehen wo drauf man so alles kommt wenn man abends auf der couch paar minuten langeweile hat.

    nun sind wohl eure wenigen worte zur dokumetation auch bildlich dargestellt :trink:

  • Wo und wie muss ich diese Codes eintragen??


    Ich möchte vor allem das Cover eckig. Muss ich mir eine Datei von der Box laden editieren und wieder hoch?

  • Das ist skintechnisch gelöst

    Es geht 4eckig, rund und animiert.


    Code
    1. cover --> Einfache Coveranzeige, rechteckig
    2. blendCover --> Einfache Coveranzeige, abgerundet
    3. visRoundCover --> Animierte Coveranzeige, abgerundet


    Nur schade, daß die Zeit nicht weiter läuft, wenn Lyriks eingeblendet ist.

    Hab Lyriks links und das Cover, Titel etc rechts.

  • weis nicht ob dreamer-flt da schon ne MST-Variante gemacht hat wo das umgeschaltet wird , mußte mal warten bis er antwortet.

  • Hallo, ich bins wieder. Also ich habe im Nuke Evo\Skin.sml drei mal die zeile <widget name=cover".... gefunden ich habe in allen drei den mode=cover gesetzt und als skin_user.xml wieder zur Box geschickt. Ergebniss: keines. Muss ich die skin.xml löschen? das ich nur die skin_user.xml habe. Im MST wird mir auch angezeigt Attention Skin_user.xml found!!!


    Oder muss ich die skin_user.sml i.wie anders "aktivieren"?

  • Ja, also ich habe die skin.xml auf meinen PC geladen und die drei zeilen im Editor geändert und als skin_user.xml wieder hoch geladen. Sonst habe ich nix geändert.

  • In etc enigma2 skin_user.xml?


    Es gibt zwar seit kurzem Skinbeziefische skin_user. Da weiß ich aber nicht, wie das geht.

    Ich glaube usr share enigma2 skinname skinname_skin_user.xml