aboutsummaryrefslogtreecommitdiff
path: root/lib/python
diff options
context:
space:
mode:
authorMladen Horvat <acidburn@opendreambox.org>2008-12-10 09:53:18 +0100
committerMladen Horvat <acidburn@opendreambox.org>2008-12-10 09:53:18 +0100
commit9e9b0f5405807576512b9e9e5f6adeb87218822e (patch)
tree3654db66ac7e6414ce6cfef0123a34c1065ec3a5 /lib/python
parent35970b94b3b2df24f19d259fba04e23cfcf22e45 (diff)
parenta6976a2c3c6256a0c860827550aabd7ee9bdf3bf (diff)
downloadenigma2-9e9b0f5405807576512b9e9e5f6adeb87218822e.tar.gz
enigma2-9e9b0f5405807576512b9e9e5f6adeb87218822e.zip
Merge branch 'master' of git://git.opendreambox.org/git/enigma2
Diffstat (limited to 'lib/python')
-rw-r--r--lib/python/Components/Converter/RemainingToText.py34
-rw-r--r--lib/python/Components/Converter/ServicePosition.py13
-rw-r--r--lib/python/Components/TunerInfo.py40
-rw-r--r--lib/python/Plugins/Extensions/DVDPlayer/plugin.py15
-rw-r--r--lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp65
-rw-r--r--lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py40
-rw-r--r--lib/python/Plugins/SystemPlugins/Satfinder/plugin.py40
-rw-r--r--lib/python/Tools/NumericalTextInput.py26
8 files changed, 149 insertions, 124 deletions
diff --git a/lib/python/Components/Converter/RemainingToText.py b/lib/python/Components/Converter/RemainingToText.py
index adefe9cf..4249e30a 100644
--- a/lib/python/Components/Converter/RemainingToText.py
+++ b/lib/python/Components/Converter/RemainingToText.py
@@ -2,19 +2,43 @@ from Components.Converter.Converter import Converter
from Components.Element import cached
class RemainingToText(Converter, object):
+ DEFAULT = 0
+ WITH_SECONDS = 1
+ NO_SECONDS = 2
+
def __init__(self, type):
Converter.__init__(self, type)
+ if type == "WithSeconds":
+ self.type = self.WITH_SECONDS
+ elif type == "NoSeconds":
+ self.type = self.NO_SECONDS
+ else:
+ self.type = self.DEFAULT
@cached
def getText(self):
- r = self.source.time
- if r is None:
+ time = self.source.time
+ if time is None:
return ""
(duration, remaining) = self.source.time
- if remaining is not None:
- return "+%d min" % (remaining / 60)
+
+ if self.type == self.WITH_SECONDS:
+ if remaining is not None:
+ return "%d:%02d:%02d" % (remaining / 3600, (remaining / 60) - ((remaining / 3600) * 60), remaining % 60)
+ else:
+ return "%02d:%02d:%02d" % (duration / 3600, (duration / 60) - ((duration / 3600) * 60), duration % 60)
+ elif self.type == self.NO_SECONDS:
+ if remaining is not None:
+ return "+%d:%02d" % (remaining / 3600, (remaining / 60) - ((remaining / 3600) * 60))
+ else:
+ return "%02d:%02d" % (duration / 3600, (duration / 60) - ((duration / 3600) * 60))
+ elif self.type == self.DEFAULT:
+ if remaining is not None:
+ return "+%d min" % (remaining / 60)
+ else:
+ return "%d min" % (duration / 60)
else:
- return "%d min" % (duration / 60)
+ return "???"
text = property(getText)
diff --git a/lib/python/Components/Converter/ServicePosition.py b/lib/python/Components/Converter/ServicePosition.py
index b488258b..d7a55dae 100644
--- a/lib/python/Components/Converter/ServicePosition.py
+++ b/lib/python/Components/Converter/ServicePosition.py
@@ -19,6 +19,7 @@ class ServicePosition(Converter, Poll, object):
self.negate = 'Negate' in args
self.detailed = 'Detailed' in args
self.showHours = 'ShowHours' in args
+ self.showNoSeconds = 'ShowNoSeconds' in args
if self.detailed:
self.poll_interval = 100
@@ -34,7 +35,7 @@ class ServicePosition(Converter, Poll, object):
elif type == "Gauge":
self.type = self.TYPE_GAUGE
else:
- raise "type must be {Length|Position|Remaining|Gauge} with optional arguments {Negate|Detailed|ShowHours}"
+ raise "type must be {Length|Position|Remaining|Gauge} with optional arguments {Negate|Detailed|ShowHours|NoSeconds}"
self.poll_enabled = self.type != self.TYPE_LENGTH
@@ -94,9 +95,15 @@ class ServicePosition(Converter, Poll, object):
if not self.detailed:
if self.showHours:
- return sign + "%d:%02d:%02d" % (l/3600, l%3600/60, l%60)
+ if self.showNoSeconds:
+ return sign + "%d:%02d" % (l/3600, l%3600/60)
+ else:
+ return sign + "%d:%02d:%02d" % (l/3600, l%3600/60, l%60)
else:
- return sign + "%d:%02d" % (l/60, l%60)
+ if self.showNoSeconds:
+ return sign + "%d" % (l/60)
+ else:
+ return sign + "%d:%02d" % (l/60, l%60)
else:
if self.showHours:
return sign + "%d:%02d:%02d:%03d" % ((l/3600/90000), (l/90000)%3600/60, (l/90000)%60, (l%90000)/90)
diff --git a/lib/python/Components/TunerInfo.py b/lib/python/Components/TunerInfo.py
index d8b4d064..39f54c0b 100644
--- a/lib/python/Components/TunerInfo.py
+++ b/lib/python/Components/TunerInfo.py
@@ -10,13 +10,14 @@ class TunerInfo(GUIComponent):
BER = 2
LOCK = 3
SNR_PERCENTAGE = 0
- AGC_PERCENTAGE = 1
- BER_VALUE = 2
- SNR_BAR = 3
- AGC_BAR = 4
- BER_BAR = 5
- LOCK_STATE = 6
- SYNC_STATE = 7
+ SNR_DB = 1
+ AGC_PERCENTAGE = 2
+ BER_VALUE = 3
+ SNR_BAR = 4
+ AGC_BAR = 5
+ BER_BAR = 6
+ LOCK_STATE = 7
+ SYNC_STATE = 8
def __init__(self, type, servicefkt = None, frontendfkt = None, statusDict = None):
GUIComponent.__init__(self)
@@ -47,7 +48,9 @@ class TunerInfo(GUIComponent):
return val*100/65535
def update(self):
- if self.type == self.SNR_PERCENTAGE or self.type == self.SNR_BAR:
+ if self.type == self.SNR_DB:
+ value = self.getValue(self.SNR_DB)
+ elif self.type == self.SNR_PERCENTAGE or self.type == self.SNR_BAR:
value = self.getValue(self.SNR) * 100 / 65536
elif self.type == self.AGC_PERCENTAGE or self.type == self.AGC_BAR:
value = self.getValue(self.AGC) * 100 / 65536
@@ -55,8 +58,13 @@ class TunerInfo(GUIComponent):
value = self.getValue(self.BER)
elif self.type == self.LOCK_STATE:
value = self.getValue(self.LOCK)
-
- if self.type == self.SNR_PERCENTAGE or self.type == self.AGC_PERCENTAGE:
+
+ if self.type == self.SNR_DB:
+ if value != 0x12345678:
+ self.setText("%3.02f dB" % (value / 100.0))
+ else:
+ self.setText("")
+ elif self.type == self.SNR_PERCENTAGE or self.type == self.AGC_PERCENTAGE:
self.setText("%d%%" % (value))
elif self.type == self.BER_VALUE:
self.setText("%d" % (value))
@@ -72,7 +80,9 @@ class TunerInfo(GUIComponent):
def getValue(self, what):
if self.statusDict:
- if what == self.SNR:
+ if what == self.SNR_DB:
+ return self.statusDict.get("tuner_signal_quality_db", 0x12345678)
+ elif what == self.SNR:
return self.statusDict.get("tuner_signal_quality", 0)
elif what == self.AGC:
return self.statusDict.get("tuner_signal_power", 0)
@@ -85,7 +95,9 @@ class TunerInfo(GUIComponent):
if service is not None:
feinfo = service.frontendInfo()
if feinfo is not None:
- if what == self.SNR:
+ if what == self.SNR_DB:
+ return feinfo.getFrontendInfo(iFrontendInformation.signalQualitydB)
+ elif what == self.SNR:
return feinfo.getFrontendInfo(iFrontendInformation.signalQuality)
elif what == self.AGC:
return feinfo.getFrontendInfo(iFrontendInformation.signalPower)
@@ -96,7 +108,9 @@ class TunerInfo(GUIComponent):
elif self.frontendfkt:
frontend = self.frontendfkt()
if frontend:
- if what == self.SNR:
+ if what == self.SNR_DB:
+ return frontend.readFrontendData(iFrontendInformation.signalQualitydB)
+ elif what == self.SNR:
return frontend.readFrontendData(iFrontendInformation.signalQuality)
elif what == self.AGC:
return frontend.readFrontendData(iFrontendInformation.signalPower)
diff --git a/lib/python/Plugins/Extensions/DVDPlayer/plugin.py b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py
index b7d66a82..29e69ee1 100644
--- a/lib/python/Plugins/Extensions/DVDPlayer/plugin.py
+++ b/lib/python/Plugins/Extensions/DVDPlayer/plugin.py
@@ -1,5 +1,5 @@
from os import path as os_path, remove as os_remove, listdir as os_listdir, system
-from enigma import eTimer, iPlayableService, iServiceInformation, eServiceReference, iServiceKeys
+from enigma import eTimer, iPlayableService, iServiceInformation, eServiceReference, iServiceKeys, getDesktop
from Screens.Screen import Screen
from Screens.MessageBox import MessageBox
from Screens.ChoiceBox import ChoiceBox
@@ -109,10 +109,11 @@ class DVDSummary(Screen):
self["Title"].setText(title)
class DVDOverlay(Screen):
- skin = """<screen name="DVDOverlay" position="0,0" size="720,576" flags="wfNoBorder" zPosition="-1" backgroundColor="transparent" />"""
def __init__(self, session, args = None):
+ desktop_size = getDesktop(0).size()
+ DVDOverlay.skin = """<screen name="DVDOverlay" position="0,0" size="%d,%d" flags="wfNoBorder" zPosition="-1" backgroundColor="transparent" />""" %(desktop_size.width(), desktop_size.height())
Screen.__init__(self, session)
-
+
class ChapterZap(Screen):
skin = """
<screen name="ChapterZap" position="235,255" size="250,60" title="Chapter" >
@@ -352,7 +353,7 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
if file.mimetype == "video/x-dvd":
self.dvd_device = devicepath
print "physical dvd found:", self.dvd_device
- self.physicalDVD = True
+ self.physicalDVD = True
self.dvd_filelist = dvd_filelist
self.onFirstExecBegin.append(self.showFileBrowser)
@@ -387,9 +388,6 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
def serviceStarted(self): #override InfoBarShowHide function
self.dvdScreen.show()
- subs = self.getServiceInterface("subtitle")
- if subs:
- subs.enableSubtitles(self.dvdScreen.instance, None)
def doEofInternal(self, playing):
if self.in_menu:
@@ -588,6 +586,9 @@ class DVDPlayer(Screen, InfoBarBase, InfoBarNotifications, InfoBarSeek, InfoBarP
self.service = self.session.nav.getCurrentService()
print "self.service", self.service
print "cur_dlg", self.session.current_dialog
+ subs = self.getServiceInterface("subtitle")
+ if subs:
+ subs.enableSubtitles(self.dvdScreen.instance, None)
def exitCB(self, answer):
if answer is not None:
diff --git a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp
index 1add04ab..02c0ca94 100644
--- a/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp
+++ b/lib/python/Plugins/Extensions/DVDPlayer/src/servicedvd.cpp
@@ -87,30 +87,48 @@ DEFINE_REF(eServiceDVD);
eServiceDVD::eServiceDVD(const char *filename):
m_filename(filename),
m_ddvdconfig(ddvd_create()),
- m_pixmap(new gPixmap(eSize(720, 576), 32)),
m_subtitle_widget(0),
m_state(stIdle),
m_current_trick(0),
m_pump(eApp, 1)
{
+ int aspect = DDVD_16_9;
+ int policy = DDVD_PAN_SCAN;
+
+ char tmp[255];
+ ssize_t rd;
+
m_sn = eSocketNotifier::create(eApp, ddvd_get_messagepipe_fd(m_ddvdconfig), eSocketNotifier::Read|eSocketNotifier::Priority|eSocketNotifier::Error|eSocketNotifier::Hungup);
- std::string aspect;
eDebug("SERVICEDVD construct!");
// create handle
ddvd_set_dvd_path(m_ddvdconfig, filename);
ddvd_set_ac3thru(m_ddvdconfig, 0);
ddvd_set_language(m_ddvdconfig, "de");
- if (ePythonConfigQuery::getConfigValue("config.av.aspect", aspect) != 0)
- aspect = "16_9";
- if (aspect == "4_3_letterbox")
- ddvd_set_video(m_ddvdconfig, DDVD_4_3_LETTERBOX, DDVD_PAL);
- else if (aspect == "4_3_panscan")
- ddvd_set_video(m_ddvdconfig, DDVD_4_3_PAN_SCAN, DDVD_PAL);
- else
- ddvd_set_video(m_ddvdconfig, DDVD_16_9, DDVD_PAL);
+ int fd = open("/proc/stb/video/aspect", O_RDONLY);
+ if (fd > -1)
+ {
+ rd = read(fd, tmp, 255);
+ if (rd > 2 && !strncmp(tmp, "4:3", 3))
+ aspect = DDVD_4_3;
+ else if (rd > 4 && !strncmp(tmp, "16:10", 5))
+ aspect = DDVD_16_10;
+ close(fd);
+ }
+
+ fd = open("/proc/stb/video/policy", O_RDONLY);
+ if (fd > -1)
+ {
+ rd = read(fd, tmp, 255);
+ if (rd > 6 && !strncmp(tmp, "bestfit", 7))
+ aspect = DDVD_JUSTSCALE;
+ else if (rd > 8 && !strncmp(tmp, "letterbox", 9))
+ aspect = DDVD_LETTERBOX;
+ close(fd);
+ }
+
+ ddvd_set_video(m_ddvdconfig, aspect, policy, DDVD_PAL /*unused*/);
- ddvd_set_lfb(m_ddvdconfig, (unsigned char *)m_pixmap->surface->data, 720, 576, 4, 720*4);
CONNECT(m_sn->activated, eServiceDVD::gotMessage);
CONNECT(m_pump.recv_msg, eServiceDVD::gotThreadMessage);
strcpy(m_ddvd_titlestring,"");
@@ -158,8 +176,11 @@ void eServiceDVD::gotMessage(int /*what*/)
}
case DDVD_SCREEN_UPDATE:
eDebug("DVD_SCREEN_UPDATE!");
- if (m_subtitle_widget)
- m_subtitle_widget->setPixmap(m_pixmap, eRect(0, 0, 720, 576));
+ if (m_subtitle_widget) {
+ int x1,x2,y1,y2;
+ ddvd_get_last_blit_area(m_ddvdconfig, &x1, &x2, &y1, &y2);
+ m_subtitle_widget->setPixmap(m_pixmap, eRect(x1, y1, x2-x1, y2-y1));
+ }
break;
case DDVD_SHOWOSD_STATE_PLAY:
{
@@ -259,6 +280,7 @@ eServiceDVD::~eServiceDVD()
kill();
saveCuesheet();
ddvd_close(m_ddvdconfig);
+ disableSubtitles(0);
}
RESULT eServiceDVD::connectEvent(const Slot2<void,iPlayableService*,int> &event, ePtr<eConnection> &connection)
@@ -272,7 +294,6 @@ RESULT eServiceDVD::start()
assert(m_state == stIdle);
m_state = stRunning;
eDebug("eServiceDVD starting");
- run();
// m_event(this, evStart);
return 0;
}
@@ -514,13 +535,23 @@ PyObject *eServiceDVD::getInfoObject(int w)
RESULT eServiceDVD::enableSubtitles(eWidget *parent, SWIG_PYOBJECT(ePyObject) /*entry*/)
{
- if (m_subtitle_widget)
- delete m_subtitle_widget;
+ delete m_subtitle_widget;
+
m_subtitle_widget = new eSubtitleWidget(parent);
m_subtitle_widget->resize(parent->size());
- m_subtitle_widget->setPixmap(m_pixmap, eRect(0, 0, 720, 576));
+
+ eSize size = parent->size();
+
+ if (!m_pixmap)
+ {
+ m_pixmap = new gPixmap(size, 32);
+ ddvd_set_lfb(m_ddvdconfig, (unsigned char *)m_pixmap->surface->data, size.width(), size.height(), 4, size.width()*4);
+ run(); // start the thread
+ }
+
m_subtitle_widget->setZPosition(-1);
m_subtitle_widget->show();
+
return 0;
}
diff --git a/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py b/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py
index d67a97cb..928d72a6 100644
--- a/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py
+++ b/lib/python/Plugins/SystemPlugins/PositionerSetup/plugin.py
@@ -26,22 +26,20 @@ class PositionerSetup(Screen):
<widget name="green" position="140,155" size="140,80" backgroundColor="green" halign="center" valign="center" font="Regular;21" />
<widget name="yellow" position="280,155" size="140,80" backgroundColor="yellow" halign="center" valign="center" font="Regular;21" />
<widget name="blue" position="420,155" size="140,80" backgroundColor="blue" halign="center" valign="center" font="Regular;21" />
-
- <widget name="snr" text="SNR:" position="0,245" size="60,22" font="Regular;21" />
- <widget name="agc" text="AGC:" position="0,270" size="60,22" font="Regular;21" />
- <widget name="ber" text="BER:" position="0,295" size="60,22" font="Regular;21" />
- <widget name="lock" text="Lock:" position="0,320" size="60,22" font="Regular;21" />
- <widget name="snr_percentage" position="220,245" size="60,22" font="Regular;21" />
- <widget name="agc_percentage" position="220,270" size="60,22" font="Regular;21" />
+
+ <widget name="snr_db" position="60,245" size="150,22" halign="center" valign="center" font="Regular;21" />
+ <eLabel text="SNR:" position="0,270" size="60,22" font="Regular;21" />
+ <eLabel text="BER:" position="0,295" size="60,22" font="Regular;21" />
+ <eLabel text="Lock:" position="0,320" size="60,22" font="Regular;21" />
+ <widget name="snr_percentage" position="220,270" size="60,22" font="Regular;21" />
<widget name="ber_value" position="220,295" size="60,22" font="Regular;21" />
<widget name="lock_state" position="60,320" size="150,22" font="Regular;21" />
- <widget name="snr_bar" position="60,245" size="150,22" />
- <widget name="agc_bar" position="60,270" size="150,22" />
+ <widget name="snr_bar" position="60,270" size="150,22" />
<widget name="ber_bar" position="60,295" size="150,22" />
- <widget name="frequency" text="Frequency:" position="300,245" size="120,22" font="Regular;21" />
- <widget name="symbolrate" text="Symbolrate:" position="300,270" size="120,22" font="Regular;21" />
- <widget name="fec" text="FEC:" position="300,295" size="120,22" font="Regular;21" />
+ <eLabel text="Frequency:" position="300,245" size="120,22" font="Regular;21" />
+ <eLabel text="Symbolrate:" position="300,270" size="120,22" font="Regular;21" />
+ <eLabel text="FEC:" position="300,295" size="120,22" font="Regular;21" />
<widget name="frequency_value" position="420,245" size="120,22" font="Regular;21" />
<widget name="symbolrate_value" position="420,270" size="120,22" font="Regular;21" />
<widget name="fec_value" position="420,295" size="120,22" font="Regular;21" />
@@ -81,27 +79,18 @@ class PositionerSetup(Screen):
self["yellow"] = self.yellow
self.blue = Label("")
self["blue"] = self.blue
-
+
self.list = []
self["list"] = ConfigList(self.list)
self.createSetup()
-
- self["snr"] = Label()
- self["agc"] = Label()
- self["ber"] = Label()
- self["lock"] = Label()
+
+ self["snr_db"] = TunerInfo(TunerInfo.SNR_DB, statusDict = self.frontendStatus)
self["snr_percentage"] = TunerInfo(TunerInfo.SNR_PERCENTAGE, statusDict = self.frontendStatus)
- self["agc_percentage"] = TunerInfo(TunerInfo.AGC_PERCENTAGE, statusDict = self.frontendStatus)
self["ber_value"] = TunerInfo(TunerInfo.BER_VALUE, statusDict = self.frontendStatus)
self["snr_bar"] = TunerInfo(TunerInfo.SNR_BAR, statusDict = self.frontendStatus)
- self["agc_bar"] = TunerInfo(TunerInfo.AGC_BAR, statusDict = self.frontendStatus)
self["ber_bar"] = TunerInfo(TunerInfo.BER_BAR, statusDict = self.frontendStatus)
self["lock_state"] = TunerInfo(TunerInfo.LOCK_STATE, statusDict = self.frontendStatus)
- self["frequency"] = Label()
- self["symbolrate"] = Label()
- self["fec"] = Label()
-
self["frequency_value"] = Label("")
self["symbolrate_value"] = Label("")
self["fec_value"] = Label("")
@@ -329,11 +318,10 @@ class PositionerSetup(Screen):
def updateStatus(self):
if self.frontend:
self.frontend.getFrontendStatus(self.frontendStatus)
+ self["snr_db"].update()
self["snr_percentage"].update()
- self["agc_percentage"].update()
self["ber_value"].update()
self["snr_bar"].update()
- self["agc_bar"].update()
self["ber_bar"].update()
self["lock_state"].update()
transponderdata = self.tuner.getTransponderData()
diff --git a/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py b/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py
index 74568855..064ac673 100644
--- a/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py
+++ b/lib/python/Plugins/SystemPlugins/Satfinder/plugin.py
@@ -39,46 +39,6 @@ class Tuner:
self.frontend.tune(self.lastparm)
class Satfinder(ScanSetup):
- skin = """
- <screen position="90,100" size="520,400" title="Tune">
- <widget name="config" position="20,10" size="460,210" scrollbarMode="showOnDemand" />
- <widget name="introduction" position="20,360" zPosition="-10" size="350,30" font="Regular;23" />
- <eLabel text="dB:" position="23,230" size="60,22" font="Regular;21" />
- <eLabel text="SNR:" position="23,255" size="60,22" font="Regular;21" />
- <eLabel text="AGC:" position="23,280" size="60,22" font="Regular;21" />
- <eLabel text="BER:" position="23,305" size="60,22" font="Regular;21" />
- <eLabel text="Lock:" position="23,330" size="60,22" font="Regular;21" />
- <widget source="Frontend" render="Label" position="295,230" size="60,22" font="Regular;21" >
- <convert type="FrontendInfo">SNRdB</convert>
- </widget>
- <widget source="Frontend" render="Label" position="295,255" size="60,22" font="Regular;21" >
- <convert type="FrontendInfo">SNR</convert>
- </widget>
- <widget source="Frontend" render="Label" position="295,280" size="60,22" font="Regular;21" >
- <convert type="FrontendInfo">AGC</convert>
- </widget>
- <widget source="Frontend" render="Label" position="295,305" size="60,22" font="Regular;21" >
- <convert type="FrontendInfo">BER</convert>
- </widget>
- <widget source="Frontend" render="Progress" position="85,257" size="200,22" >
- <convert type="FrontendInfo">SNR</convert>
- </widget>
- <widget source="Frontend" render="Progress" position="85,282" size="200,22" >
- <convert type="FrontendInfo">AGC</convert>
- </widget>
- <widget source="Frontend" render="Progress" position="85,307" size="200,22" >
- <convert type="FrontendInfo">BER</convert>
- </widget>
- <widget source="Frontend" render="Pixmap" pixmap="skin_default/buttons/key_green.png" position="295,330" zPosition="4" size="28,20" alphatest="on" >
- <convert type="FrontendInfo">LOCK</convert>
- <convert type="ConditionalShowHide" />
- </widget>
- <widget source="Frontend" render="Pixmap" pixmap="skin_default/buttons/key_red.png" position="295,330" zPosition="4" size="28,20" alphatest="on" >
- <convert type="FrontendInfo">LOCK</convert>
- <convert type="ConditionalShowHide">Invert</convert>
- </widget>
- </screen>"""
-
def openFrontend(self):
res_mgr = eDVBResourceManager.getInstance()
if res_mgr:
diff --git a/lib/python/Tools/NumericalTextInput.py b/lib/python/Tools/NumericalTextInput.py
index be4cf01f..c5576405 100644
--- a/lib/python/Tools/NumericalTextInput.py
+++ b/lib/python/Tools/NumericalTextInput.py
@@ -1,4 +1,4 @@
-# -*- coding: iso-8859-1 -*-
+# -*- coding: utf-8 -*-
from enigma import eTimer
from Components.Language import language
@@ -33,33 +33,33 @@ class NumericalTextInput:
if self.lang == 'de_DE':
self.mapping.append (u".,?'+\"0-()@/:_$!") # 0
self.mapping.append (u" 1") # 1
- self.mapping.append (u"abc2ABC") # 2
+ self.mapping.append (u"aäbc2AÄBC") # 2
self.mapping.append (u"def3DEF") # 3
self.mapping.append (u"ghi4GHI") # 4
self.mapping.append (u"jkl5JKL") # 5
- self.mapping.append (u"mno6MNO") # 6
- self.mapping.append (u"pqrs7PQRS") # 7
- self.mapping.append (u"tuv8TUV") # 8
+ self.mapping.append (u"mnoö6MNOÖ") # 6
+ self.mapping.append (u"pqrsß7PQRSß") # 7
+ self.mapping.append (u"tuüv8TUÜV") # 8
self.mapping.append (u"wxyz9WXYZ") # 9
elif self.lang == 'es_ES':
self.mapping.append (u".,?'+\"0-()@/:_$!") # 0
self.mapping.append (u" 1") # 1
- self.mapping.append (u"abc2ABC") # 2
- self.mapping.append (u"def3DEF") # 3
- self.mapping.append (u"ghi4GHI") # 4
+ self.mapping.append (u"abcáà2ABCÁÀ") # 2
+ self.mapping.append (u"deéèf3DEFÉÈ") # 3
+ self.mapping.append (u"ghiíì4GHIÍÌ") # 4
self.mapping.append (u"jkl5JKL") # 5
- self.mapping.append (u"mno6MNO") # 6
+ self.mapping.append (u"mnñoóò6MNÑOÓÒ") # 6
self.mapping.append (u"pqrs7PQRS") # 7
- self.mapping.append (u"tuv8TUV") # 8
+ self.mapping.append (u"tuvúù8TUVÚÙ") # 8
self.mapping.append (u"wxyz9WXYZ") # 9
if self.lang in ['sv_SE', 'fi_FI']:
self.mapping.append (u".,?'+\"0-()@/:_$!") # 0
self.mapping.append (u" 1") # 1
- self.mapping.append (u"abc2ABC") # 2
- self.mapping.append (u"def3DEF") # 3
+ self.mapping.append (u"abcåä2ABCÅÄ") # 2
+ self.mapping.append (u"defé3DEFÉ") # 3
self.mapping.append (u"ghi4GHI") # 4
self.mapping.append (u"jkl5JKL") # 5
- self.mapping.append (u"mno6MNO") # 6
+ self.mapping.append (u"mnoö6MNOÖ") # 6
self.mapping.append (u"pqrs7PQRS") # 7
self.mapping.append (u"tuv8TUV") # 8
self.mapping.append (u"wxyz9WXYZ") # 9