Umbelegung der Farbtasten in der Kanalliste

  • Hallo,


    ich würde gerne die Sender EPG Liste in der Kanalliste auf die gelbe Taste legen. Ich weiß leider nicht genau wie ich das anstellen kann.


    Warum? Weil es in der Infobar auch auf gelb liegt und ich es (für mich) logisch finde, dass es in der Kanalliste dann auch gelb ist (und nicht Info und grün glaube ich).


    Ich habe mal probiert in der keymap.xml


    auf


    <map context="ChannelSelectEPGActions">

    <key id="KEY_YELLOW" mapto="showEPGList" flags="m" />

    </map>


    zu ändern. Das hat funktioniert, aber


    1. wurde mir davon abgeraten wegen Kompatibilität ( mit anderen Funktionen)
    2. ändert sich das Label nicht in der Kanalliste nicht mit auf dem gelben Button.


    Wie gehe ich das am Besten an? Die Provider in der Kanalliste brauche ich nicht und müssen nicht erhalten bleiben.


    Danke vorab für euere Tipps und einen schönen Abend.


    Skullmonkey

  • Manuell kann man das ganz leicht an 3 Stellen in folgender Datei anpassen:

    /usr/lib/enigma2/python/Screens/ChannelSelection.py

    Allerdings müsstest du das dann nach jedem e2-Update wieder ändern, da die ChannelSelection.py dabei wieder überschrieben wird.


    Nachfolgende Zeilenangaben gelten für OE2.5 (für OE2.6 muss man 4 Zeilen danach schauen - also die 1. Stelle bei 824 usw. ).

    In der Zeile 820 kannst du den Text für das Yellow-Label anpassen:

    http://git.opendreambox.org/?p…9d;hb=refs/heads/4.3#l820

    z.B. self["key_yellow"] = Button(_("EPG"))


    Und in Zeile 846 änderst du die Funktion, die da ausgeführt werden soll:

    http://git.opendreambox.org/?p…9d;hb=refs/heads/4.3#l846

    "showProviders": self.showEPGList,


    Und falls du die Provider-Liste doch noch brauchst, kannst du sie dir in das "Mehr..."-Menü der roten Taste legen.

    Dazu unter Zeile 888 "self._pluginList.append((_("All"), self.showAllServices, True))" folgende Zeile zusätzlich einfügen:

    http://git.opendreambox.org/?p…9d;hb=refs/heads/4.3#l888

    self._pluginList.append((_("Provider"), self.showProviders, True))


    wichtiger Hinweis:

    Änderungen an Systemfiles auf eigene Gefahr.

    Falls man da Fehler macht, kann es sein, dass e2 nicht mehr startet bzw. diverse GS kommen.

    Daher vorher immer eine Sicherheitskopie der originalen Datei anlegen, um diese im Bedarfsfall wieder zurückkopieren zu können.

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

  • Hallo Sven.


    Danke dir. Das ist ja schon die Komplettlösung :)


    Ich denke das ist kein Problem. Ich gehe davon aus, dass OE2.5 sowieso am auslaufen ist und nicht mehr viele Updates kommen. Werde diese nur noch einspielen, wenn es einen sehr guten Grund gibt.


    Beste Grüße

    Skullmonkey

  • Also, das hat super funktioniert.


    Wollte mir noch den EventInfo auf die Infotaste legen, dann muss ich in die Datei diese Routine sinngemäß einfügen, oder?


    Ich finde aber den Event "Drücke Infotaste in ChannelSelection" nicht ... :/

  • self["ChannelSelectEPGActions"] = ActionMap(["ChannelSelectEPGActions"],

    {

    "showEPGList": self.showEPGList,

    })


    Updates gibt es für OE2.5 aktuell schon noch. Zudem kann es auch ganz lustig werden, wenn du Plugins installierst, die sich irgendwo da reinklinken.

    Gruss
    Dre


    Boxen (im Einsatz): DM920, DM900, DMOne
    Developer Project Merlin - we are OpenSource

  • Wollte mir noch den EventInfo auf die Infotaste legen, dann muss ich in die Datei diese Routine sinngemäß einfügen, oder?

    Ganz so einfach geht das nicht ;)

    Du fragst bei deinem Beispiel ja immer nur den laufenden Sender ab.

    Wenn du aber in der Kanalliste mit dem Cursor auf einen anderen Sender wanderst und dann Info drückst, würdest du immer noch die EventInfo vom aktuell laufenden Sender bekommen.


    Schau mal im IntantEPGTimer von gutemine.

    Da ist eine Funktion enthalten, die genau das macht und dabei das passende Event ermittelt.


    Oder du installierst dir das InstantEPGTimer-Plugin und aktivierst im Setup die letzte Option "Kanalliste Info".

    Dann wird dir in der Kanalliste bei der Info-Taste automatisch der EventView angezeigt.


    Mit dem Plugin kannst du dann auch in fast allen EPG-Listen mit der Rec-Taste direkt eine Aufnahme starten und beenden.

    Was beim Start und Beenden einer Aufnahme gemacht/gefragt werden soll, kann man im Setup festlegen.

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

  • Hi Sven,


    ja ist mir auch aufgefallen, hatte grade mit rumprobiert:


    ServiceReference(self.getCurrentSelection())

    ...


    Das hat halbwegs funktioniert. Aber das Plugin nutze ich sowieso bereits. Weil es für mich ein Sache nachrüstet, die eigentlich in Stockimage gehört :/ Danke für den Tipp, die Option habe ich nicht gekannt.


    Getestet. Operation gelungen, Partient tot :) Das funktioniert, aber leider macht es die Lösung von dir mit dem gelben Button und dem simpel EPG Kaputt :)


    Naja, dann gucke ich doch nochmal rein...

    Edited once, last by skullmonkey911: Ein Beitrag von skullmonkey911 mit diesem Beitrag zusammengefügt. ().

  • Stimmt, die Option aus dem InstantEPGTimer verbiegt dir die gelbe Taste dann ja auch wieder auf das EventView ;)


    Dann ändere in der ActionMap einfach die Zeile 846 so um (zeigt dann auf eine eigene Methode mit own am Ende) :

    "showProviders": self.showEPGListown,


    Und zwischen __init__ und getCurrentEventNow fügst du dann diese eigene Methode ein:

    Code
    def showEPGListown(self):
    ref=self.getCurrentSelection()
    if ref:
    self.savedService = ref
    self.session.openWithCallback(self.SingleServiceEPGClosed, EPGSelection, ref, serviceChangeCB=self.changeServiceCB)

    Dann sollte deine Anpassung für die gelbe Taste und das InstantEPGTimer mit der Info-Taste sich nicht mehr stören.

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

  • :thumbsup: Funktioniert.


    Mal eine theoretische Frage. Wenn ich die Änderungen doch in ein Plugin packen wollte, dann müsste ich bestimmt die ganze ChannelSelection Object in der Session überschreiben, oder?

  • Ja, so wie es das InstantEPGTimer-Plugin für ChannelSelectionBase.__init__ macht.


    Aber da muss man dann verdammt aufpassen, wenn mehrere Plugins die gleiche Class oder Class-Methode überschreiben.

    Da kann es dann schnell passieren, dass man die Funktionalität eines anderen Plugins aushebelt oder das andere Plugin die Anpassung im eigenen Plugin umgeht.


    Das kenne ich schon von den ganzen Plugins wie ChannelSelectionPlus, PiPChannelSelection ...

    Da ist man froh, wenn man es irgendwie geschafft hat, dass alle Plugins trotzdem sauber laufen.

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

  • okay, danke. So habe ich es mir leider auch vorgestellt. Ich lasse es erstmal so. Wenn ich mal wieder ein Update mache, dann sind die Änderungen ja fix eingebaut.


    Ich mach mich jetzt mal an die Records.py von der InfoBarStateInfo um die *7days* Einträge im Zielverzeichnis rauszufiltern. Das ist nicht für so viele Aufnahmen gebaut :)


    Danke nochmal für deine sehr nette und kompetente Hilfe!


    VG

    Skullmonkey

  • Die neue angepasste Records.py im ihad hast du aber mitbekommen ?

    Da kannst du dir jetzt zumindest schon mal das Einblenden der IBTS bei Aufnahmestart/-ende deaktivieren.

    Gruß Sven (aka Dreamy)


    (DM920 mit unstable OE2.5 DMM)

  • Hi,


    ja habe ich gesehen. Nehme diese als Ausgangspunkt.


    Werde mir den dirname aus den Recordtimerinstanzen auslesen und mit regex auf 7days prüfen und aus dem Array nehmen. Dauert aber noch, wenig Zeit und schon länger nix mehr mit Python gemacht vor allem v2 ...


    VG Skullmonkey