Repository URL to install this package:
|
Version:
8.3-r4 ▾
|
enigma2-plugin-extensions-pauli
/
usr
/
lib
/
enigma2
/
python
/
Plugins
/
Extensions
/
Pauli
/
plugin.py
|
|---|
from __future__ import print_function
from __future__ import division
#
pauli_pluginversion = "8.3-r4"
#
from struct import pack
from enigma import *
from Screens.Screen import Screen
from Screens.MessageBox import MessageBox
from Screens.InputBox import InputBox
from Screens.ChoiceBox import ChoiceBox
from Components.ActionMap import ActionMap, NumberActionMap
from Components.ScrollLabel import ScrollLabel
from Components.GUIComponent import *
from Components.MenuList import MenuList
from Components.Input import Input
from Components.ConfigList import ConfigList
from Screens.Console import Console
from Plugins.Plugin import PluginDescriptor
from Screens.ServiceInfo import *
from Plugins.Plugin import PluginDescriptor
from Tools import Notifications
from Components.config import *
from os import path as os_path
import keymapparser
session = None
from time import *
import time
import datetime
pauli_readme = "/usr/share/doc/enigma2-plugin-extensions-pauli/README"
pauli_keymap = "/usr/share/enigma2/keymap.xml"
pauli_mytest = "/usr/lib/enigma2/python/mytest.py"
pauli_recordinfo = "/usr/lib/enigma2/python/RecordTimer.py"
pauli_pluginlist = "/usr/lib/enigma2/python/Screens/PluginBrowser.py"
pauli_infobar = "/usr/lib/enigma2/python/Screens/InfoBarGenerics.py"
pauli_pvrstate = "/usr/lib/enigma2/python/Screens/PVRState.py"
pauli_timerentry = "/usr/lib/enigma2/python/Screens/TimerEntry.py"
YELLOWC = '\033[33m'
ENDC = '\033[m'
def cprint(text):
print(YELLOWC+"[PAULI] "+text+ENDC)
def main(session, **kwargs):
session.open(PauliRemoteControl)
def Plugins(**kwargs):
return [PluginDescriptor(name="Pauli Neutrino Keymap", description="Switch Keymap & other usefull things", where = PluginDescriptor.WHERE_PLUGINMENU, icon="pauli.png", fnc=main)]
sz_w = getDesktop(0).size().width()
##
## PauliRemoteControl
##
## By AliAbdul
##
## He was so friendly to allow this code piece from LT Image to be used by Pauli
##
## Thank You !!!
##
class PauliRemoteControl(Screen):
if sz_w == 2560:
skin = """
<screen position="center,240" size="1640,1120" title="Pauli Remote Control Setup" >
<eLabel backgroundColor="grey" position="20,110" size="1600,2" />
<widget name="config" position="20,140" size="1600,790" scrollbarMode="showOnDemand" />
<eLabel backgroundColor="grey" position="20,940" size="1600,2" />
<ePixmap position="20,30" size="120,60" pixmap="/usr/share/enigma2/skin_default/buttons/red.png" transparent="1" alphatest="on" />
<ePixmap position="400,30" size="120,60" pixmap="/usr/share/enigma2/skin_default/buttons/green.png" transparent="1" alphatest="on" />
<ePixmap position="820,30" size="120,60" pixmap="/usr/share/enigma2/skin_default/buttons/yellow.png" transparent="1" alphatest="on" />
<ePixmap position="1240,30" size="120,60" pixmap="/usr/share/enigma2/skin_default/buttons/blue.png" transparent="1" alphatest="on" />
<ePixmap position="20,960" size="120,60" pixmap="/usr/share/enigma2/skin_default/buttons/key_1.png" transparent="1" alphatest="on" />
<ePixmap position="400,960" size="120,60" pixmap="/usr/share/enigma2/skin_default/buttons/key_2.png" transparent="1" alphatest="on" />
<ePixmap position="820,960" size="120,60" pixmap="/usr/share/enigma2/skin_default/buttons/key_3.png" transparent="1" alphatest="on" />
<ePixmap position="1240,960" size="120,60" pixmap="/usr/share/enigma2/skin_default/buttons/key_4.png" transparent="1" alphatest="on" />
<ePixmap position="20,1044" size="120,48" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Pauli/pauli.png" transparent="1" alphatest="on" />
<ePixmap position="400,1040" size="120,60" pixmap="/usr/share/enigma2/skin_default/buttons/key_0.png" transparent="1" alphatest="on" />
<ePixmap position="820,1040" size="120,60" pixmap="/usr/share/enigma2/skin_default/icons/help.png" transparent="1" alphatest="on" />
<ePixmap position="1240,1040" size="120,60" pixmap="/usr/share/enigma2/skin_default/icons/info.png" transparent="1" alphatest="on" />
<eLabel text="Exit" position="160,30" size="240,50" font="Regular;44" transparent="1" />
<eLabel text="Enigma2" position="540,30" size="240,50" font="Regular;44" transparent="1" />
<eLabel text="Neutrino" position="960,30" size="240,50" font="Regular;44" transparent="1" />
<eLabel text="User" position="1380,30" size="240,50" font="Regular;44" transparent="1" />
<eLabel text="Short Power" position="160,970" size="400,50" font="Regular;32" transparent="1" />
<eLabel text="Listbox Left/Right" position="540,970" size="400,50" font="Regular;32" transparent="1" />
<eLabel text="EPG OK zap" position="960,970" size="400,50" font="Regular;32" transparent="1" />
<eLabel text="Info Long/Short" position="1380,970" size="400,50" font="Regular;32" transparent="1" />
<eLabel text="Original" position="540,1050" size="400,50" font="Regular;32" transparent="1" />
<eLabel text="Help" position="960,1050" size="400,50" font="Regular;32" transparent="1" />
<eLabel text="About" position="1380,1050" size="400,50" font="Regular;32" transparent="1" />
</screen>"""
elif sz_w == 1920:
skin = """
<screen position="center,170" size="1200,720" title="Pauli Remote Control Setup" >
<eLabel backgroundColor="grey" position="10,80" size="1180,1" />
<widget name="config" position="20,90" size="1160,500" scrollbarMode="showOnDemand" />
<eLabel backgroundColor="grey" position="10,600" size="1180,1" />
<ePixmap position="20,20" size="80,40" pixmap="/usr/share/enigma2/skin_default/buttons/red.png" transparent="1" alphatest="on" />
<ePixmap position="300,20" size="80,40" pixmap="/usr/share/enigma2/skin_default/buttons/green.png" transparent="1" alphatest="on" />
<ePixmap position="620,20" size="80,40" pixmap="/usr/share/enigma2/skin_default/buttons/yellow.png" transparent="1" alphatest="on" />
<ePixmap position="920,20" size="80,40" pixmap="/usr/share/enigma2/skin_default/buttons/blue.png" transparent="1" alphatest="on" />
<ePixmap position="20,610" size="80,40" pixmap="/usr/share/enigma2/skin_default/buttons/key_1.png" transparent="1" alphatest="on" />
<ePixmap position="300,610" size="80,40" pixmap="/usr/share/enigma2/skin_default/buttons/key_2.png" transparent="1" alphatest="on" />
<ePixmap position="620,610" size="80,40" pixmap="/usr/share/enigma2/skin_default/buttons/key_3.png" transparent="1" alphatest="on" />
<ePixmap position="920,610" size="80,40" pixmap="/usr/share/enigma2/skin_default/buttons/key_4.png" transparent="1" alphatest="on" />
<ePixmap position="20,670" size="80,32" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Pauli/pauli.png" transparent="1" alphatest="on" />
<ePixmap position="300,670" size="80,40" pixmap="/usr/share/enigma2/skin_default/buttons/key_0.png" transparent="1" alphatest="on" />
<ePixmap position="620,670" size="80,40" pixmap="/usr/share/enigma2/skin_default/icons/help.png" transparent="1" alphatest="on" />
<ePixmap position="920,670" size="80,40" pixmap="/usr/share/enigma2/skin_default/icons/info.png" transparent="1" alphatest="on" />
<eLabel text="Exit" position="110,20" size="180,40" font="Regular;36" transparent="1" />
<eLabel text="Enigma2" position="400,20" size="180,40" font="Regular;36" transparent="1" />
<eLabel text="Neutrino" position="710,20" size="180,40" font="Regular;36" transparent="1" />
<eLabel text="User" position="1010,20" size="180,40" font="Regular;36" transparent="1" />
<eLabel text="Short Power" position="110,615" size="400,50" font="Regular;24" transparent="1" />
<eLabel text="Listbox Left/Right" position="390,615" size="400,50" font="Regular;24" transparent="1" />
<eLabel text="EPG OK zap" position="710,615" size="400,50" font="Regular;24" transparent="1" />
<eLabel text="Info Long/Short" position="1010,615" size="400,50" font="Regular;24" transparent="1" />
<eLabel text="Original" position="390,675" size="400,50" font="Regular;24" transparent="1" />
<eLabel text="Help" position="710,675" size="400,50" font="Regular;24" transparent="1" />
<eLabel text="About" position="1010,675" size="400,50" font="Regular;24" transparent="1" />
</screen>"""
else:
skin = """
<screen position="center,120" size="820,500" title="Pauli Remote Control Setup" >
<eLabel backgroundColor="grey" position="10,55" size="800,1" />
<widget name="config" position="10,70" size="800,330" scrollbarMode="showOnDemand" />
<eLabel backgroundColor="grey" position="10,410" size="800,1" />
<ePixmap position="10,15" size="60,30" pixmap="/usr/share/enigma2/skin_default/buttons/red.png" transparent="1" alphatest="on" />
<ePixmap position="200,15" size="60,30" pixmap="/usr/share/enigma2/skin_default/buttons/green.png" transparent="1" alphatest="on" />
<ePixmap position="410,15" size="60,30" pixmap="/usr/share/enigma2/skin_default/buttons/yellow.png" transparent="1" alphatest="on" />
<ePixmap position="620,15" size="60,30" pixmap="/usr/share/enigma2/skin_default/buttons/blue.png" transparent="1" alphatest="on" />
<ePixmap position="10,420" size="60,30" pixmap="/usr/share/enigma2/skin_default/buttons/key_1.png" transparent="1" alphatest="on" />
<ePixmap position="200,420" size="60,30" pixmap="/usr/share/enigma2/skin_default/buttons/key_2.png" transparent="1" alphatest="on" />
<ePixmap position="410,420" size="60,30" pixmap="/usr/share/enigma2/skin_default/buttons/key_3.png" transparent="1" alphatest="on" />
<ePixmap position="620,420" size="60,30" pixmap="/usr/share/enigma2/skin_default/buttons/key_4.png" transparent="1" alphatest="on" />
<ePixmap position="10,462" size="60,24" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/Pauli/pauli.png" transparent="1" alphatest="on" />
<ePixmap position="200,460" size="60,30" pixmap="/usr/share/enigma2/skin_default/buttons/key_0.png" transparent="1" alphatest="on" />
<ePixmap position="410,460" size="60,30" pixmap="/usr/share/enigma2/skin_default/icons/help.png" transparent="1" alphatest="on" />
<ePixmap position="620,460" size="60,30" pixmap="/usr/share/enigma2/skin_default/icons/info.png" transparent="1" alphatest="on" />
<eLabel text="Exit" position="80,15" size="120,25" font="Regular;22" transparent="1" />
<eLabel text="Enigma2" position="270,15" size="120,25" font="Regular;22" transparent="1" />
<eLabel text="Neutrino" position="480,15" size="120,25" font="Regular;22" transparent="1" />
<eLabel text="User" position="690,15" size="120,25" font="Regular;22" transparent="1" />
<eLabel text="Short Power" position="80,425" size="200,25" font="Regular;16" transparent="1" />
<eLabel text="Listbox Left/Right" position="270,425" size="200,25" font="Regular;16" transparent="1" />
<eLabel text="EPG OK zap" position="480,425" size="200,25" font="Regular;16" transparent="1" />
<eLabel text="Info Long/Short" position="690,425" size="200,25" font="Regular;16" transparent="1" />
<eLabel text="Original" position="270,465" size="200,25" font="Regular;16" transparent="1" />
<eLabel text="Help" position="480,465" size="200,25" font="Regular;16" transparent="1" />
<eLabel text="About" position="690,465" size="200,25" font="Regular;16" transparent="1" />
</screen>"""
def __init__(self, session, args = 0):
self.skin = PauliRemoteControl.skin
self.session = session
Screen.__init__(self, session)
if not os_path.exists("/usr/share/enigma2/keymap.xml.pauli.ori"):
cmd="cp /usr/share/enigma2/keymap.xml /usr/share/enigma2/keymap.xml.pauli.ori"
self.container = eConsoleAppContainer()
self.container.execute(cmd)
functionKeyLeft = "DoNothing"
functionKeyRight = "DoNothing"
functionKeyUp = "DoNothing"
functionKeyDown = "DoNothing"
functionKeyOK = "DoNothing"
functionKeyPrevious = "DoNothing"
functionKeyNext = "DoNothing"
functionKeyChannelUp = "DoNothing"
functionKeyChannelDown = "DoNothing"
functionKeyButton0 = "DoNothing"
functionKeyButton1 = "DoNothing"
buttonList = ["zapUp", "zapDown", "pageUp", "pageDown", "switchChannelUp", "switchChannelDown", "openServiceList", "historyBack", "historyNext"]
try:
endRead = False
endRead2 = False
xmlFile = open(pauli_keymap, 'r')
while endRead == False:
line = xmlFile.readline()
if line.__contains__('<'):
position = line.index('<')
line = line[position:999]
if line.startswith('<map context="InfobarChannelSelection">'):
while endRead2 == False:
line = xmlFile.readline()
position = line.index('<')
line = line[position:999]
if line.startswith('</map>'):
endRead = True
endRead2 = True
elif line.startswith('<key id="'):
completeLine = line
position = line.index('mapto')
line = line[position+7:999]
position = line.index('"')
line = line[0:position]
if buttonList.__contains__(line):
if completeLine.startswith('<key id="KEY_LEFT"'):
functionKeyLeft = line
elif completeLine.startswith('<key id="KEY_RIGHT"'):
functionKeyRight = line
elif completeLine.startswith('<key id="KEY_UP"'):
functionKeyUp = line
elif completeLine.startswith('<key id="KEY_DOWN"'):
functionKeyDown = line
elif completeLine.startswith('<key id="KEY_OK"'):
functionKeyOK = line
elif completeLine.startswith('<key id="KEY_PREVIOUS"'):
functionKeyPrevious = line
elif completeLine.startswith('<key id="KEY_NEXT"'):
functionKeyNext = line
elif completeLine.startswith('<key id="KEY_CHANNELUP"'):
functionKeyChannelUp = line
elif completeLine.startswith('<key id="KEY_CHANNELDOWN"'):
functionKeyChannelDown = line
elif completeLine.startswith('<key id="BTN_0"'):
functionKeyButton0 = line
elif completeLine.startswith('<key id="BTN_1"'):
functionKeyButton1 = line
else:
DoNothing = True
xmlFile.close()
except:
cprint("could not read the file /usr/share/enigma2/keymap.xml")
list = []
self["config"] = ConfigList(list)
self.buttons = ConfigSubsection()
self.buttons.keyLeft = ConfigSelection(choices = [("zapUp", _("zapUp")), ("zapDown", _("zapDown")), ("pageUp", _("pageUp")), ("pageDown", _("pageDown")), ("switchChannelUp", _("switchChannelUp")), ("switchChannelDown", _("switchChannelDown")), ("openServiceList", _("openServiceList")), ("historyBack", _("historyBack")), ("historyNext", _("historyNext")), ("DoNothing", _("DoNothing"))], default = (functionKeyLeft))
self.buttons.keyRight = ConfigSelection(choices = [("zapUp", _("zapUp")), ("zapDown", _("zapDown")), ("pageUp", _("pageUp")), ("pageDown", _("pageDown")), ("switchChannelUp", _("switchChannelUp")), ("switchChannelDown", _("switchChannelDown")), ("openServiceList", _("openServiceList")), ("historyBack", _("historyBack")), ("historyNext", _("historyNext")), ("DoNothing", _("DoNothing"))], default = (functionKeyRight))
self.buttons.keyUp = ConfigSelection(choices = [("zapUp", _("zapUp")), ("zapDown", _("zapDown")), ("pageUp", _("pageUp")), ("pageDown", _("pageDown")), ("switchChannelUp", _("switchChannelUp")), ("switchChannelDown", _("switchChannelDown")), ("openServiceList", _("openServiceList")), ("historyBack", _("historyBack")), ("historyNext", _("historyNext")), ("DoNothing", _("DoNothing"))], default = (functionKeyUp))
self.buttons.keyDown = ConfigSelection(choices = [("zapUp", _("zapUp")), ("zapDown", _("zapDown")), ("pageUp", _("pageUp")), ("pageDown", _("pageDown")), ("switchChannelUp", _("switchChannelUp")), ("switchChannelDown", _("switchChannelDown")), ("openServiceList", _("openServiceList")), ("historyBack", _("historyBack")), ("historyNext", _("historyNext")), ("DoNothing", _("DoNothing"))], default = (functionKeyDown))
self.buttons.keyOK = ConfigSelection(choices = [("zapUp", _("zapUp")), ("zapDown", _("zapDown")), ("pageUp", _("pageUp")), ("pageDown", _("pageDown")), ("switchChannelUp", _("switchChannelUp")), ("switchChannelDown", _("switchChannelDown")), ("openServiceList", _("openServiceList")), ("historyBack", _("historyBack")), ("historyNext", _("historyNext")), ("DoNothing", _("DoNothing"))], default = (functionKeyOK))
self.buttons.keyPrevious = ConfigSelection(choices = [("zapUp", _("zapUp")), ("zapDown", _("zapDown")), ("pageUp", _("pageUp")), ("pageDown", _("pageDown")), ("switchChannelUp", _("switchChannelUp")), ("switchChannelDown", _("switchChannelDown")), ("openServiceList", _("openServiceList")), ("historyBack", _("historyBack")), ("historyNext", _("historyNext")), ("DoNothing", _("DoNothing"))], default = (functionKeyPrevious))
self.buttons.keyNext = ConfigSelection(choices = [("zapUp", _("zapUp")), ("zapDown", _("zapDown")), ("pageUp", _("pageUp")), ("pageDown", _("pageDown")), ("switchChannelUp", _("switchChannelUp")), ("switchChannelDown", _("switchChannelDown")), ("openServiceList", _("openServiceList")), ("historyBack", _("historyBack")), ("historyNext", _("historyNext")), ("DoNothing", _("DoNothing"))], default = (functionKeyNext))
self.buttons.keyChannelUp = ConfigSelection(choices = [("zapUp", _("zapUp")), ("zapDown", _("zapDown")), ("pageUp", _("pageUp")), ("pageDown", _("pageDown")), ("switchChannelUp", _("switchChannelUp")), ("switchChannelDown", _("switchChannelDown")), ("openServiceList", _("openServiceList")), ("historyBack", _("historyBack")), ("historyNext", _("historyNext")), ("DoNothing", _("DoNothing"))], default = (functionKeyChannelUp))
self.buttons.keyChannelDown = ConfigSelection(choices = [("zapUp", _("zapUp")), ("zapDown", _("zapDown")), ("pageUp", _("pageUp")), ("pageDown", _("pageDown")), ("switchChannelUp", _("switchChannelUp")), ("switchChannelDown", _("switchChannelDown")), ("openServiceList", _("openServiceList")), ("historyBack", _("historyBack")), ("historyNext", _("historyNext")), ("DoNothing", _("DoNothing"))], default = (functionKeyChannelDown))
self.buttons.keyButton0 = ConfigSelection(choices = [("zapUp", _("zapUp")), ("zapDown", _("zapDown")), ("pageUp", _("pageUp")), ("pageDown", _("pageDown")), ("switchChannelUp", _("switchChannelUp")), ("switchChannelDown", _("switchChannelDown")), ("openServiceList", _("openServiceList")), ("historyBack", _("historyBack")), ("historyNext", _("historyNext")), ("DoNothing", _("DoNothing"))], default = (functionKeyButton0))
self.buttons.keyButton1 = ConfigSelection(choices = [("zapUp", _("zapUp")), ("zapDown", _("zapDown")), ("pageUp", _("pageUp")), ("pageDown", _("pageDown")), ("switchChannelUp", _("switchChannelUp")), ("switchChannelDown", _("switchChannelDown")), ("openServiceList", _("openServiceList")), ("historyBack", _("historyBack")), ("historyNext", _("historyNext")), ("DoNothing", _("DoNothing"))], default = (functionKeyButton1))
list.append(getConfigListEntry(_("KEY_LEFT"), self.buttons.keyLeft))
list.append(getConfigListEntry(_("KEY_RIGHT"), self.buttons.keyRight))
list.append(getConfigListEntry(_("KEY_UP"), self.buttons.keyUp))
list.append(getConfigListEntry(_("KEY_DOWN"), self.buttons.keyDown))
list.append(getConfigListEntry(_("KEY_OK"), self.buttons.keyOK))
list.append(getConfigListEntry(_("KEY_PREVIOUS"), self.buttons.keyPrevious))
list.append(getConfigListEntry(_("KEY_NEXT"), self.buttons.keyNext))
list.append(getConfigListEntry(_("KEY_CHANNELUP"), self.buttons.keyChannelUp))
list.append(getConfigListEntry(_("KEY_CHANNELDOWN"), self.buttons.keyChannelDown))
list.append(getConfigListEntry(_("BTN_0"), self.buttons.keyButton0))
list.append(getConfigListEntry(_("BTN_1"), self.buttons.keyButton1))
self["shortcuts"] = ActionMap(["ShortcutActions","HelpActions","EPGSelectActions","InfobarAudioSelectionActions"],
{
"green": self.setEnigma,
"yellow": self.setNeutrino,
"blue": self.setUser,
"red": self.close,
"displayHelp": self.readme,
"info": self.about,
"audioSelection": self.audioPressed
})
self["actions"] = NumberActionMap(["SetupActions"],
{
"0": self.setOriginal,
"1": self.setDeepstandby,
"2": self.setLeftRight,
"3": self.setOKzap,
"4": self.setInfoLongShort,
"cancel": self.close,
"left": self.keyLeft,
"right": self.keyRight
}, -1)
def audioPressed(self):
cprint("AUDIO pressed")
#Device Types
TYPE_STANDARD = "dreambox remote control (native)"
TYPE_ADVANCED = "dreambox advanced remote control (native)"
TYPE_KEYBOARD = "dreambox ir keyboard"
#Advanced remote or standard?
if config.misc.rcused.value == 0:
self.remotetype = TYPE_ADVANCED
else:
self.remotetype = TYPE_STANDARD
self.eam = eActionMap.getInstance()
# press the key with the desired flag
keycode=138 # HELP key
cprint("NOW WRITES OUT: %i = HELP" % (keycode))
self.eam.keyPressed(self.remotetype, keycode, 0)
# release the key
self.eam.keyPressed(self.remotetype, keycode, 1)
def readme(self):
self.session.open(Console,_("Pauli Neutrino Keymap readme.txt"),["cat %s" % pauli_readme])
def about(self):
self.session.open(MessageBox,_("Pauli Neutrino Keymap Plugin Version %s\npowerd by gutemine and AliAbdul\n\nWolfgang Pauli was an Austrian physicist and\nNobel price winner and postulated the Neutrino particle" % pauli_pluginversion), MessageBox.TYPE_INFO)
def keyLeft(self):
self["config"].handleKey(KEY_LEFT)
def keyRight(self):
self["config"].handleKey(KEY_RIGHT)
def setOriginal(self,number):
if os_path.exists("/usr/share/enigma2/keymap.xml.pauli.ori"):
cmd="cp /usr/share/enigma2/keymap.xml.pauli.ori /usr/share/enigma2/keymap.xml"
self.container = eConsoleAppContainer()
self.container_appClosed_conn = self.container.appClosed.connect(self.runFinished)
self.container.execute(cmd)
else:
self.session.open(MessageBox,_("Pauli could not find original Keymap"), MessageBox.TYPE_ERROR)
def runFinished(self,retval):
keymapparser.removeKeymap(pauli_keymap)
keymapparser.readKeymap(pauli_keymap)
self.session.open(MessageBox,_("Pauli restored original Keymap"), MessageBox.TYPE_INFO)
def setOKzap(self,number):
keymapfile = open(pauli_keymap, "r")
text=keymapfile.read()
keymapfile.close()
if text.find("<key id=\"KEY_OK\" mapto=\"red\" flags=\"m\" />") is -1:
text=text.replace("<key id=\"KEY_MENU\" mapto=\"input_date_time\" flags=\"m\" />","<key id=\"KEY_MENU\" mapto=\"input_date_time\" flags=\"m\" />\n <key id=\"KEY_OK\" mapto=\"red\" flags=\"m\" />")
keymapfile = open(pauli_keymap, "w")
keymapfile.write(text)
keymapfile.close()
keymapparser.removeKeymap(pauli_keymap)
keymapparser.readKeymap(pauli_keymap)
self.session.open(MessageBox,_("Pauli enabled zapping with OK in EPG"), MessageBox.TYPE_INFO)
else:
text=text.replace("<key id=\"KEY_MENU\" mapto=\"input_date_time\" flags=\"m\" />\n <key id=\"KEY_OK\" mapto=\"red\" flags=\"m\" />","<key id=\"KEY_MENU\" mapto=\"input_date_time\" flags=\"m\" />")
keymapfile = open(pauli_keymap, "w")
keymapfile.write(text)
keymapfile.close()
keymapparser.removeKeymap(pauli_keymap)
keymapparser.readKeymap(pauli_keymap)
self.session.open(MessageBox,_("Pauli disabled zapping with OK in EPG"), MessageBox.TYPE_INFO)
def setInfoLongShort(self,number):
keymapfile = open(pauli_keymap, "r")
text=keymapfile.read()
keymapfile.close()
if text.find("<key id=\"KEY_INFO\" mapto=\"showEventInfo\" flags=\"l\" />") is -1 and text.find("<key id=\"KEY_INFO\" mapto=\"showEventView\" flags=\"l\" />") is -1:
text=text.replace("<key id=\"KEY_INFO\" mapto=\"showEventView\" flags=\"b\" />","<key id=\"KEY_INFO\" mapto=\"showEventView\" flags=\"l\" />")
text=text.replace("<key id=\"KEY_INFO\" mapto=\"showEventInfo\" flags=\"b\" />","<key id=\"KEY_INFO\" mapto=\"showEventInfo\" flags=\"l\" />")
text=text.replace("<key id=\"KEY_INFO\" mapto=\"showEventInfoPlugin\" flags=\"l\" />","<key id=\"KEY_INFO\" mapto=\"showEventInfoPlugin\" flags=\"b\" />")
text=text.replace("<key id=\"KEY_INFO\" mapto=\"showSingleServiceEPG\" flags=\"l\" />","<key id=\"KEY_INFO\" mapto=\"showSingleServiceEPG\" flags=\"b\" />")
keymapfile = open(pauli_keymap, "w")
keymapfile.write(text)
keymapfile.close()
keymapparser.removeKeymap(pauli_keymap)
keymapparser.readKeymap(pauli_keymap)
self.session.open(MessageBox,_("Pauli enabled Simple EPG on short Info"), MessageBox.TYPE_INFO)
else:
text=text.replace("<key id=\"KEY_INFO\" mapto=\"showEventView\" flags=\"l\" />","<key id=\"KEY_INFO\" mapto=\"showEventView\" flags=\"b\" />")
text=text.replace("<key id=\"KEY_INFO\" mapto=\"showEventInfo\" flags=\"l\" />","<key id=\"KEY_INFO\" mapto=\"showEventInfo\" flags=\"b\" />")
text=text.replace("<key id=\"KEY_INFO\" mapto=\"showEventInfoPlugin\" flags=\"b\" />","<key id=\"KEY_INFO\" mapto=\"showEventInfoPlugin\" flags=\"l\" />")
text=text.replace("<key id=\"KEY_INFO\" mapto=\"showSingleServiceEPG\" flags=\"b\" />","<key id=\"KEY_INFO\" mapto=\"showSingleServiceEPG\" flags=\"l\" />")
keymapfile = open(pauli_keymap, "w")
keymapfile.write(text)
keymapfile.close()
keymapparser.removeKeymap(pauli_keymap)
keymapparser.readKeymap(pauli_keymap)
self.session.open(MessageBox,_("Pauli enabled Simple EPG on long Info"), MessageBox.TYPE_INFO)
def setLeftRight(self,number):
# toggle Left/Right enable in ListboxActions to make romeo-golf happy
keymapfile = open(pauli_keymap, "r")
text=keymapfile.read()
keymapfile.close()
if text.find("<!-- key id=\"KEY_REWIND\" mapto=\"prevBouquet\" flags=\"mr\" />") is -1:
text=text.replace("<key id=\"KEY_REWIND\" mapto=\"prevBouquet\" flags=\"m\" />","<key id=\"KEY_LEFT\" mapto=\"prevBouquet\" flags=\"m\" />")
text=text.replace("<key id=\"KEY_FASTFORWARD\" mapto=\"nextBouquet\" flags=\"m\" />","<key id=\"KEY_RIGHT\" mapto=\"nextBouquet\" flags=\"m\" />")
if text.find("<!-- key id=\"KEY_LEFT\" mapto=\"pageUp\" flags=\"mr\" />") is -1:
text=text.replace("<key id=\"KEY_LEFT\" mapto=\"pageUp\" flags=\"mr\" />","<!-- key id=\"KEY_LEFT\" mapto=\"pageUp\" flags=\"mr\" />")
text=text.replace("<key id=\"KEY_RIGHT\" mapto=\"pageDown\" flags=\"mr\" />","<key id=\"KEY_RIGHT\" mapto=\"pageDown\" flags=\"mr\" /-->")
keymapfile = open(pauli_keymap, "w")
keymapfile.write(text)
keymapfile.close()
keymapparser.removeKeymap(pauli_keymap)
keymapparser.readKeymap(pauli_keymap)
self.session.open(MessageBox,_("LEFT/RIGHT = switch Bouquets"), MessageBox.TYPE_INFO)
else:
text=text.replace("<!-- key id=\"KEY_LEFT\" mapto=\"pageUp\" flags=\"mr\" />","<key id=\"KEY_LEFT\" mapto=\"pageUp\" flags=\"mr\" />")
text=text.replace("<key id=\"KEY_RIGHT\" mapto=\"pageDown\" flags=\"mr\" /-->","<key id=\"KEY_RIGHT\" mapto=\"pageDown\" flags=\"mr\" />")
text=text.replace("<key id=\"KEY_LEFT\" mapto=\"prevBouquet\" flags=\"m\" />","<key id=\"KEY_REWIND\" mapto=\"prevBouquet\" flags=\"m\" />")
text=text.replace("<key id=\"KEY_RIGHT\" mapto=\"nextBouquet\" flags=\"m\" />","<key id=\"KEY_FASTFORWARD\" mapto=\"nextBouquet\" flags=\"m\" />")
keymapfile = open(pauli_keymap, "w")
keymapfile.write(text)
keymapfile.close()
keymapparser.removeKeymap(pauli_keymap)
keymapparser.readKeymap(pauli_keymap)
self.session.open(MessageBox,_("LEFT/RIGHT = Page Up/Down"), MessageBox.TYPE_INFO)
def setNeutrino(self):
# do the stuff AliAbdul ignores
keymapfile = open(pauli_keymap, "r")
text=keymapfile.read()
keymapfile.close()
# for ListboxActions
if text.find("<key id=\"KEY_CHANNELUP\" mapto=\"pageUp\" flags=\"mr\" />") is -1:
text=text.replace("<key id=\"KEY_PAGEDOWN\" mapto=\"pageDown\" flags=\"mr\" />","<key id=\"KEY_PAGEDOWN\" mapto=\"pageDown\" flags=\"mr\" />\n <key id=\"KEY_CHANNELUP\" mapto=\"pageUp\" flags=\"mr\" />\n <key id=\"KEY_CHANNELDOWN\" mapto=\"pageDown\" flags=\"mr\" />")
if text.find("<key id=\"KEY_PREVIOUS\" mapto=\"pageUp\" flags=\"mr\" />") is -1:
text=text.replace("<key id=\"KEY_PAGEDOWN\" mapto=\"pageDown\" flags=\"mr\" />","<key id=\"KEY_PAGEDOWN\" mapto=\"pageDown\" flags=\"mr\" />\n <key id=\"KEY_PREVIOUS\" mapto=\"pageUp\" flags=\"mr\" />\n <key id=\"KEY_NEXT\" mapto=\"pageDown\" flags=\"mr\" />")
if text.find("<!-- key id=\"KEY_LEFT\" mapto=\"pageUp\" flags=\"mr\" />") is -1:
text=text.replace("<key id=\"KEY_LEFT\" mapto=\"pageUp\" flags=\"mr\" />","<!-- key id=\"KEY_LEFT\" mapto=\"pageUp\" flags=\"mr\" />")
text=text.replace("<key id=\"KEY_RIGHT\" mapto=\"pageDown\" flags=\"mr\" />","<key id=\"KEY_RIGHT\" mapto=\"pageDown\" flags=\"mr\" /-->")
# for InfobarShowHideActions
if text.find("<key id=\"KEY_EXIT\" mapto=\"toggleShow\" flags=\"m\" />") is -1:
text=text.replace("<key id=\"KEY_EXIT\" mapto=\"hide\" flags=\"m\" />","<key id=\"KEY_EXIT\" mapto=\"toggleShow\" flags=\"m\" />")
# for InfobarSubserviceSelectionActions
if text.find("<key id=\"KEY_LEFT\" mapto=\"subserviceSelection\" flags=\"mr\" />") is -1:
text=text.replace("<key id=\"KEY_GREEN\" mapto=\"subserviceSelection\" flags=\"m\" />","<key id=\"KEY_GREEN\" mapto=\"subserviceSelection\" flags=\"m\" />\n <key id=\"KEY_LEFT\" mapto=\"subserviceSelection\" flags=\"mr\" />\n <key id=\"KEY_RIGHT\" mapto=\"subserviceSelection\" flags=\"mr\" />")
# for Green Quickbutton in GP
text=text.replace("<key id=\"KEY_GREEN\" mapto=\"subserviceSelection\" flags=\"b\" />","<key id=\"KEY_GREEN\" mapto=\"subserviceSelection\" flags=\"b\" />\n <key id=\"KEY_LEFT\" mapto=\"subserviceSelection\" flags=\"mr\" />\n <key id=\"KEY_RIGHT\" mapto=\"subserviceSelection\" flags=\"mr\" />")
# for InfobarSubserviceQuickzapActions
if text.find("<key id=\"KEY_LEFT\" mapto=\"prevSubservice\" flags=\"m\" />") is -1:
text=text.replace("<key id=\"KEY_BACK\" mapto=\"prevSubservice\" flags=\"m\" />","<key id=\"KEY_LEFT\" mapto=\"prevSubservice\" flags=\"m\" />")
text=text.replace("<key id=\"KEY_FORWARD\" mapto=\"nextSubservice\" flags=\"m\" />","<key id=\"KEY_RIGHT\" mapto=\"nextSubservice\" flags=\"m\" />")
# for ChannelSelectBaseActions
if text.find("<key id=\"KEY_RIGHT\" mapto=\"nextBouquet\" flags=\"m\" />") is -1:
text=text.replace("<key id=\"KEY_CHANNELDOWN\" mapto=\"prevBouquet\" flags=\"m\" />","<key id=\"KEY_LEFT\" mapto=\"prevBouquet\" flags=\"m\" />")
text=text.replace("<key id=\"KEY_CHANNELUP\" mapto=\"nextBouquet\" flags=\"m\" />","<key id=\"KEY_RIGHT\" mapto=\"nextBouquet\" flags=\"m\" />")
# fix MediaPlayerActions
text=text.replace("<key id=\"KEY_8\" mapto=\"skipListend\" flags=\"m\" />\n <key id=\"KEY_RIGHT\" mapto=\"nextBouquet\" flags=\"m\" />\n <key id=\"KEY_LEFT\" mapto=\"prevBouquet\" flags=\"m\" />","<key id=\"KEY_8\" mapto=\"skipListend\" flags=\"m\" />\n <key id=\"KEY_CHANNELUP\" mapto=\"nextBouquet\" flags=\"m\" />\n <key id=\"KEY_CHANNELDOWN\" mapto=\"prevBouquet\" flags=\"m\" />")
# for latest iCVS
restart=False
ibgfile = open(pauli_infobar, "r")
text2=ibgfile.read()
ibgfile.close()
if text2.find("\"openServiceList\": ") is -1:
restart=True
text2=text2.replace("\"historyNext\": (self.historyNext, _(\"next channel in history\")),","\"historyNext\": (self.historyNext, _(\"next channel in history\")),\n \"openServiceList\": (self.openServiceList, _(\"open servicelist\")),")
ibgfile = open(pauli_infobar, "w")
ibgfile.write(text2)
ibgfile.close()
keymapfile = open(pauli_keymap, "w")
keymapfile.write(text)
keymapfile.close()
list = ["DoNothing", "DoNothing", "zapDown", "zapUp", "openServiceList", "historyBack", "historyNext", "openServiceList", "openServiceList", "zapUp", "zapDown"]
self.writeConfigs(list)
if restart:
self.session.openWithCallback(self.DoEnigma2Restart,MessageBox,_("Pauli changed Keymap to Neutrino\nrestarting Enigma2 to activate - OK ?"), MessageBox.TYPE_YESNO)
else:
self.session.openWithCallback(self.close,MessageBox,_("Pauli changed Keymap to Neutrino"), MessageBox.TYPE_INFO)
def DoEnigma2Restart(self,answer):
if answer is None:
self.skipEnigma2Restart("answer is None, restart later")
if answer is False:
self.skipEnigma2Restart("you were not confirming, restart later")
else:
quitMainloop(3)
def skipEnigma2Restart(self,reason):
self.session.open(MessageBox,_("Enigma2 restart was canceled, because %s" % reason), MessageBox.TYPE_WARNING)
def setEnigma(self):
keymapfile = open(pauli_keymap, "r")
text=keymapfile.read()
keymapfile.close()
#for ListboxActions
text=text.replace("<key id=\"KEY_PAGEDOWN\" mapto=\"pageDown\" flags=\"mr\" />\n <key id=\"KEY_PREVIOUS\" mapto=\"pageUp\" flags=\"mr\" />\n <key id=\"KEY_NEXT\" mapto=\"pageDown\" flags=\"mr\" />","<key id=\"KEY_PAGEDOWN\" mapto=\"pageDown\" flags=\"mr\" />")
text=text.replace("<key id=\"KEY_PAGEDOWN\" mapto=\"pageDown\" flags=\"mr\" />\n <key id=\"KEY_CHANNELUP\" mapto=\"pageUp\" flags=\"mr\" />\n <key id=\"KEY_CHANNELDOWN\" mapto=\"pageDown\" flags=\"mr\" />","<key id=\"KEY_PAGEDOWN\" mapto=\"pageDown\" flags=\"mr\" />")
text=text.replace("<!-- key id=\"KEY_LEFT\" mapto=\"pageUp\" flags=\"mr\" />","<key id=\"KEY_LEFT\" mapto=\"pageUp\" flags=\"mr\" />")
text=text.replace("<key id=\"KEY_RIGHT\" mapto=\"pageDown\" flags=\"mr\" /-->","<key id=\"KEY_RIGHT\" mapto=\"pageDown\" flags=\"mr\" />")
# for InfobarShowHideActions
text=text.replace("<key id=\"KEY_EXIT\" mapto=\"toggleShow\" flags=\"m\" />","<key id=\"KEY_EXIT\" mapto=\"hide\" flags=\"m\" />")
# for InfobarSubserviceSelectionActions
text=text.replace("<key id=\"KEY_GREEN\" mapto=\"subserviceSelection\" flags=\"m\" />\n <key id=\"KEY_LEFT\" mapto=\"subserviceSelection\" flags=\"mr\" />\n <key id=\"KEY_RIGHT\" mapto=\"subserviceSelection\" flags=\"mr\" />","<key id=\"KEY_GREEN\" mapto=\"subserviceSelection\" flags=\"m\" />")
# for Green Quickbutton in GP
text=text.replace("<key id=\"KEY_GREEN\" mapto=\"subserviceSelection\" flags=\"b\" />\n <key id=\"KEY_LEFT\" mapto=\"subserviceSelection\" flags=\"mr\" />\n <key id=\"KEY_RIGHT\" mapto=\"subserviceSelection\" flags=\"mr\" />","<key id=\"KEY_GREEN\" mapto=\"subserviceSelection\" flags=\"b\" />")
# for InfobarSubserviceQuickzapActions
text=text.replace("<key id=\"KEY_LEFT\" mapto=\"prevSubservice\" flags=\"m\" />","<key id=\"KEY_BACK\" mapto=\"prevSubservice\" flags=\"m\" />")
text=text.replace("<key id=\"KEY_RIGHT\" mapto=\"nextSubservice\" flags=\"m\" />","<key id=\"KEY_FORWARD\" mapto=\"nextSubservice\" flags=\"m\" />")
# for ChannelSelectBaseActions
text=text.replace("<key id=\"KEY_LEFT\" mapto=\"prevBouquet\" flags=\"m\" />","<key id=\"KEY_CHANNELDOWN\" mapto=\"prevBouquet\" flags=\"m\" />")
text=text.replace("<key id=\"KEY_RIGHT\" mapto=\"nextBouquet\" flags=\"m\" />","<key id=\"KEY_CHANNELUP\" mapto=\"nextBouquet\" flags=\"m\" />")
keymapfile = open(pauli_keymap, "w")
keymapfile.write(text)
keymapfile.close()
list = ["zapUp", "zapDown", "switchChannelUp", "switchChannelDown", "DoNothing", "historyBack", "historyNext", "openServiceList", "openServiceList", "zapUp", "zapDown"]
self.writeConfigs(list)
self.session.openWithCallback(self.close,MessageBox,_("Pauli changed Keymap to Enigma2"), MessageBox.TYPE_INFO)
def setUser(self):
list = [self.buttons.keyLeft.value, self.buttons.keyRight.value, self.buttons.keyUp.value, self.buttons.keyDown.value, self.buttons.keyOK.value, self.buttons.keyPrevious.value, self.buttons.keyNext.value, self.buttons.keyChannelUp.value, self.buttons.keyChannelDown.value, self.buttons.keyButton0.value, self.buttons.keyButton1.value]
self.writeConfigs(list)
self.session.openWithCallback(self.close,MessageBox,_("Pauli changed Keymap to user-defined"), MessageBox.TYPE_INFO)
def writeConfigs(self, list):
functionKeyLeft = list[0]
functionKeyRight = list[1]
functionKeyUp = list[2]
functionKeyDown = list[3]
functionKeyOK = list[4]
functionKeyPrevious = list[5]
functionKeyNext = list[6]
functionKeyChannelUp = list[7]
functionKeyChannelDown = list[8]
functionKeyButton0 = list[9]
functionKeyButton1 = list[10]
config = ""
TAB = ""
doWrite = True
try:
xmlFile = open(pauli_keymap, 'r')
for line in xmlFile:
if doWrite == True:
config = config + line
if line.__contains__('<'):
position = line.index('<')
tmp = line[position:999]
if tmp.startswith('<map context="InfobarChannelSelection">'):
doWrite = False
else:
if line.__contains__('<'):
tmp = line[position:999]
if tmp.startswith('</map>'):
doWrite = True
if functionKeyLeft != "DoNothing":
config = config + TAB + TAB + '<key id="KEY_LEFT" mapto="' + functionKeyLeft + '" flags="mr" />' + "\n"
if functionKeyRight != "DoNothing":
config = config + TAB + TAB + '<key id="KEY_RIGHT" mapto="' + functionKeyRight + '" flags="mr" />' + "\n"
if functionKeyUp != "DoNothing":
config = config + TAB + TAB + '<key id="KEY_UP" mapto="' + functionKeyUp + '" flags="mr" />' + "\n"
if functionKeyDown != "DoNothing":
config = config + TAB + TAB + '<key id="KEY_DOWN" mapto="' + functionKeyDown + '" flags="mr" />' + "\n"
if functionKeyOK != "DoNothing":
config = config + TAB + TAB + '<key id="KEY_OK" mapto="' + functionKeyOK + '" flags="mr" />' + "\n"
if functionKeyPrevious != "DoNothing":
config = config + TAB + TAB + '<key id="KEY_PREVIOUS" mapto="' + functionKeyPrevious + '" flags="mr" />' + "\n"
if functionKeyNext != "DoNothing":
config = config + TAB + TAB + '<key id="KEY_NEXT" mapto="' + functionKeyNext + '" flags="mr" />' + "\n"
if functionKeyPrevious != "DoNothing":
# forgotten BACK key - use same as PREVIOUS
config = config + TAB + TAB + '<key id="KEY_BACK" mapto="' + functionKeyPrevious + '" flags="mr" />' + "\n"
if functionKeyNext != "DoNothing":
# forgotten FORWARD key - use same as NEXT
config = config + TAB + TAB + '<key id="KEY_FORWARD" mapto="' + functionKeyNext + '" flags="mr" />' + "\n"
if functionKeyChannelUp != "DoNothing":
config = config + TAB + TAB + '<key id="KEY_CHANNELUP" mapto="' + functionKeyChannelUp + '" flags="mr" />' + "\n"
if functionKeyChannelDown != "DoNothing":
config = config + TAB + TAB + '<key id="KEY_CHANNELDOWN" mapto="' + functionKeyChannelDown + '" flags="mr" />' + "\n"
if functionKeyButton0 != "DoNothing":
config = config + TAB + TAB + '<key id="BTN_0" mapto="' + functionKeyButton0 + '" flags="mr" />' + "\n"
if functionKeyButton1 != "DoNothing":
config = config + TAB + TAB + '<key id="BTN_1" mapto="' + functionKeyButton1 + '" flags="mr" />' + "\n"
config = config + line
else:
if TAB == "":
TAB = line[0:position]
xmlFile.close()
xmlFile = open(pauli_keymap, 'w')
xmlFile.write(config)
xmlFile.close()
keymapparser.removeKeymap(pauli_keymap)
keymapparser.readKeymap(pauli_keymap)
except:
cprint("could not write the file /usr/share/enigma2/keymap.xml")
def setDeepstandby(self,number):
if config.usage.on_short_powerpress.value=="shutdown":
config.usage.on_short_powerpress.value="idlemode"
config.usage.on_short_powerpress.save()
self.session.open(MessageBox,_("Pauli enabled Idle Mode with power short"), MessageBox.TYPE_INFO)
else:
config.usage.on_short_powerpress.value="shutdown"
config.usage.on_short_powerpress.save()
self.session.open(MessageBox,_("Pauli enabled Shutdown with power short"), MessageBox.TYPE_INFO)
def main(session, **kwargs):
session.open(PauliRemoteControl)
def Plugins(**kwargs):
return [PluginDescriptor(name="Pauli Neutrino Keymap", description="Switch Keymap & other usefull things", where = PluginDescriptor.WHERE_PLUGINMENU, icon="pauli.png", fnc=main)]