Beiträge von AlfredENeumann

    Letzte Rückmeldung von mir: Kaum ruf ich die Funktion zum Aus-/Einblenden an der richtigen Stelle auf, funktionierts auch. Also viel Lärm um nichts, sorry! :kissing_face:

    Ist ja auch blöd, dass die Computer nicht mitdenken und immer das machen, was man ihnen sagt, und nicht das, was man eigentlich will :winking_face:

    Hallo ihr 2,

    danke für eure Antworten - hat bis jetzt leider nicht geholfen.

    Ich nutze eine extra class für LCD: class LCDScreenV33(Screen)

    Dort ist auch die o.a. "showHideLcdCover" definiert.

    Die rufe ich dann vom Hauptscreen aus auf.


    Den Versuch "self.session.summary["coverArt"].hide()" direkt im Hauptscreen hab ich auch gemacht, hilft leider nix.


    Vorschlag von alpha: Sieht bei mir fast gleich aus:

    lcdCoverPixmap = LoadPixmap('/tmp/coverlcd.png')

    self["coverArt"].instance.setPixmap(lcdCoverPixmap)


    Das "cached=False" bei LoadPixmap hab ich mal eingefügt, kein Effekt.

    Wenn ich "self.summaries[0]["coverArt"]" einfüge (statt nur self["coverArt"]), erhalte ich "list index out of range"


    Sehr suspekt alles.... Wird wohl wieder irgendwo der Fehler 50 sein (50 cm vor dem Bildschirm). :thinking_face:

    Trotzdem danke für eure Hilfe-Vesuche! :thumbs_up:

    Grüsse

    Alfred


    Edit: Eben habe ich festgestellt, dass das wahrscheinlich schon die ganze Zeit funktioniert. Tatsächlich blende ich das Cover aus, wenn ich nochmal einen Unter-Screen aufrufe - nur dort soll es dann im Display weg sein.

    Und jetzt merke ich erst, dass, wenn ich den Unterscreen verlasse und wieder im Hauptscreen bin, das Cover erst dann ausgeblendet ist. Also liegts nicht an der Funktion an sich, sondern an irgendeinem falschen Aufruf meinerseits.... :loudly_crying_face::loudly_crying_face::loudly_crying_face:

    Hi zusammen,

    ich hätte da mal gern wieder ein Problemchen, bei dem ich trotz vieler Versuche nicht weiterkomme.


    Ich zeige im Display u.a. auch ein Cover an; das Coverbild selbst wird im plugin immer wieder neu berechnet und nach /tmp/ geschrieben. Funktioniert alles auch problemlos, und die xml ist auch sehr einfach.

    Aber jetzt mein Problem: Für bestimmte Zustände will ich das Cover ausblenden und nur noch Text anzeigen. Kein Problem, dachte ich, ich blende ja auch in meinen sonstigen Screens diverse pixmaps einfach mit .show() und .hide() ein und aus.

    Aber beim Display scheitere ich da kläglich. Ich hab schon ewig rumprobiert, die Funktion wird definitiv bearbeitet, aber es passiert einfach nichts. Kennt ihr das?

    Code
    self["coverArt"] = Pixmap()
    .
    .
    def showHideLcdCover(self, show):
        if 'cover' in config.plugins.musicplayer.LcdMode.value:
            if show: self["coverArt"].show()
            else: self["coverArt"].hide()


    Gibts da beim Display womöglich einen Trick, den ich nicht kenne? Dachte bis jetzt eigentlich, dass das im Display ein Screen ist wie jeder andere.

    Danke und Grüsse

    Alfred

    Hi zusammen,

    Wenn ich auf die "Help"-Taste drücke, wird mir für "Timeshift beenden" (müsste ja die Stop-Taste sein) die TV-Taste angezeigt.


    Ich habe schonmal mit der rcpositions.xml rumgespielt, da ändert sich bei Änderung der Positionen für die Stop-Taste gar nichts. Scheint also nicht an der rcpositions zu liegen, sondern an deren Auswertung. Und da habe ich keine Ahnung, wo die stattfindet, sonst würde ich da mal suchen.


    Nicht tragisch, aber unschön.


    Nach einer kurzen Diskussion mit dhwz im NN2-Board sieht es für mich so aus, also ob da ein Fehler im timeshift-code vorliegt; laut dhwz wohl eine irgendwo ein Doppelbelegung (in der HelpableActionMap? )

    Ich denke zumindest nicht, dass es Absicht ist, dass mit "TV" timeshift beendet wird. Und wenn doch, ist es zumindest unschön, dass eine Hilfe für die Stop-Taste auch in anderen (eigenen) Plugins nicht angezeigt werden kann, bzw. dass diese immer auf die TV-Taste gemappt wird.


    Grüsse

    Alfred

    Jetzt antworte ich mir mal selbst:

    Mit (wieder mal) Hilfe von Sven H haben wir einen "Würgaround" gebastelt. Jetzt nutze ich startDecode(pic, False) synchron und kann dann mit picload.getData(pic) feststellen, dass das Bild korrupt ist (None wird zurückgegeben).

    Nachteil dieser Geschichte: In OE2.0 funktioniert das synchron nicht, so dass ich auch hier wieder 2gleisig fahren muss. In 2.0 wird die Callback-Funktion auch bei korruptem Bild aufgerufen und kann dort auch ausgewertet werden.


    Wurde da in DreamOS etwas "verschlimmbessert"? Oder war es Absicht und hat seine Gründe, dass die callback-Funktion von startDecode() bei korruptem Bild nicht mehr aufgerufen wird?

    Grüsse

    Alfred

    Hi zusammen,

    folgender (wohl Standard-) Code ist im Einsatz:


    Wenn ich mit ePicLoad.startDecode(picName) ein Bild lade, wird dann auch self.finish_decode aufgerufen, wie es sich gehört.

    Ist das Bild allerdings korrupt, wird finish_decode (natürlich) nicht aufgerufen. Und: Wenn ich dasselbe korrupte Bild oft hintereinander mit StartDecode() aufrufe, schmiert die Kiste irgendwann komplett ab, oft sogar so, dass ich nichtmal mehr mit telnet draufkomme - nur noch Netzschalter.


    Weils manchmal einen crashlog gibt, in dem dann sowas steht wie

    vermute ich mit meinem begrenzten Halbwissen, dass der wiederholte Aufruf von StartDecode() mit dem korrupten Bild jedesmal Speicher belegt, der dann nicht mehr freigegeben wird.


    Mit journalctrl sehe ich

    Meine Fragen an die Spezialisten:

    1. Liege ich mit meinen Vermutungen überhaupt richtig?
    2. Wie kann ich das im Code abfangen? Gibt es irgeneine Möglichkeit, im Code das auch rauszukriegen, was mir das journalctrl anzeigt?
    3. Falls meine Vermutung mit dem nicht freigegebene Speicher richtig ist: Wie kann ich den wieder freigeben?

    Danke und Grüsse

    Alfred

    Hi Reichi,

    gibts irgendwelche Erkenntnisse bzw. die Chance, dass du da noch was änderst? Habs eben nochmal getestet, nach wie vor dasselbe, eher noch schlimmer. Ich hab jetzt gesehen, dass es doppelte Einträge auch bei t_artists gibt - kann aber nicht beschwören, dass das wirklich neu ist, vielleicht ists mir damals einfach nicht aufgefallen.

    Grüsse

    Alfred

    ok, danke für die Reaktion. Und, siehst du irgendeine Chance, das zu "reparieren"?
    Ich habe mittlerweile zum Testen Kodi auf dem PC installiert, da ist alles perfekt. An den Tags wirds also nicht liegen....
    Und nochmal der Hinweis, falls du dich mal Zeit findest, dich auf die Suche zu machen: Auch bei "Year" steht manchmal der doppelte Eintrag drin, allerdings da ohne das fehlende letzte Zeichen, also z.B. "2007;2007".

    Danke und Grüsse

    Alfred

    Hallo zusammen,

    ich habe mal versucht, den DLNA-Server der DM920 zu nutzen. Funktioniert prinzipiell auch, allerdings habe ich komische Einträge in der Datenbank; teilweise sind die Titel doppelt (doppelter Eintrag ohne letztes Zeichen), teilweise auch das Jahr. Darauf habe ich die DB mal gelöscht und nur eine einzige Audio-CD eingelesen. In diesem Beispiel kein doppelter Eintrag beim Jahr.

    Denke nicht, dass es an den Tags liegt, hab aber zur Sicherheit noch einen Screenshot von Mp3Tag angehängt.

    Hat jemand eine Idee, oder ist es wieder der berühmte Fehler 50 (50cm vor dem Bildschirm) ?


    Der Fairness halber: Ich nutze normalerweise das newnigma Image und habe dort auch schon angefragt. Da ich aber inzwischen ausprobiert hab, obs mit dem Original-Image anders ist (dreambox-image-deb-dm920-20211029.tar.xz), hab ich das heute geflasht. Genau dasselbe..... :loudly_crying_face:


    Danke und Grüsse

    Alfred

    Hallo zusammen,

    nachdem ich jetzt schon wieder 2 Tage am Suchen und Probieren bin, hab ich mich entschlossen, hier wieder mal nach Hilfe zu fragen.


    Folgenden Eintrag habe ich in der ConfigSubsection():

    Nun will ich - z.B. wenn "custom" ausgewählt wird, aber irgenwelche wichtigen Elemente fehlen, den Eintrag "custom" löschen. Dies soll aber erst im ConfigScreen passieren, wenn der Eintrag tatsächlich angewählt wird, damit ich auch mitteilen kann, welche Datei fehlt.

    Also kurz, nach meiner Prüfung mit negativem Ergebnis sollte das so aussehen:

    ich hab in der config.py auch getChoices() und setChoices() gefunden und damit experimentiert, komme aber einfach zu keinem Ergebnis.

    Ich tippe mal wieder auf menschliches Versagen, oder geht das wirklich nicht?


    Zur Klarstellung, damit ihr nicht meint, ihr müsstet eine Komplettlösung bieten: Das Feststellen, dass der entsprechende Eintrag gewählt ist, und die Überprüfung funktionieren, es geht also ausschliesslich um das Löschen oder Ändern der Option (ändern z.B. in N/A).


    Danke!

    Alfred


    Nochmal hi zusammen,

    nicht mehr notwendig, sich Gedanken zu machen - es sei denn, es gibt eine SEHR einfache Lösung.

    Ich habe mir mittlerweile einen gut funktionierenden Würgaround gebastelt: Wenn der ausgewählte Eintrag fehlerhaft ist, sende ich meine Nachricht per Messagebox, und sende anschliessend einfach den entsprechenden keyLeft bzw. keyRight zum ConfigListScreen.

    Kommando zurück: Der Würgaround wird doch komplizierter als gedacht, wenn ichs bis zum Ende bearbeite - muss mir ja auch merken, was ich schon geprüft habe....

    Hi, jetzt bin ich zum Testen gekommen - funzt (natürlich :smiling_face_with_halo: ) 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! :thumbs_up: 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. :thumbs_up::thumbs_up:

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

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