Posts by officiallyme

    wenn ich das richtig sehe werden da aber nie zwei bilder auf einmal, sprich in einer klasse gleichzeitig geladen.
    sondern ein bild ist statisch und eins dynamisch.


    bei mir sind 2jpeg jeweils dynamisch...später eventuell sogar mehr...



    seltsam. ich sehe da keinen fehler in meinem geposteten code.
    systemüberlastung wäre eventuell möglich...
    gibts ne möglichkeit eine art wait until finished einzubauen?

    danke schön :)


    habs gerade mal schnell probiert und habe es jetzt hinbekommen ein jpg zu laden.
    seltsamerweise sind die ladezeiten EXTREM unterschiedlich. und es kommt auch nicht auf die dateigrösse an.
    ein 500kB 1280x720 jpg lädt <1s und ein anderes, 550kB 1280x720 lädt 20s


    was aber partout nicht klappen will ist das laden von zwei jpeg nebeneinander. sprich an zwei positionen im screen soll ein jpeg eingebaut werden. ich kann jedes einzeln laden (indem ich im code das andere auskommentiere), aber sobald ich beide laden will kommts zum crash (ohne ersichtliche fehlermeldung).


    es muss an der def DecodeActions liegen, denn ich kann den code komplett lassen wie er ist, sobald ich in der DecodeActions ein zweites jpg aufrufen lassen will kommts zum dauerspinner und dann crash.


    hat einer ne ahnung, wie man das korrigieren könnte? hier mal der code:


    braucht man ein waitFinished oder sonstwas?

    hi,


    ich bin beim suchen nach ner lösung für mein problem auf diesen thread gestossen.


    ich versuche mein plugin dazu zu bringen ein bild an einen skin weiterzureichen.
    das funktioniert auch wunderbar mit 8bit png, aber eben nicht mit jpg oder non-8bit png. wird ja von ePixmap() nicht unterstützt.


    ich brauchs aber unbedingt für jpg.


    aktuell wirds bei mir so gemacht:


    Code
    self["FolderImageScreen"] = Pixmap()
    self["FolderImageScreen"].instance.setPixmapFromFile(folderjpg)


    nun würd ich gern folgendes erreichen:
    - so abändern, dass es auch jpg öffnet
    - das bild auf eine vorgegebene grösse skalieren (proportional)


    könnt ihr mir dabei eventuell helfen?

    p.s.: vielleicht bis wir ne lösung finden:


    wie kann ich festlegen, wie gross das bild am ende sein soll, sprich auf welche grösse es skaliert werden soll? bevorzugt möchte ich nur breite ODER höhe definieren müssen, damit das bild proportional bleibt.


    Code
    self["ZeigeBild"] = Pixmap()  self["ZeigeBild"].instance.setPixmapFromFile(bild_png)

    also ich komm nicht weiter.


    entweder die module laden dann am ende kein bild oder es kommt ein crash wegen allem möglichen, je nachdem was ich probiere. aber die meisten zeigen nichts an.


    gibt es keinen so einfachen befehl für jpgs wie für png?


    Code
    self["TVHeavenFolderImageScreen"].instance.setPixmapFromFile(folderpng)


    ich nehme mal an, dass

    Code
    self.session.open(PictureExplorer, "/tmp/OoZooNBanner.jpg")


    der aufruf im merlinexplorer ist, ich dann aber eine seiner klassen einbauen müsste?
    finde vom merlinexplorer nämlich nur die .pyc


    wenn möglich würd ichs gerne mit nem import eines enigma moduls machen.



    edit:
    hab jetzt mal

    Code
    [code]self["TVHeavenFolderImageScreen"].instance.setLoadPixmap(folderpng)

    [/CODE] probiert. auch nix.

    ich komm nicht weiter.


    habs zu dem hier geändert


    Code
    self.folderjpg = loadPic(self.list[self.index], 690, 225, self.aspect, 0, 0, 0)
    self.showPic()
    self["TVHeavenFolderImageScreen"].instance.setPixmap(self.folderjpg)


    dann kommt nur

    Code
    self.folderjpg = loadPic(self.list[self.index], 690, 225, self.aspect, 0, 0, 0) AttributeError: 'TVHeavenAudio' object has no attribute 'list'
    Quote

    Original von adenin

    Code
    self.pixmap = LoadPixmap(path + filename)


    Geht für jpg, png und bmp.


    ich hab wohl noch nen syntaxfehler :frowning_face:


    ich habs zu dem geändert:


    Code
    self["ZeigeBild"] = Pixmap()
    self["TVHeavenFolderImageScreen"].instance.LoadPixmap(folderpng)


    und dann kommt

    Code
    AttributeError: 'ePixmap' object has no attribute 'LoadPixmap'


    und wenn ichs ändere zu

    Code
    self["ZeigeBild"] = LoadPixmap()
    self["TVHeavenFolderImageScreen"].instance.setPixmapFromFile(folderpng)


    dann kommt

    Code
    self["TVHeavenFolderImageScreen"] = LoadPixmap() main thread is non-idle! display spinner! TypeError: LoadPixmap() takes at least 1 argument (0 given)


    aber logischerweise kann ich ja nicht

    Code
    self["ZeigeBild"] = LoadPixmap(folderpng)

    schreiben, bevor folderpng nicht zugewiesen wurde und das erfolgt ja erst in der subroutine, die vo def KeyOk aufgerufen wird.


    sprich, wenn ich den restlichen code mal ausblende, hab ich aktuell das und das geht nur mit png:


    Python
    def __init__(self,session):
    self["ZeigeBildScreen"] = Pixmap()
    
    
    def ZeigeBild(self):
    folderjpg = os.path.join(currDir,'folder.jpg')
    self["TVHeavenFolderImageScreen"].instance.setPixmapFromFile(folderjpg)


    wie müsste man das nun anpassen, damit es funzt?

    hi,


    ich möchte von einem meiner plugins ein jpg aufrufen lassen.


    die box kann jpg anzeigen, aber ich finde den richtigen befehl nicht.


    ich kriegs nur für png hin mittels


    Code
    self["ZeigeBild"] = Pixmap()
    self["ZeigeBild"].instance.setPixmapFromFile(bild_png)


    wie ja auch bei skins darf aber hier nur ein png mit 8bit verwendet werden und ich möchte ganz gerne ein jpg laden lassen.


    könnte mir jemand sagen, wie ich das abändern müsste?


    will nicht so wie ich will :smiling_face_with_horns:


    oh, und falls zufällig noch jemand weiss, wie man bilder vor dem anzeigen auf eine feste grösse proportional skaliert...


    danke euch :)

    ich nochmal :)


    so ein ärger.
    ich hatte alles fix und fertig und hab mein fertiges plugin dann versehentlich gekillt und musste nun alles wieder herstellen.


    mein letztes problem ist nun nur noch der aufruf des plugins via fantastic menu.


    rufe ich mit der option "E:blah:blah.sh" auf, dann läuft es nicht. Rufe ich mit "C:blah:blah.sh" auf dann läuft es.
    Ich kann mich nicht mehr erinnern, was ich damals benutzt hatte.


    Das Programm muss sozusagen im Hintergrund weiter überwacht werden. Sprich wenn man es z.b. per telnet öffnet und dann telnet-konsole schliesst, dann bricht das programm ab.


    deshalb läuft es vermutlich mit C: da hierbei eine konsole offen bleibt.


    kann man das irgendwie anders erreichen, ohne die console dauerhaft einzublenden? sozusagen im hintergrund aber ohne es zu schliessen?

    perfekt, danke!
    hat super funktioniert!


    ich dachte schon es geht vielleicht nicht, weil ich vorher das applet aus der choicebox versucht hatte zu benutzen und anzupassen und da kam dann garkein screen, aber offensichtlich hatte ich da einen fehler. vermutlich die space am zeilenanfang :O


    aber das ist wirklich spitze, werd ich mir gleich mal rausschreiben und irgendwo ablegen müssen.


    :cool2:


    EDIT: du weisst nicht zufällig, ob man auch das widget name="menu" irgendwie anpassen kann?
    das man z.b. den benutzten font ändert oder foregroundColor oder oder die einträge zentrieren lässt?

    ich meinte damit, dass der skin automatisch sowohl in zusammenarbeit mit einem sd als auch einem hd skin mitti sein soll.


    ist ja ein eigener screen, der aufgerufen wird.
    wenn der screen aufgerufen wird und ein sd skin ist im einsatz, dann ist es mittig.
    wird der screen aufgerufen und ein hd skin ist im einsatz, dass ist er nach links oben verschoben.

    hi,


    ich würde ganz gerne einen skin (bzw. dessen screen), der bei sd skins mittig platziert ist auch kompatibel zu HD skins machen.


    sprich auch hier soll er wiederum mittig sein.


    hätte da eventuell jemand ne anleitung, wie man das konkret macht und was dazu alles nötig ist?

    den letzten abstand hab ich nicht ganz verstanden, aber:


    ich habe eine plugin.py mit def main und plugindescription. wird also korrekt angemeldet. alles wunderbar.
    ich hab auch statt os.system schon execvp und subprocess.call probiert. alle das gleiche ergebnis.


    das einzige was also möglich wäre von all den einwänden wäre die pfadlänge.
    wie lang darf ein pfad inklusive dateinamen sein?


    aber eigentlich macht das auch keinen sinn weil ja alle extensions in unterordnern in dem gleichen ordner liegen und somit alle so lang wären.


    also nochmal, das plugin wird registriert, komplett. sowohl

    Code
    PluginDescriptor.WHERE_PLUGINMENU

    als auch

    Code
    PluginDescriptor.WHERE_EXTENSIONSMENU


    bei aufruf im menu soll direkt ein anderes python skript aktiviert werden, ohne einen screen anzuzeigen oder sonstwas.
    der aufruf wird auch ausgeführt aber das programm direkt wieder terminiert.


    aber ist nun auch egal. ich hab einfach alle komplett neu gestaltet und das ganze komplett anders gelöst. glaube so einfach finde ich die ursache dieses problems nicht.

    du hast das problem missverstanden.


    da sproblem ist nicht, dass es nciht eingebunden wird, wenn es im /var/ liegt.


    das problem ist, dass es nicht LÄUFT, wenn es im /usr/.../Extensions/ liegt.


    ich kann es zwar auch dort per telnet ausführen, aber es ist nicht möglich es aus irgendeinem menu aufzurufen, sei es dein fantastic menu oder direkt das PluginMenu.


    es muss eine schreibrestriktion oder leserestriktion oder zugriffsrestriktion im /usr/.../Extensions/ geben, das verhindert, dass das programm korrekt läuft.
    oder die restriktion liegt im Menu (nicht meinem, sondern dem von e²).



    nochmal, ich installiere es komplett richtig nach /usr/.../Extensions. es gibt einen menueintrag bei "Erweiterungen". dieser führt einfach im def main den aufruf os.system('blablah') aus und öffnet damit das eigentliche plugin.
    hab statt os.system auch andere probiert, daran liegts nicht.


    aber das eigentlich plugin wird dann nicht ausgeführt. es läuft an, erzeugt den ersten logeintrag (einfach nur, dass es gestartet wurde) und bevor es irgendeine andere datei auslesen kann (die andere datei liegt in /var/.../enigma2/) bricht es ab.
    ich kann aber die plugin.py, die für das Erweiterungsmenu zuständig ist via telnet ausführen und dann läuft das programm durch.


    es geht nur nicht, wenn man es via osd-menu aufruft. dabei ist es egal, ob es vom Erweiterungen-Menu des e² aufgerufen wird oder aus einem Fantastic menu.

    Guten Morgen :winking_face:


    Also, ich hab jetzt ettliche stunden an etwas verschwendet, dass offenbar überhaupt nichts mit meinem code zu tun hatte.


    was ist der unterschied zwsichen /var/usr/local/share/enigma2/ und /usr/lib/enigma2/python/Plugins/Extensions/ ?


    hintergrund ist, dass ich versucht habe ein plugin einzubinden. der eintrag im Erweiterungsmenu wurde erzeugt, programm wurde aber nicht richtig ausgeführt.


    ich habe das ganze auch mal ganz einfach mit hilfe des fantastic menu aufrufen lassen.
    ging ebenfalls nicht.


    nun habe ich festgestellt, dass EXAKT die gleichen dateien mit EXAKT dem gleichen aufruf im fantastic menu das programm korrekt ausführen, wenn ich das ganze in einem verzeichnis in /var/usr/local/share/enigma2/ laufen lasse.


    EXAKT das gleiche alles in /usr/lib/enigma2/python/Plugins/Extensions/ ist NICHT möglich.
    aber wieso? wo ist der unterschied?


    und die krönung:
    in beiden verzeichnissen ist es nur nicht ausführbar, wenn der aufruf aus einem menu kommt.
    egal ob aus dem fantastic menu oder aus dem Erweiterungen-Menu.
    sprich, wenn ich aber per telnet ./plugin.py eingebe läuft es in beiden verzeichnissen.


    es MUSS also irgendwas in e² sein, dass das ganze einschränkt. und auch nicht auf telnet-ebene, sondern nur aus einem menu heraus.


    ich kanns nicht besser erklären.
    ich hoffe ihr könnt mir dafür den grund sagen, denn ich könnt mich grün und blau ärgern, dass ich das nicht früher festgestellt habe und so viel zeit daran verloren habe, nachdem das plugin doch schon lief.


    ihr kennt das bestimmt selbst. ich muss die antwort wissen :confused_face: