Posts by Sven H

    Er meint bestimmt die Android-Box DreamTV mini, die hier ja auch erwähnt wurde.
    Dazu hatte man doch angedeutet, dass es da eine Stellungnahme von DP geben könnte, dass sie damit nichts zu tun haben ;)

    Mit dem SkinReloader kann man live (ohne GUI-Neustart) den aktuellen Skin nach einer Änderung der Skin-Datei sofort reloaden bzw. sogar live (ohne GUI-Neustart) zu einem anderen Skin wechseln (beachte jedoch den Hinweis unten !!!).


    Die Idee zum Plugin entstand, da mich immer die vielen nervigen GUI-Neustarts gestört haben, wenn man nur mal schnell ein paar Angaben im Skin ändern wollte ;)

    Insbesondere dann, wenn man eigentlich nur die richtige Position eines Skin-Elements finden wollte, was dann am Ende doch mehr GUI-Neustarts erforderte, als anfangs gedacht.

    Im Ergebnis bietet das Plugin neben dem ursprünglich angedachten Skin-Reload jetzt sogar noch die Möglichkeit zum direkten Skin-Wechsel.


    Als kleine Zugabe kann man im Plugin auch einen einfachen Skin-Syntax-Check (xml-syntax und skin-syntax) ausführen, um schon vor dem Reload zu Fehlern informiert zu werden und nicht erst beim GS, wenn es einen xml-Parse-Error gibt oder der fehlerhafte Skin-Screen aufgerufen wird.

    (dies kann man über die Option im Plugin automatisch beim reload/change machen bzw. manuell im Plugin über die Menü-Taste)


    Auch kann man einen skinWatcher aktivieren, der dann im Hintergrund die skin*.xml's überwacht.

    (der skinWatcher kann im Plugin manuell über die gelbe Taste oder den Befehl im Erweiterungsmenü bzw. über die Option im Plugin automatisch beim Box-/-GUI-Neustart aktiviert werden)

    Dabei wird skin.xml des aktuellen skins sowie die skin_user.xml und skin_user_display.xml in /etc/enigma2 überwacht.

    Sobald eine dieser skin-Dateien geändert wurde, wird durch den aktivierten skinWatcher sofort der Skin-Reload gestartet.

    Diese Funktion sollte man mit dem Skin-Syntax-Check kombinieren, um evtl. noch vorhandene Tippfehler bereits vor dem skinreload abzufangen.

    Bisher erfolgt der skin-Syntax-Check nur für die skin.xml (die skin_user*.xml kommen evtl. noch dazu).


    Hinweis:

    Das Plugin erhebt keinen Anspruch auf eine komplett fehlerfreie Folgenutzung nach SkinReload bzw. SkinChange.

    Grundsätzlich ist e2 für solche Sachen nicht gedacht, so dass es in der Folge durchaus auch mal einen GS geben könnte.

    Daher richtet sich das Plugin grundsätzlich auch nur an Skinner und Plugin-Ersteller, die eben öfter mal den Skin neu laden wollen, um skin-Anpassungen jetzt schneller überprüfen zu können oder die Ansicht eines Plugins schnell in verschiedenen Skins überprüfen zu können.

    Das Plugin ist daher auch nicht für den Normaluser zur Alltagsnutzung gedacht !!!

    PS:

    Da der Code doch sehr mies und tricky ist, wurde das Ganze erstmal in einem .so-File verpackt ;)

    Für die mipsel-Boxen gibt es noch keine .so-Datei, weshalb es das Plugin vorerst nur für die dm9x0 und One gibt.


    Dank an die User, die mich in Vorabtests bei diesem Plugin unterstützt haben (dhwz, pclin, hilfsbereit und zombi) :thumbup:

    Ja, ich hatte das auch schon öfter in verschiedenen Screens gesehen, konnte es bisher nur nicht nachvollziehen.

    Nun hat Reichi ja ein Test-Plugin und kann die Ursache bestimmt schnell finden und fixen 8)


    e2 muss da wohl die vertikale Textposition jedesmal neu bestimmen in Abhängigkeit der itemHeight.

    Cool wäre natürlich ein .setValign() für die List - falls einer ein generelles valign=center nicht mag ;)

    Der Wert wird aber vermutlich nur verwendet, wenn man selbst keinen Wert im Skin-Screen bei der List angibt.

    Aber wenn ich zuerst die List öffne mit itemHeight="50" macht er die trotzdem hübsch, obwohl im Default Skin bei listboxcontent für "string_item_height" auch "30" angegeben ist.


    Nur dann ist danach die MessageBox vermurkst, weil sich e2 intern die verticale Textposition von itemHeight=50 gemerkt hat und dann immer wieder verwendet, egal welche itemHeight man angibt.

    Hab hier mal ein Test-Plugin zum Nachvollziehen des Problems ;)


    Je nachdem welchen Button man im Plugin nach einem GUI-Neustart zuerst drückt, sieht die Aktion beim zweiten Button dann komisch aus.

    (dazu darf aber vor dem Plugin keine andere List/MessageBox aufgerufen/angezeigt werden)

    Hallo


    Entweder ist es ein Bug oder ein Denkfehler meinerseits :P

    Aber ich hoffe, mir kann in beiden Fällen geholfen werden.


    Ich habe in einem Plugin eine List eingebunden.

    diese ist mit itemHeight="50" geskinnt.

    Nun kommt das merkwürdige ;)


    Wenn ich nach dem GUI-Neustart zuerst das Plugin mit der List-itemHeight = 50 öffne, sieht es im Plugin gut aus (Bild 1).

    Öffne ich danach eine normale MessageBox, welche mit itemHeight = 32 geskinnt ist, sieht es dort komisch aus (Bild 2).

    Das gleiche auch im SkinSelector (Bild 5).

    Öffne ich nach dem GUI-Neustart aber zuerst eine MessageBox mit itemHeight = 32, dann sieht die gut aus (Bild 3).

    Nur sieht dann im Plugin danach die List mit itemHeight = 50 komisch aus (Bild 4).


    Irgendwie scheint e2 bei der List die vertikale TextPosition (valign) nach dem ersten Aufruf irgendeiner List intern fest zu speichern und nicht mehr anzupassen.

    foxman


    Please test this version.


    changes since version 9:

    - new keys: TV--key/TV-key long, OK-key/OK-key long, up-key, down-key

    - new actions: Channel-List, ChannelList (up), Channel-List (down), About, Infobar ShowHide, SleepTimer, Manual Scan, Tuner-Config, Satfinder, Positioner Setup

    - fix Crash on play record in VideoDB


    Änderungen seit Version 0.9:

    - neue Tasten: TV-Taste/TV-Taste lang, OK-Taste/OK-Taste lang, hoch-Taste, runter-Taste

    - neue Funktionen: Kanal-Liste, Kanal-Liste (hoch), Kanal-Liste (runter), Über (About), Infobar ShowHide, Ausschalt-Timer (SleepTimer), Manuelle Kanalsuche, Tuner-Konfiguration, Satfinder, Rotor-Einstellungen

    - fix Crash beim Abspielen einer Aufnahme aus VideoDB heraus

    foxman

    Yes, i can put this only manually to the actionlist.

    Automatically for all Menu-Entries works not so good.


    Please test Version 10 beta 6 ;)


    changes since version 9:

    - new keys: TV--key/TV-key long, OK-key/OK-key long, up-key, down-key

    - new actions: Channel-List, ChannelList (up), Channel-List (down), About, Infobar ShowHide, SleepTimer, Manual Scan, Tuner-Config, Satfinder, Positioner Setup

    - fix Crash on play record in VideoDB


    Änderungen seit Version 0.9:

    - neue Tasten: TV-Taste/TV-Taste lang, OK-Taste/OK-Taste lang, hoch-Taste, runter-Taste

    - neue Funktionen: Kanal-Liste, Kanal-Liste (hoch), Kanal-Liste (runter), Über (About), Infobar ShowHide, Ausschalt-Timer (SleepTimer), Manuelle Kanalsuche, Tuner-Konfiguration, Satfinder, Rotor-Einstellungen

    - fix Crash beim Abspielen einer Aufnahme aus VideoDB heraus


    Edit:

    Dateianhang entfernt (hatte noch einen Fehler)

    z.B. um zu bestimmten Tagen/Zeiträumen (Geburtstag, Ostern, Weihnachten) bestimmte Grafiken irgendwo im Skin zu platzieren, ohne dass man das dann jedes mal händisch anpassen muss ;)


    Für die Sache mit Stunden/Minuten/Sekunden hätte ich jetzt auch nicht direkt eine Verwendung.

    Zu den Stunden könnte man evtl. im Idle-Display z.B. Sonne und Mond je nach Zeit anzeigen lassen ;)

    Hab im Post #1 die Version 0.11 hochgeladen ;)


    Änderungen in Version 0.11:

    - direkte Icon-Aktualisierung im PluginBrowsers nach Speichern im PluginBrowserIcons-Setup

    (erspart das nun unnötige Schließen und neu Öffnen des PluginBrowers zum Aktualisieren der Icons nach Änderung im Setup)

    - Erkennung von Plugins in den Auswahllisten optimiert

    - minimale Anpassung der Plugingrafik-Position in den Auswahllisten

    - HyperionControl-Plugin in die Whitelist aufgenommen

    - Setup-Texte optimiert

    - fix Crash (if PluginDescriptor.path is None)

    Man kann ja nur Tag/Monat/Jahr/Stunde/Minute angeben.


    Dein Bespiel "*/*/*/*/00", "*/*/*/*/30" wäre dann immer die erste halbe Stunde.
    Also von Minute 0 bis 30.


    An Animationen hatte ich dabei nicht gedacht, weshalb ich die Sekunden da auch nicht als Parameter verarbeitet habe.


    Hinweis:
    Bei der Ende-Zeit wird dann immer die volle Stunde bzw. volle Minute genutzt.
    Wenn keine Minute angegeben, dann wird immer 59 verwendet. Auch werden immer 59 sek gesetzt.


    Beispiel:
    Bei Ende = 23/12/2019/20 wird 20:59:59 verwendet.
    Bei Ende = 23/12/2019/20/15 wird 20:15:59 verwendet.


    Edit:

    Ich schau mir das nochmal mit den Sekunden an ;)

    Ich hatte ja direkt nach einem Neustart der Box öfter das Problem, dass die FB nicht reagiert hat.

    Nach Box-Start/GUI-Neustart reagiert manchmal die Fernbedienung nicht

    Da half auch zu 99% ein GUI-Neustart.


    Seit dem letzten Vorfall hab ich mal ein paar Plugins deinstalliert und seit dem kein Problem mehr gehabt.

    (auf Holz klopf 8) )


    In meinem e2log, wo ich damals das Problem hatte, hab ich auch sowas gefunden:

    Code
    1. Nov 21 16:50:34 dm920 enigma2[293]: WARNING removeSocketNotifier should be called from thread 293 but is called from thread 566
    2. Nov 21 16:50:34 dm920 enigma2[293]: 0xcdef8(sp=0x9eb0f970) <get_backtrace[abi:cxx11](void*, int, int)+1336>
    3. Nov 21 16:50:34 dm920 enigma2[293]: 0xdc94c(sp=0x9eb13c00) <eTimer::AddRef()+108>
    4. Nov 21 16:50:34 dm920 enigma2[293]: 0xdce34(sp=0x9eb13c30) <eMainloop_native::removeSocketNotifier(eSocketNotifier*)+60>
    5. Nov 21 16:50:34 dm920 enigma2[293]: 0xdd27c(sp=0x9eb13c58) <eSocketNotifier::stop()+164>
    6. Nov 21 16:50:34 dm920 enigma2[293]: 0xdf500(sp=0x9eb13c78) <eSocketNotifier::~eSocketNotifier()+40>
    7. Nov 21 16:50:34 dm920 enigma2[293]: 0xdf550(sp=0x9eb13c88) <eSocketNotifier::~eSocketNotifier()+16>
    8. Nov 21 16:50:34 dm920 enigma2[293]: poll: unhandled POLLNVAL for fd 361

    Gut möglich, dass dabei immer die FB-Tasten-Erkennung gekillt wird :/

    Da ich mehrere Plugins entfernt hatte, kann ich jetzt nicht wirklich sagen, welches es sein könnte.