OE2.0 - Problem mit seek() bei Aufruf eines 2. Screen

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

  • 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

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