×

MerlinMusicPlayer2 Skindoku zu den Visualisierungen
#1
Siehe Beitrag dreamer-flt > MerlinMusicPlayer2 Skinner Dokumentation

Dokumentation zu neuen Funktionen der Visualisierung im MMP2



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:


<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:


   


<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" />
<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:



   


<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" />

<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:


<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 ...)

Developer Project Merlin



Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste