Posts by AlfredENeumann

    Hi, jetzt bin ich zum Testen gekommen - funzt (natürlich :saint: ) genauso wie meine einfache Abfrage auf eslider, und wenn das für noch etwas mehr Sicherheit sorgt, ist das auch kein Fehler. Einzige Änderung, die ich noch eingebaut habe: Da ich beim Loggen gesehen habe, dass schon sehr viele Renderer gefunden werden, hab ich ein break eingebaut, sobald die Progressbar gefunden wurde.

    Wieder vielen Dank! :thumbsup: Wo kommt man denn an die Infos, die zu so einem Wissen führen???

    Schon wieder danke. Zum Weiterlernen ist das sicher hilfreich. Aber für mein aktuelles Problem wird es wohl sogar reichen, wenn ich nur auf den eslider ohne weitere Attribute abfrage, denn wenn das alles so funktioniert, wie ich mir das vorstelle, ist ja dauerhaft nur noch 1 Skin aktiv, in dem ich diese Aus- und Einblendaktion verwende - und da gibt es definitiv auch nur 1 eslider. Und dann sollte doch das reichen (funktioniert, eben getestet). Oder übersehe ich da etwas?


    Nein, ist halt nicht nur für mich - Yamp Music Player nennt sich das Ding, ursprünglich mal von JohnHenry, seit ein paar Jahren von mir weiterentwickelt, und es gibt auch einen User, der schon viele Skins dafür gemacht hat. Und den will ich natürlich ungern in seiner Kreativität einschränken.

    Wobei - während ich das schreibe, kommt mir grad eine Idee, die auf deiner aufbaut: Ich könnte ja noch ein "Dummy-Widget" einbauen, in das der Skinner die verwendeten Werte für position, size und color reinschreibt und die ich dann zum Vergleich verwende. Ist zwar ein bisschen "von hinten durch die Brust ins Auge", aber in der Richtung werd ich jetzt mal testen....


    Eine Möglichkeit, nach render = "Progress" zu suchen, gibts wohl nicht?

    Danke dir. Aber schade: Bei mir klappt das nicht. Obs an OE2.0 oder an newnigma liegt, kann ich nicht beurteilen. Offensichlich wird myName bei keinem der widgets als gültiges Attribut erkannt. Wird also wohl nix bei mir. Danke dir trotzdem für deine Hilfe! Gelernt hab ich durch diese Aktion trotzdem wieder einiges. :thumbup::thumbup:

    Muss ich wohl bei meiner weniger eleganten Open-Close-Lösung bleiben, es sei denn, jemand hat noch eine Idee für OE2.0...

    Ganzen Screen auf .hide() setzen: Ja, genau das mach ich im Moment, wenn ich das Video ohne Info als Fullscreen sehen will. Wenn dann zusätzlich die Titel-Infos sehen will, blende ich den Screen wieder ein, mit allem unsichtbar, was ich sonst nicht brauche. Und jetzt kommts: Wenn ich NUR Lyrics (eine Zeile, Karaoke like) sehen will, muss ich bis jetzt eben einen extra Screen öffnen, in dem nur die Karaoke-Zeile drin ist - aber eben mit dem ganzen Schwanz dran, Tastenbedienung, Spulen, Springen, Menü usw.


    Und wenn ich es eben schafffen würde, auch alle "CurrentService"-Elemente bei Bedarf aus- und wieder einzublenden, käme ich mit einem einzigen Screen zurecht. Dann würde bei Lyrics eben alles ausser der Lyrics-Zeile ausgeblendet. Nochmal: Nicht unbedingt notwendig, es funzt im Moment auch so, aber der Ehrgeiz der Vereinfachung (und des tieferen Verständnis) hat mich gepackt.


    Zum pprint: Hab auch bei meinen Versuchen schon jede Menge mitgeloggt bei den "downstream-elements", bin aber nicht dahintergekommen, welches attribut ich bei der progressbar nutzen könnte, um die rauszufinden. Da fehlt wohl doch noch etwas Hintergrundwissen.... :/:/

    and: seagen: You are guessing wrong. I am working (playing ? ) on a music-player-plugin, one focus is that this player also is able to play music videos. And on these videos, sometimes I want to have the fullscreen video without any other information, and sometimes I want to see the information (title, progress, next song ....).

    Right now, this is working already, as I mentioned earlier, with a special additional screen for video with Info, and another special additional screen with (Karaoke-style) lyrics. The only reasons why I am asking these questions and doing these trials is that I am looking if there is a more elegant solution. And: to learn a bit more about handling of enigma. :/:/

    so, nun bin ich doch schneller zum Testen gekommen, als gedacht.. Super, klappt bestens (deine Methode "blau"). :thumbsup::thumbsup::thumbsup: Habs dann auch noch mit ein paar anderen Widgets getestet, alles Bestens.

    Nur hat mich dann noch der Ehrgeiz gepackt, und ich habs mit der Progress-Bar auch noch versucht:

    Da waren aber meine vielen Versuche nicht von Erfolg gekrönt. Nun erwarte ich nicht schon wieder eine mundgerechte Lösung, aber ein Tip, wo ich mich über die benötigten/verfügbaren Attribute/Parameter schlauer machen kann, wäre hilfreich.

    So oder so, schon jetzt wieder viel gelernt! Tausend Dank! :):):thumbup::thumbup:

    Jetzt melde ich mich doch nochmal - hatte mich zu früh gefreut. Das .show und .hide des "widget-screens" funktioniert zwar, allerdings scheint dann beim widget-screen manchmal das TV-Bild durch, egal, was ich bei transparent oder z-position einstelle.


    Also nächster Schritt: Nachschauen, obs mit deinem Beispiel einen ähnlichen Effekt hat. Erstes Problem: mein Image (newnigma2, OE2.0) verträgt offensichtlich bei self.myWidgetScreen = self.session.instantiateDialog(myWidgetScreen, zPosition=100) die zPosition nicht (unexpected keyword argument 'zPosition').


    Also im Code an beiden Stellen die zposition gelöscht, und das Testplugin läuft. Funktioniert auch mit Grün und Blau, aber ausgerechnet bei Gelb passiert gar nichts - also kein Gegencheck möglich.


    Dann hab ich mir gedacht, ich versuchs mal mit deiner Methode "blau", scheitere da aber wohl wieder an meiner Blödheit. Wahrscheinlich ist dann das "EventInfo(self.session.nav, EventInfo.NOW)" falsch, wenn ich an session.CurrentService kommen will. Kannst du mir nochmal einen konkreten Tip geben, wie das bei meinem Widget aussehen müsste?


    Ansonsten muss ich halt bei meinem Screen Öffnen und Schliessen bleiben, was zwar weniger elegant ist, aber zumindest auch bei mir funktioniert... :/:/

    Super, und nochmal danke. Nur schade, dass ich nicht vorher nochmal hier nachgeschaut habe - nach 2 Stunden rumprobieren hab ichs tatsächlich geschaft. Diese 2 Stunden hätte ich mit deinem Beispiel wahrscheinlich erheblich verkürzen können. Trotzdem super und prima und entschieden eleganter, als meine bisherige "Lösung" mit dem Öffnen und Schliessen des Zusatzscreens.

    Wieder einmal bestätigt sich die alte Weisheit: Wissen ist eines der wenigen Güter, das sich beim Teilen vermehrt! :thumbup::thumbup::thumbsup:

    dre : auch dir danke! Fast so mach ich das im Moment. Hatte lediglich gehofft, dass es einen einfacheren (direkten) Weg gibt, für den ich nur zu blöd bin. Aber wenn auch ihr Spezialisten sagt, das ist der einfachste Weg, bleib ich halt dabei.


    Fast so heisst, Ich öffne und schliesse den Screen mit dem Zusatzwidget bei Bedarf. Kannst du mir noch einen Tip geben, was du mit "diesen instantiierst du nd danach kannst du den gesamten Screen ein- und ausblenden" meinst? Ein- und Ausblenden wär natürlich schöner als Öffnen und Schliessen.

    Grüsse

    Alfred

    Danke dir nochmal, war aber leider (noch) nichts, aber immerhin mal ein Ansatz, mit dem ich nochmal testen konnte. :thumbsup::saint:

    Wenn ich den Namen vergebe, muss ich ja das widget auch im Init-Teil des Screens definieren. Wenn ichs als Label definiere, nämlich so, gibts einen Absturz "unsupportet attribute"

    Wenn ich stattdessen mit self["bla"] = Source() als Definition versuche, gibts den Absturz in dem Moment, wo ich .show() aufrufe:

    Der Vollständigkeit halber (falls du überhaupt noch Lust hast) nochmal die komplette Definition des widget im Screen:

    Und nochmal zur Klarstellung: Wenn ich name="bla" und dann natürlich auch die Definition im Code weglasse, funzt das widget problemlos, aber ich kann es halt nicht aus- und einblenden.

    Das widget ist innerhalb eines Screens und soll eben (versuchsweise mal nur per Drücken einer Farbtaste) ausgeblendet und auch wieder eingeblendet werden. Wie schon gesagt, mit allen anderen widgets (Label usw.) geht das problemlos über .show() und .hide(), aber beim source="session.CurrentService" scheitert das ja schon daran, dass das Ding keinen Namen hat (wenn ich name= "myname" hinzufüge, geht gar nichts mehr, bzw. dann muss ich es ja im Code definieren und ich weiss dann nicht, wie ich das widget im Code definieren soll. Mit self["myname"] =Label gehts auf jeden Fall nicht.... :(

    Mir ist schon klar, dass das menschliches Versagen ist, aber genau deswegen bitte ich ja um Tips...

    Hi zusammen,

    ich brauch eure Hilfe - steh komplett auf dem Schlauch. Alles Lesen und Ausprobieren hat mich bis jetzt nicht weitergebracht... =O=O

    Ich möchte ein widget wie oben bei Bedarf per Code ausblenden. Da das widget keinen Namen hat, kann ich sowas wie ".hide()" und ".show()" (was bei anderen widgets ja geht) nicht anwenden. Dasselbe gilt für <convert type="ConditionalShowHide" />

    Oder blick ichs mal wieder nur nicht?

    Danke und Grüsse, und bleibt gesund!

    Alfred

    PS: OE 2.0, falls das eine Rolle spielt

    Hi zusammen,
    steht grad etwas auf dem Schlauch. Wie kann ich im Plugin die widgets mit session.CurrentService , also z.B.

    aus- und einblenden? Habs schon auf alle möglichen Arten ( show()/hide(), name= vergeben, <convert type="ConditionalShowHide" /> ) versucht, aber komme einfach nicht weiter.


    Wahrscheinlich ist die Lösung mal wieder simpel...
    Danke!
    Alfred

    und noch ein Update:
    Nachdem ich meinen Workaround nun fertig hatte und alles so funktionierte wie es soll, habe ich noch einmal den Gegentest (Aufruf des Sub-Screens mit InfoBarSeek) gemacht, und hab erstmal an mir gezeweifelt: Es funktionierte auch da.


    Dann jedoch hab ich festgestellt, dass der Fehler wieder sporadisch auftritt, vor alllem (aber nicht nur) bei Wechsel von Videos. Ich kann es mir nur dadurch erklären, dass es davon abhängt, wie stark die Box momentan beschäftigt ist (Timing-Problem?), denn die 7020HD ist ja nicht grade die schnellste.

    Jetzt antworte ich mal selbst, da ich einen Workaround gefunden habe. Funktioniert zwar, ist aber unschön. Deswegen: Wenn jemand eine Lösung des Problems aus dem 1. Post hätte, wäre ich sehr verbunden...


    Für beide Workarounds rufe ich den 2. Screen ohne InfoBarSeek auf, so dass die Tasten zum Springen im Unter-Screen nicht mehr von InfoBarSeek bearbeitet werden.


    Workaround-Versuch 1 war, im Hauptscreen eine Funktion sendRemoteKey(self, key) zu erstellen und dort per eActionMap keypressed die Tastendrücke zu simulieren (abgekupfert vom Webinterface). Im Unter-Screen rufe ich dann diese Funktion bei Druck auf eine der Tasten mit self.parent.sendRemoteKey(key) auf.
    Das erschien mir elegant, musste jedoch feststellen, das enigma dann diese Tastendrücke auch wieder dem Unterscreen zuordnet; also genau dasselbe Ergebnis, eine Lösung dafür habe ich nicht gefunden. Vielleicht gibts ja eine?? Wäre mir lieber als der Workaround 2.


    Workaround-Versuch 2 ist nun (und der funktioniert): Im Hauptscreen habe ich eine Funktion seekOwn(self,key). Im Unterscreen rufe ich die auch wieder bei Tastendruckauf mit self.parent.seekOwn(key). Die Funktion führt dann die seekRelative()-Funktion aus.


    Das funktioniert zwar, ist mir aber eigentlich zuwider, denn damit programmiere ich ja wieder eine Funktion, die eigentlich schon vorhanden ist. Wenn mir also jemand erklären kann, wie ich das eigentliche Problem ohne Workaround lösen kann, bin ich dankbar. Oder aber jemand kann mir bestätigen, dass das tatsächlich ein Bug im Image ist, damit wäre mir erstmal auch schon geholfen.
    Danke Alfred

    Hi zusammen,
    bei einem Plugin(Yamp) habe ich folgendes Problem:
    Ich spiele meine Playlist im Hauptscreen ab (Musik und mp4-Videos), und alles läuft wie es soll.
    Rufe ich aber einen 2. Screen auf (Lyrics zur Anzeige der Songtexte), wird beim Wechsel zum nächsten Titel immer einer übersprungen. Ich sehe zwar kurz die Informationen zum nächsten Titel, der wird aber gar nicht angespielt, sondern direkt übersprungen.


    Als Ursache habe ich herausgefunden, dass offensichtlich die Positiionsdaten, die ich mit seek im Code des Hauptscreen abrufe, beim Wechsel des Songs nicht aktualisiert werden; als Position steht dann immer noch die End-Position des alten Titels drin (sh. log).


    Interessant dabei ist: Den 2. Screen definiere ich mit class YampLyricsScreenV31(Screen, InfoBarSeek); dabei benötige ich InfoBarSeek ausschliesslich, um auch aus diesem Skin im Titel springen zu können.
    Lasse ich den Parameter InfoBarSeek und die zugehörige Initialisierung weg, funktioniert alles wie es soll - es wird nichts übersprungen.


    Das Verhalten ist mit meinem eigentlichen Image (newnigma) genau dasselbe wie mit dem Original DMM Image. Versuchsweise habe ich es auch mal mit OpenATV versucht, da tritt es nicht auf.


    Hat jemand eine Idee? Spricht ja manches dafür, dass es ein Problem des Images ist, aber einen persönlichen Fehler will ich natürlch auch nicht ausschliessen. Falls selbstgebautes Problem: Kennt jemand die Lösung? Falls Image-Problem, gibts da einen Workaround?
    Ein theoretischer Workaraound wäre, die Spultasten nicht über InfoBarSeek im Neben-Screen zu bearbeiten, sondern die Tastendrücke an den Hauptscreen weiterzugeben. Aber auch da habe ich keinen Plan, ob und wie das gehen könnte.


    Sollte jemand den kompletten Code anschauen wollen, ich hab ihn in diesem Thread schonmal angehängt. Falls Bedarf an mehr Infos da ist, jederzeit.


    Danke und Grüsse
    Alfred


    Edit: Mittlerweile ist auch eine Rückmeldung von "meinem" Tester des Plugins auf der VU gekommen: Mit VTI-Image gibts das Problem auch nicht. Scheint also doch eher am Dream-Image (oder an meinem unqualifizierten Umgang damit ? ) zu liegen.