Browse files

Merge remote-tracking branch 'e2/master'

  • Loading branch information...
2 parents 6d2387f + 0410eaf commit aa2ff9fb107694ac0cdc905313a78db9a39e46b3 @andyblac andyblac committed Mar 19, 2013
Showing with 2,932 additions and 1,198 deletions.
  1. +1 −0 Makefile.am
  2. +5 −0 autotimer/src/AutoTimerResource.py
  3. +53 −43 autotimer/src/web-data/autotimereditor.js
  4. +1 −1 autotimer/src/web-data/index.html
  5. +117 −37 autotimer/src/web-data/style.css
  6. +3 −0 configure.ac
  7. +2 −2 ecasa/src/EcasaGui.py
  8. +1 −1 eurotictv/src/plugin.py
  9. +2 −0 eventlist/CONTROL/control
  10. +1 −0 eventlist/Makefile.am
  11. +84 −0 eventlist/src/EventList.py
  12. +98 −0 eventlist/src/EventListDisplay.py
  13. +6 −0 eventlist/src/Makefile.am
  14. +35 −0 eventlist/src/README
  15. +113 −113 fancontrol2/po/de.po
  16. +1 −1 fancontrol2/po/fa.po
  17. +2 −2 fancontrol2/po/fr.po
  18. +2 −2 fancontrol2/po/it.po
  19. +296 −0 fancontrol2/po/pl.po
  20. +2 −1 fancontrol2/src/globals.py
  21. +7 −10 fancontrol2/src/plugin.py
  22. +199 −0 fancontrol2/src/readmepl.txt
  23. +4 −6 flashexpander/src/Makefile.am
  24. +20 −5 fritzcall/po/FritzCall.pot
  25. +24 −7 fritzcall/po/de.po
  26. +20 −5 fritzcall/po/es.po
  27. +508 −436 fritzcall/po/it.po
  28. +20 −5 fritzcall/po/nl.po
  29. +20 −5 fritzcall/po/sr.po
  30. +20 −5 fritzcall/po/tr.po
  31. +72 −65 fritzcall/src/FritzCallFBF.py
  32. +406 −256 fritzcall/src/plugin.py
  33. +1 −1 googlemaps/src/WebPixmap.py
  34. +1 −1 imdb/src/plugin.py
  35. +18 −5 internetradio/src/InternetRadioCover.py
  36. +30 −1 internetradio/src/InternetRadioScreen.py
  37. +18 −3 internetradio/src/web-data/internetradio.js
  38. +2 −2 lastfm/src/plugin.py
  39. +1 −1 merlinmusicplayer/src/plugin.py
  40. +1 −1 mytube/CONTROL/control
  41. +6 −1 mytube/src/MyTubeSearch.py
  42. +187 −10 mytube/src/MyTubeService.py
  43. +99 −12 mytube/src/plugin.py
  44. +1 −1 ofdb/src/plugin.py
  45. +1 −1 pushservice/src/Controller/RecordNotification.py
  46. +1 −1 pushservice/src/plugin.py
  47. +4 −4 unwetterinfo/src/plugin.py
  48. +1 −1 weatherplugin/src/plugin.py
  49. +1 −1 webcamviewer/src/PictureScreen.py
  50. +1 −1 webcamviewer/src/plugin.py
  51. +11 −8 webinterface/src/WebComponents/Sources/Timer.py
  52. +10 −9 webinterface/src/plugin.py
  53. +133 −102 webinterface/src/web-data/core.js
  54. BIN webinterface/src/web-data/img/dreamboxweb_light.png
  55. +1 −0 webinterface/src/web-data/tpl/default/Makefile.am
  56. +8 −13 webinterface/src/web-data/tpl/default/index.html
  57. +5 −1 webinterface/src/web-data/tpl/default/style.min.css
  58. +225 −0 webinterface/src/web-data/tpl/default/style_light.min.css
  59. +2 −2 webinterface/src/web-data/tpl/default/tplNavExtrasExternals.htm
  60. +13 −2 webinterface/src/web-data/tpl/default/tplSettings.htm
  61. +1 −1 widgets/src/widgets/imageswitch/WebPixmap.py
  62. +1 −1 widgets/src/widgets/imageswitch/widget.py
  63. +3 −3 youtubeplayer/src/YouTubeList.py
View
1 Makefile.am
@@ -26,6 +26,7 @@ SUBDIRS = \
epgrefresh \
epgsearch \
eurotictv \
+ eventlist \
filebrowser \
flashexpander \
fritzcall \
View
5 autotimer/src/AutoTimerResource.py
@@ -94,6 +94,11 @@ def renderBackground(self, req):
class AutoTimerListAutoTimerResource(AutoTimerBaseResource):
def render(self, req):
+ # We re-read the config so we won't display empty or wrong information
+ try:
+ autotimer.readXml()
+ except Exception:
+ return self.returnResult(req, False, _("Couldn't load config file!"))
# show xml
req.setResponseCode(http.OK)
req.setHeader('Content-type', 'application/xhtml+xml')
View
96 autotimer/src/web-data/autotimereditor.js
@@ -44,7 +44,7 @@ function url() {
this.gettags = "/web/gettags";
this.getservices = '/web/getservices';
};
-var URL = new url();
+Object.extend(URL, new url());
var types = {};
types['include'] = 'Include';
@@ -196,49 +196,52 @@ function getAttribute(xml, key, defaults){
return value;
}
-
///////////////////////////////////////////////////////////////////////////////
// AutoTimerEditorCore
var AutoTimerEditorCore = Class.create({
initialize: function(name, servicename, servicereference, from, to){
// Check WebIf Version
if (typeof core == "undefined"){
alert("Old WebInterface found!\nPlease update the WebInterface Plugin first.");
-
- } else {
- // Start AutoTimer WebIf
- this.newautotimer = {
- 'enabled' : 'yes',
- 'name' : name,
- 'match' : name,
- 'from' : from,
- 'to' : to,
- 'e2servicename' : servicename,
- 'e2servicereference' : servicereference,
- }
-
- // Instantiate all elements
- this.services = new AutoTimerServiceController();
- this.settings = new AutoTimerSettingsController();
-
- this.menu = new AutoTimerMenuController('contentAutoTimerMenu');
- this.list = new AutoTimerListController('contentAutoTimerList');
- this.edit = new AutoTimerEditController('contentAutoTimerContent');
- this.preview = new AutoTimerPreviewController('contentAutoTimerContent');
- this.parse = new AutoTimerParseController('contentAutoTimerContent');
- this.timers = new TimerController('contentAutoTimerContent');
- this.about = new AboutPage('contentAutoTimerContent');
-
- // Display menu
- this.menu.load();
-
- // Load locations and tags
- core.lt.getLocationsAndTags(this.loadLocationsAndTagsCallback.bind(this));
- // Load bouquet list
- this.services.loadBouquetsTv(this.loadBouquetsCallback.bind(this));
- // Load autotimer settings
- this.settings.load(this.loadSettingsCallback.bind(this));
+ return;
}
+ // Start AutoTimer WebIf
+ this.newautotimer = {
+ 'enabled' : 'yes',
+ 'name' : name,
+ 'match' : name,
+ 'from' : from,
+ 'to' : to,
+ 'e2servicename' : servicename,
+ 'e2servicereference' : servicereference,
+ };
+
+ // Instantiate all elements
+ this.services = new AutoTimerServiceController();
+ this.settings = new AutoTimerSettingsController();
+ this.menu = new AutoTimerMenuController('contentAutoTimerMenu');
+ this.list = new AutoTimerListController('contentAutoTimerList');
+ this.edit = new AutoTimerEditController('contentAutoTimerContent');
+ this.preview = new AutoTimerPreviewController('contentAutoTimerContent');
+ this.parse = new AutoTimerParseController('contentAutoTimerContent');
+ this.timers = new TimerController('contentAutoTimerContent');
+ this.about = new AboutPage('contentAutoTimerContent');
+ this.sessionProvider = new SessionProvider( this.onSessionAvailable.bind(this) );
+ this.sessionProvider.load({});
+ },
+
+ onSessionAvailable: function(sid){
+ debug("[AutoTimerEditorCore].onSessionAvailable, " + sid)
+ global_sessionid = sid;
+ // Display menu
+ this.menu.load();
+
+ // Load locations and tags
+ core.lt.getLocationsAndTags(this.loadLocationsAndTagsCallback.bind(this));
+ // Load bouquet list
+ this.services.loadBouquetsTv(this.loadBouquetsCallback.bind(this));
+ // Load autotimer settings
+ this.settings.load(this.loadSettingsCallback.bind(this));
},
loadLocationsAndTagsCallback: function(currentLocation, locations, tags){
@@ -1313,7 +1316,14 @@ var AboutPage = Class.create({
///////////////////////////////////////////////////////////////////////////////
// Handler
-var AutoTimerServiceListHandler = Class.create(AbstractContentHandler, {
+var AbstractATContentHandler = Class.create(AbstractContentHandler, {
+ show: function(data){
+ this.data = data;
+ atTemplateEngine.process(this.tpl, data, this.target, this.finished.bind(this));
+ }
+});
+
+var AutoTimerServiceListHandler = Class.create(AbstractATContentHandler, {
initialize: function($super){
$super(null, null);
this.provider = new SimpleServiceListProvider (this.onReady.bind(this));
@@ -1337,7 +1347,7 @@ var AutoTimerServiceListHandler = Class.create(AbstractContentHandler, {
}
});
-var AutoTimerSettingsHandler = Class.create(AbstractContentHandler, {
+var AutoTimerSettingsHandler = Class.create(AbstractATContentHandler, {
initialize: function($super){
$super(null, null);
this.provider = new AutoTimerSettingsProvider(this.onReady.bind(this));
@@ -1356,7 +1366,7 @@ var AutoTimerSettingsHandler = Class.create(AbstractContentHandler, {
}
});
-var AutoTimerMenuHandler = Class.create(AbstractContentHandler,{
+var AutoTimerMenuHandler = Class.create(AbstractATContentHandler,{
initialize: function($super, target){
$super('tplAutoTimerMenu', target);
this.provider = new SimpleRequestProvider();
@@ -1398,7 +1408,7 @@ var AutoTimerMenuHandler = Class.create(AbstractContentHandler,{
},
});
-var AutoTimerListHandler = Class.create(AbstractContentHandler, {
+var AutoTimerListHandler = Class.create(AbstractATContentHandler, {
initialize: function($super, target){
$super('tplAutoTimerList', target);
this.provider = new AutoTimerListProvider(this.show.bind(this));
@@ -1430,7 +1440,7 @@ var AutoTimerListHandler = Class.create(AbstractContentHandler, {
},
});
-var AutoTimerEditHandler = Class.create(AbstractContentHandler, {
+var AutoTimerEditHandler = Class.create(AbstractATContentHandler, {
initialize: function($super, target){
$super('tplAutoTimerEdit', target);
this.provider = new AutoTimerEditProvider(this.show.bind(this));
@@ -1456,15 +1466,15 @@ var AutoTimerEditHandler = Class.create(AbstractContentHandler, {
},
});
-var AutoTimerPreviewHandler = Class.create(AbstractContentHandler, {
+var AutoTimerPreviewHandler = Class.create(AbstractATContentHandler, {
initialize: function($super, target){
$super('tplAutoTimerPreview', target);
this.provider = new AutoTimerPreviewProvider(this.show.bind(this));
this.ajaxload = true;
},
});
-var AutoTimerParseHandler = Class.create(AbstractContentHandler, {
+var AutoTimerParseHandler = Class.create(AbstractATContentHandler, {
initialize: function($super, target){
$super(null, target);
this.provider = new SimpleRequestProvider();
View
2 autotimer/src/web-data/index.html
@@ -118,8 +118,8 @@
}
// Instantiate the AutotimerEditor
+ var atTemplateEngine = new TemplateEngine('/autotimereditor/');
autotimereditorcore = new AutoTimerEditorCore(GET('name'), GET('servicename'), GET('servicereference'), GET('from'), GET('to'));
-
</script>
</body>
View
154 autotimer/src/web-data/style.css
@@ -353,8 +353,6 @@
color: #485052;
}
.editor{
- margin-top: 5px;
- margin-bottom: 5px;
width: 100%;
}
@@ -497,84 +495,166 @@
/**************
AutoTimer Timers
**************/
- #timerlist{
- width: 100%;
- }
- #timerlist tr{
- margin-bottom: 3px;
- }
- #timerlist td{
- vertical-align: text-top;
- padding-top: 3px;
+ #contentAutoTimerContent{
+ padding: 8px;
}
-
+
.tListItemTable {
- width: 100%
+ position: relative;
+ top: 0;
+ left: 0;
+ margin-left: 22px;
+ width: 585px !important
}
-
+
.tListSName {
text-align: left
}
-
+
.tListItem {
font-weight: bold;
font-size: 13px
}
-
+
.tListTitle {
width: 150px;
text-align: left
}
-
+
.tListDescr {
width: 150px;
text-align: left
}
-
+
.tListRepeat {
- width: 70px;
+ width: 120px;
text-align: left
}
-
+
.tListDuration {
- width: 70px;
+ width: 120px;
text-align: left
}
-
+
.tListBegin {
- width: 100px;
+ width: 170px;
text-align: left
}
-
+
.tListEnd {
- width: 100px;
+ width: 170px;
text-align: left
}
-
+
.tListAfter {
width: 85px;
text-align: left
}
-
+
+ .tListType {
+ width: 85px;
+ text-align: left
+ }
+
.tListOption {
- width: 80px;
- text-align: center
+ text-align: right;
+ vertical-align: bottom;
+ z-index: 9999
}
-
+
+ .tListDelete {
+ position: absolute;
+ bottom: 2px;
+ right: 1px;
+ height: 26px;
+ width: 100px;
+ margin: 0px;
+ padding: 0
+ }
+
+ .tListToggleDisabled {
+ position: absolute;
+ bottom: 2px;
+ right: 105px;
+ height: 26px;
+ width: 100px;
+ margin: 0;
+ padding: 0
+ }
+
+ .tListButton {
+ margin: 0;
+ height: 100%;
+ width: 100px;
+ font-size: 11px;
+ vertical-align: middle
+ }
+
+ div.legendRow {
+ height: auto;
+ overflow: auto
+ }
+
+ div.legendCol {
+ float: left;
+ width: 100px;
+ padding-left: 2px
+ }
+
+ .timerState {
+ position: absolute;
+ top: 0;
+ left: 0;
+ height: 100%;
+ width: 10px;
+ display: block;
+ padding: 0
+ }
+
.timerState0 {
- color: #485052
+ background: #485052;
+ color: #FFFFFF
}
-
+
.timerState1 {
- color: #900
+ background: #BD282D;
+ color: #FFFFFF
}
-
+
.timerState2 {
- color: #090
+ background: #2DBD28;
+ color: #FFFFFF
}
-
+
.timerState3 {
- color: #009
+ background: #282DBD;
+ color: #FFFFFF
+ }
+
+ td.timerList {
+ width: 100%;
+ position: relative;
+ margin: 0;
+ padding: 0;
+ border-bottom: 1px solid #AAA;
+ display: block;
+ padding-bottom: 30px;
+ }
+
+ a.tListEdit {
+ display: block;
+ margin: 0;
+ padding: 1px
+ }
+
+ a.tListEdit:hover {
+ display: block;
+ margin: 0;
+ background: #DDD
+ }
+
+ #timerEditForm table {
+ cell-spacing: 1px
}
View
3 configure.ac
@@ -275,6 +275,9 @@ eurotictv/meta/Makefile
eurotictv/po/Makefile
eurotictv/src/Makefile
+eventlist/Makefile
+eventlist/src/Makefile
+
fancontrol2/Makefile
fancontrol2/meta/Makefile
fancontrol2/po/Makefile
View
4 ecasa/src/EcasaGui.py
@@ -170,7 +170,7 @@ def gotPicture(self, picInfo=None):
idx = self.pictures.index(self.currentphoto)
realIdx = (idx - self.offset) % self.PICS_PER_PAGE
if ptr is not None:
- self['image%d' % realIdx].instance.setPixmap(ptr.__deref__())
+ self['image%d' % realIdx].instance.setPixmap(ptr)
else:
our_print("gotPicture got invalid results for idx", idx, "("+str(realIdx)+")")
# NOTE: we could use a different picture here that indicates a failure
@@ -654,7 +654,7 @@ def gotPicture(self, picInfo=None):
our_print("picture decoded")
ptr = self.picload.getData()
if ptr is not None:
- self['pixmap'].instance.setPixmap(ptr.__deref__())
+ self['pixmap'].instance.setPixmap(ptr)
if self.nextPhoto is not None:
self.timer.start(config.plugins.ecasa.slideshow_interval.value*1000, True)
View
2 eurotictv/src/plugin.py
@@ -125,7 +125,7 @@ def setState(self, state):
def paintPosterPixmapCB(self, picInfo=None):
ptr = self.picload.getData()
if ptr != None:
- self["poster"].instance.setPixmap(ptr.__deref__())
+ self["poster"].instance.setPixmap(ptr)
self["poster"].show()
def __streamStarted(self):
View
2 eventlist/CONTROL/control
@@ -0,0 +1,2 @@
+Description: Eventlist Converter and Renderer to display n events and primetime
+Depends: enigma2
View
1 eventlist/Makefile.am
@@ -0,0 +1 @@
+SUBDIRS = src
View
84 eventlist/src/EventList.py
@@ -0,0 +1,84 @@
+# -*- coding: utf-8 -*-
+#
+# EventList - Converter
+#
+# Coded by Dr.Best (c) 2013
+# Support: www.dreambox-tools.info
+# E-Mail: dr.best@dreambox-tools.info
+#
+# This plugin is open source but it is NOT free software.
+#
+# This plugin may only be distributed to and executed on hardware which
+# is licensed by Dream Multimedia GmbH.
+# In other words:
+# It's NOT allowed to distribute any parts of this plugin or its source code in ANY way
+# to hardware which is NOT licensed by Dream Multimedia GmbH.
+# It's NOT allowed to execute this plugin and its source code or even parts of it in ANY way
+# on hardware which is NOT licensed by Dream Multimedia GmbH.
+#
+# If you want to use or modify the code or parts of it,
+# you have to keep MY license and inform me about the modifications by mail.
+#
+
+
+from Components.Converter.Converter import Converter
+from Components.Element import cached
+
+from enigma import eEPGCache, eServiceReference
+from time import localtime, strftime, mktime, time
+from datetime import datetime, timedelta
+
+class EventList(Converter, object):
+ def __init__(self, type):
+ Converter.__init__(self, type)
+ self.epgcache = eEPGCache.getInstance()
+ self.primetime = 0
+ self.eventcount = 0
+ if (len(type)):
+ args = type.split(',')
+ i = 0
+ while i <= len(args)-1:
+ type_c, value = args[i].split('=')
+ if type_c == "eventcount":
+ self.eventcount = int(value)
+ elif type_c == "primetime":
+ if value == "yes":
+ self.primetime = 1
+ i +=1
+ @cached
+ def getContent(self):
+ contentList = []
+ ref = self.source.service
+ info = ref and self.source.info
+ if info is None:
+ return []
+ curEvent = self.source.getCurrentEvent()
+ if curEvent:
+ self.epgcache.startTimeQuery(eServiceReference(ref.toString()), curEvent.getBeginTime() + curEvent.getDuration())
+ i = 1
+ while i <= (self.eventcount):
+ event = self.epgcache.getNextTimeEntry()
+ if event is not None:
+ contentList.append(self.getEventTuple(event),)
+ i +=1
+ if self.primetime == 1:
+ now = localtime(time())
+ dt = datetime(now.tm_year, now.tm_mon, now.tm_mday, 20, 15)
+ if time() > mktime(dt.timetuple()):
+ dt += timedelta(days=1) # skip to next day...
+ primeTime = int(mktime(dt.timetuple()))
+ self.epgcache.startTimeQuery(eServiceReference(ref.toString()), primeTime)
+ event = self.epgcache.getNextTimeEntry()
+ if event and (event.getBeginTime() <= int(mktime(dt.timetuple()))):
+ contentList.append(self.getEventTuple(event),)
+ return contentList
+
+ def getEventTuple(self,event):
+ time = "%s - %s" % (strftime("%H:%M", localtime(event.getBeginTime())), strftime("%H:%M", localtime(event.getBeginTime() + event.getDuration())))
+ title = event.getEventName()
+ duration = "%d min" % (event.getDuration() / 60)
+ return (time,title,duration)
+
+ def changed(self, what):
+ if what[0] != self.CHANGED_SPECIFIC:
+ Converter.changed(self, what)
View
98 eventlist/src/EventListDisplay.py
@@ -0,0 +1,98 @@
+# -*- coding: utf-8 -*-
+#
+# EventListDisplay - Renderer
+#
+# Coded by Dr.Best (c) 2013
+# Support: www.dreambox-tools.info
+# E-Mail: dr.best@dreambox-tools.info
+#
+# This plugin is open source but it is NOT free software.
+#
+# This plugin may only be distributed to and executed on hardware which
+# is licensed by Dream Multimedia GmbH.
+# In other words:
+# It's NOT allowed to distribute any parts of this plugin or its source code in ANY way
+# to hardware which is NOT licensed by Dream Multimedia GmbH.
+# It's NOT allowed to execute this plugin and its source code or even parts of it in ANY way
+# on hardware which is NOT licensed by Dream Multimedia GmbH.
+#
+# If you want to use or modify the code or parts of it,
+# you have to keep MY license and inform me about the modifications by mail.
+#
+
+from Renderer import Renderer
+from enigma import eCanvas, eRect, gFont
+from skin import parseColor, parseFont
+
+class EventListDisplay(Renderer):
+ GUI_WIDGET = eCanvas
+
+ def __init__(self):
+ Renderer.__init__(self)
+ self.backgroundColor = parseColor("#ff000000")
+ self.rowHeight = 20
+ self.columns = {}
+ self.primetimeoffset = 10
+
+ def pull_updates(self):
+ if self.instance is None:
+ return
+ self.instance.clear(self.backgroundColor)
+ content = self.source.getContent()
+ content_count = len(content)
+ primetime = self.source.primetime
+ if primetime == 1 and content_count == 1:
+ primetime = 0
+ y = 0
+ a = 1
+ for item in content:
+ i = 0
+ while i < 3:
+ if self.columns.has_key(str(i)):
+ value = self.columns[str(i)]
+ self.instance.writeText(eRect(value[0], y+int((self.rowHeight-value[4])/2), value[1], self.rowHeight), value[2], self.backgroundColor, value[3], item[value[5]], value[6])
+ i += 1
+ a += 1
+ y += self.rowHeight
+ if a == content_count and primetime == 1:
+ y += self.primetimeoffset
+
+ def changed(self, what):
+ self.pull_updates()
+
+ def applySkin(self, desktop, parent):
+
+ attribs = [ ]
+ from enigma import eSize
+
+ def parseSize(str):
+ x, y = str.split(',')
+ return eSize(int(x), int(y))
+
+ def parseColumnValue(value):
+ x, length, color, fontname, fontheight, align, itemindex = value.split(',')
+ return (int(x), int(length), parseColor(color), gFont(fontname,int(fontheight)), int(fontheight), int(itemindex), int(align))
+
+ for (attrib, value) in self.skinAttributes:
+ if attrib == "size":
+ self.instance.setSize(parseSize(value))
+ attribs.append((attrib,value))
+ elif attrib == "column0":
+ self.columns["0"] = parseColumnValue(value)
+ elif attrib == "column1":
+ self.columns["1"] = parseColumnValue(value)
+ elif attrib == "column2":
+ self.columns["2"] = parseColumnValue(value)
+ elif attrib == "rowHeight":
+ self.rowHeight = int(value)
+ elif attrib == "primetimeoffset":
+ self.primetimeoffset = int(value)
+ elif attrib == "backgroundColor":
+ self.backgroundColor = parseColor(value)
+ self.instance.clear(self.backgroundColor)
+ attribs.append((attrib,value))
+ else:
+ attribs.append((attrib,value))
+ self.skinAttributes = attribs
+ return Renderer.applySkin(self, desktop, parent)
+
View
6 eventlist/src/Makefile.am
@@ -0,0 +1,6 @@
+installdir = $(libdir)/enigma2/python/Plugins/Components/EventList
+rendererinstalldir = $(libdir)/enigma2/python/Components/Renderer
+converterinstalldir = $(libdir)/enigma2/python/Components/Converter
+install_DATA = README
+rendererinstall_PYTHON = EventListDisplay.py
+converterinstall_PYTHON = EventList.py
View
35 eventlist/src/README
@@ -0,0 +1,35 @@
+Description: Eventlist Converter and Renderer to display n events and primetime
+
+Usage example:
+
+<widget position="10,60" backgroundColor="transparent" transparent="1" alphatest="blend" render="EventListDisplay" size="800,100" source="ServiceEvent" rowHeight="26" column0="0,100,#ffffff,Regular,16,0,0" column1="110,600,#0056c856,Regular,22,0,1" column2="720,80,#0064c7,Regular,14,1,2" primetimeoffset="10">
+ <convert type="EventList">primetime=yes,eventcount=2</convert>
+</widget>
+
+
+Description:
+
+Structure of Column0 bis Column2: (you do not have to set all columns)
+Example: column0="0,100,#ffffff,Regular,16,0,0"
+
+--> 1. parameter : x position (relational to widget-position)
+--> 2. parameter : Length
+--> 3. parameter : Color
+--> 4. parameter : Font-Nane
+--> 5. parameter : Font-Size
+--> 6. parameter : Text-Alignment (0 = left, 1 = right, 2 = centred)
+--> 7. parameter : data infos ( 0 = time, 1 = EPG-Description, 2 = Duration)
+
+rowHeight --> Height of row
+primetimeoffset --> Primetime offset (y position down)
+
+<convert type="EventList">primetime=yes,eventcount=2</convert>
+--> primetime=yes -->display primetime (optional, default = no)
+--> eventcount=quantity --> quantity of events (optional, default = 0, quantity=any number)
+
+
+If you want to use this converter/renderer set a depends in the control file of your skin
+
+
+If you have any questions visit www.dreambox-tools.info
+Dr.Best
View
226 fancontrol2/po/de.po
@@ -1,404 +1,404 @@
msgid ""
msgstr ""
"Project-Id-Version: FanControl2\n"
-"POT-Creation-Date: 2012-11-04 15:20+Mitteleuropäische Zeit\n"
+"POT-Creation-Date: 2013-03-08 17:36+Mitteleuropäische Zeit\n"
"PO-Revision-Date: \n"
"Last-Translator: joergm6 <joergm6@online.de>\n"
"Language-Team: joergm6 <joergm6@online.de>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-#: FC2.txt:34
+#: FC2.txt:35
msgid "below Tunerslot 4"
msgstr "unter Tunerslot 4"
-#: FC2.txt:35
+#: FC2.txt:36
msgid "near XILINX Spartan"
msgstr "Nähe XILINX Spartan"
-#: FC2.txt:36
+#: FC2.txt:37
msgid "under the WLAN"
msgstr "unter dem WLAN"
-#: FC2.txt:37
+#: FC2.txt:38
msgid "left of the Battery"
msgstr "links von der Batterie"
-#: FC2.txt:38
+#: FC2.txt:39
msgid "left near Front-CI"
msgstr "links vom Front-CI"
-#: FC2.txt:39
+#: FC2.txt:40
msgid "left near Card-Slot"
msgstr "links vom Card-Slot"
-#: FC2.txt:40
+#: FC2.txt:41
msgid "over Security Card"
msgstr "oberhalb Security Card"
-#: FC2.txt:41
+#: FC2.txt:42
msgid "under the Fan"
msgstr "unter dem Lüfter"
-#: FC2.txt:142
+#: FC2.txt:143
msgid "."
msgstr ","
-#: FC2.txt:187
+#: FC2.txt:188
msgid "3Pin"
msgstr "3Pin"
-#: FC2.txt:187
+#: FC2.txt:188
msgid "4Pin"
msgstr "4Pin"
-#: FC2.txt:187
+#: FC2.txt:188
msgid "4Pin (PID)"
msgstr "4Pin (PID)"
-#: FC2.txt:187
+#: FC2.txt:188
msgid "Control disabled"
msgstr "Steuerung aus"
-#: FC2.txt:187
+#: FC2.txt:188
msgid "disabled"
msgstr "ausgeschaltet"
-#: FC2.txt:188
+#: FC2.txt:189
msgid "yes, Except for Recording or HDD"
msgstr "Ja, außer bei Aufnahme oder HDD"
-#: FC2.txt:188
-#: FC2.txt:201
-#: FC2.txt:204
+#: FC2.txt:189
+#: FC2.txt:202
+#: FC2.txt:205
msgid "no"
msgstr "nein"
-#: FC2.txt:188
-#: FC2.txt:204
+#: FC2.txt:189
+#: FC2.txt:205
msgid "yes"
msgstr "ja"
-#: FC2.txt:195
+#: FC2.txt:196
msgid "Box Shutdown"
msgstr "Box ausschalten"
-#: FC2.txt:195
+#: FC2.txt:196
msgid "display Info"
msgstr "zeige Information"
-#: FC2.txt:195
+#: FC2.txt:196
msgid "do nothing"
msgstr "nichts"
-#: FC2.txt:204
+#: FC2.txt:205
msgid "auto"
msgstr "automatisch"
-#: FC2.txt:204
+#: FC2.txt:205
msgid "never"
msgstr "niemals"
-#: FC2.txt:366
+#: FC2.txt:363
msgid "please wait (until 3min)..."
msgstr "bitte warten (bis 3min)..."
-#: FC2.txt:404
+#: FC2.txt:401
msgid "Min Fan Start %d rpm at PWM=%d"
msgstr "Min Fan Start %d rpm bei PWM=%d"
-#: FC2.txt:410
+#: FC2.txt:407
msgid "Min Fan Stop %d rpm at PWM=%d (%s)"
msgstr "Min Fan Stop %d rpm bei PWM=%d (%s)"
-#: FC2.txt:416
+#: FC2.txt:413
msgid "Max Fan %d rpm at PWM=255 (%s)"
msgstr "Max Fan %d rpm bei PWM=255 (%s)"
-#: FC2.txt:418
+#: FC2.txt:415
msgid "Extended Control Range"
msgstr "Erweiterter Regelbereich"
-#: FC2.txt:428
+#: FC2.txt:425
msgid "Min Fan Start %d rpm at VLT=%d and PWM=0"
msgstr "Min Fan Start %d rpm bei VLT=%d und PWM=0"
-#: FC2.txt:431
+#: FC2.txt:428
msgid "Min Fan Stop %d rpm at VLT=%d and PWM=0 (%s)"
msgstr "Min Fan Stop %d rpm bei VLT=%d und PWM=0 (%s)"
-#: FC2.txt:438
+#: FC2.txt:435
msgid "Max Fan %d rpm at PWM=255 and VLT=255 (%s)"
msgstr "Max Fan %d rpm bei PWM=255 und VLT=255 (%s)"
-#: FC2.txt:446
+#: FC2.txt:443
msgid "Min Fan Start %d rpm at VLT=%d"
msgstr "Min Fan Start %d rpm bei VLT=%d"
-#: FC2.txt:449
+#: FC2.txt:446
msgid "Min Fan Stop %d rpm at VLT=%d (%s)"
msgstr "Min Fan Stop %d rpm bei VLT=%d (%s)"
-#: FC2.txt:454
+#: FC2.txt:451
msgid "Max Fan %d rpm at VLT=255 (%s)"
msgstr "Max Fan %d rpm bei VLT=255 (%s)"
-#: FC2.txt:457
+#: FC2.txt:454
msgid "please set fan type (3Pin or 4Pin)"
msgstr "bitte Lüftertyp setzen (3Pin or 4Pin)"
-#: FC2.txt:529
-#: FC2.txt:531
-#: FC2.txt:535
+#: FC2.txt:526
+#: FC2.txt:528
+#: FC2.txt:532
msgid "%s %02d C"
msgstr "%s %02d C"
-#: FC2.txt:537
+#: FC2.txt:534
msgid "press Info for HDD-Temp"
msgstr "drücke Info für HDD-Temp"
-#: FC2.txt:538
-#: FC2.txt:791
+#: FC2.txt:535
+#: FC2.txt:788
msgid "Current rpm %4d"
msgstr "Aktuell rpm %4d"
-#: FC2.txt:570
+#: FC2.txt:567
msgid "Action in case of Fan failure"
msgstr "Aktion bei Lüfterausfall"
-#: FC2.txt:571
+#: FC2.txt:568
msgid "Box shutdown at Temperature (C)"
msgstr "Box ausschalten bei Temperatur (C)"
-#: FC2.txt:572
+#: FC2.txt:569
msgid "increases overheating protection to (C)"
msgstr "Überhitzungsschutz erhöhen um (C)"
-#: FC2.txt:573
+#: FC2.txt:570
msgid "read HDD-Temperature in HDD-Standby-Mode"
msgstr "HDD-Temperatur im HDD-Standby-Modus lesen"
-#: FC2.txt:574
+#: FC2.txt:571
msgid "disable DMM-FanControl"
msgstr "DMM-Fancontrol deaktiviert"
-#: FC2.txt:575
+#: FC2.txt:572
msgid "Show Fan Speed as"
msgstr "Anzeige Lüfter Drehzahl als"
-#: FC2.txt:576
+#: FC2.txt:573
msgid "Show Plugin in Extension-Menu"
msgstr "Zeige Plugin im Erweiterungs-Menü"
-#: FC2.txt:577
+#: FC2.txt:574
msgid "Show Monitor in Extension-Menu"
msgstr "Zeige Monitor im Erweiterungs-Menü"
-#: FC2.txt:578
+#: FC2.txt:575
msgid "Number of WebIF-Log-Entries"
msgstr "Anzahl der WebIF-Log-Einträge"
-#: FC2.txt:579
+#: FC2.txt:576
msgid "Logging path"
msgstr "Logging Verzeichnis"
-#: FC2.txt:580
+#: FC2.txt:577
msgid "Enable Data Logging"
msgstr "Aktiviere Daten Logging"
-#: FC2.txt:581
+#: FC2.txt:578
msgid "Auto-Delete Data older than (Days)"
msgstr "Auto-Löschen Daten älter als (Tage)"
-#: FC2.txt:582
+#: FC2.txt:579
msgid "Enable Event Logging"
msgstr "Aktiviere Ereignis Logging"
-#: FC2.txt:597
+#: FC2.txt:594
msgid "Choose path"
msgstr "wähle Verzeichnis"
-#: FC2.txt:631
+#: FC2.txt:628
msgid ""
"GUI needs a restart to apply the changes.\n"
"Do you want to Restart the GUI now?"
msgstr ""
"GUI muss zum Aktivieren der Änderungen neu gestartet werden.\n"
"Soll jetzt neu gestartet werden?"
-#: FC2.txt:632
+#: FC2.txt:629
msgid "Restart GUI now?"
msgstr "Starte GUI jetzt?"
-#: FC2.txt:701
+#: FC2.txt:698
msgid "Fan type"
msgstr "Lüftertyp"
-#: FC2.txt:702
-msgid "Fan off in Standby"
-msgstr "Lüfter aus im Standby"
+#: FC2.txt:699
+msgid "Fan off in Idle Mode"
+msgstr "Lüfter aus im Idle Mode"
-#: FC2.txt:703
+#: FC2.txt:700
msgid "min Speed rpm"
msgstr "min Drehzahl rpm"
-#: FC2.txt:704
+#: FC2.txt:701
msgid "max Speed rpm"
msgstr "max Drehzahl rpm"
-#: FC2.txt:705
+#: FC2.txt:702
msgid "Static temp C"
msgstr "Ruhe-Temperatur C"
-#: FC2.txt:706
+#: FC2.txt:703
msgid "End temperature C"
msgstr "Ende-Temperatur C"
-#: FC2.txt:707
+#: FC2.txt:704
msgid "Initial Voltage"
msgstr "Anfangs Spannung"
-#: FC2.txt:708
+#: FC2.txt:705
msgid "Initial PWM"
msgstr "Anfangs PWM"
-#: FC2.txt:713
+#: FC2.txt:710
msgid "Cancel"
msgstr "Abbruch"
-#: FC2.txt:714
+#: FC2.txt:711
msgid "Save"
msgstr "Speichern"
-#: FC2.txt:715
+#: FC2.txt:712
msgid "Check"
msgstr "Prüfen"
-#: FC2.txt:716
+#: FC2.txt:713
msgid "Help"
msgstr "Hilfe"
-#: FC2.txt:756
+#: FC2.txt:753
msgid "Current value: %s"
msgstr "Aktueller Wert: %s"
-#: FC2.txt:789
+#: FC2.txt:786
msgid "Temperature C %4.1f"
msgstr "Temperatur C %4.1f"
-#: FC2.txt:790
+#: FC2.txt:787
msgid "Target rpm %4d"
msgstr "Ziel rpm %4d"
-#: FC2.txt:792
+#: FC2.txt:789
msgid "Voltage %03d"
msgstr "Spannung %03d"
-#: FC2.txt:793
+#: FC2.txt:790
msgid "PWM %03d"
msgstr "PWM %03d"
-#: FC2.txt:806
+#: FC2.txt:803
msgid "PID Ctl Err %03.2f %%"
msgstr "PID Ctl Err %03.2f %%"
-#: FC2.txt:828
+#: FC2.txt:825
msgid "Information"
msgstr "Information"
-#: FC2.txt:828
+#: FC2.txt:825
msgid "readme.txt"
msgstr "readmede.txt"
-#: FC2.txt:1011
+#: FC2.txt:1009
msgid "FanControl2 emergency, Box Shutdown now?"
msgstr "FanControl2 Notfall, jetzt Box ausschalten?"
-#: FC2.txt:1197
+#: FC2.txt:1195
msgid "currentRPM:%d targetRPM:%d Temp:%4.1f"
msgstr "aktuellRPM:%d zielRPM:%d Temp:%4.1f"
-#: FC2.txt:1204
+#: FC2.txt:1202
msgid "Fan is not working!"
msgstr "Lüfter funktioniert nicht!"
-#: FC2.txt:1282
+#: FC2.txt:1289
msgid "Box has no fancontrol hardware -> FC2 deactivated"
msgstr "Box hat keine Lüftersteuerungshardware -> FC2 deaktiviert"
-#: FC2.txt:1362
+#: FC2.txt:1369
msgid "Temperature"
msgstr "Temperatur"
-#: FC2.txt:1363
+#: FC2.txt:1370
msgid "Speed"
msgstr "Drehzahl"
-#: FC2.txt:1364
+#: FC2.txt:1371
msgid "Voltage"
msgstr "Spannung"
-#: FC2.txt:1371
+#: FC2.txt:1378
msgid "Sensors"
msgstr "Sensoren"
-#: FC2.txt:1466
-#: FC2.txt:1502
+#: FC2.txt:1473
+#: FC2.txt:1509
msgid "active"
msgstr "aktiviert"
-#: FC2.txt:1469
-#: FC2.txt:1505
+#: FC2.txt:1476
+#: FC2.txt:1512
msgid "turn off"
msgstr "ausschalten"
-#: FC2.txt:1472
-#: FC2.txt:1508
+#: FC2.txt:1479
+#: FC2.txt:1515
msgid "not active"
msgstr "nicht aktiviert"
-#: FC2.txt:1475
-#: FC2.txt:1511
+#: FC2.txt:1482
+#: FC2.txt:1518
msgid "turn on"
msgstr "einschalten"
-#: FC2.txt:1480
-#: FC2.txt:1482
-#: FC2.txt:1516
-#: FC2.txt:1518
+#: FC2.txt:1487
+#: FC2.txt:1489
+#: FC2.txt:1523
+#: FC2.txt:1525
msgid "Filesize : %d %sByte"
msgstr "Dateigr&ouml;&szlig;e : %d %sByte"
-#: FC2.txt:1484
-#: FC2.txt:1520
+#: FC2.txt:1491
+#: FC2.txt:1527
msgid "Disk free : %d MByte"
msgstr "Datentr&auml;ger frei : %d MByte"
-#: FC2.txt:1487
-#: FC2.txt:1523
+#: FC2.txt:1494
+#: FC2.txt:1530
msgid "Download"
msgstr "Herunterladen"
-#: FC2.txt:1491
-#: FC2.txt:1527
+#: FC2.txt:1498
+#: FC2.txt:1534
msgid "Delete"
msgstr "L&ouml;schen"
-#: FC2.txt:1495
+#: FC2.txt:1502
msgid "Delete older 48h"
msgstr "L&ouml;schen &auml;lter 48h"
-#: FC2.txt:1498
-#: FC2.txt:1535
+#: FC2.txt:1505
+#: FC2.txt:1542
msgid "File %s does not exists"
msgstr "Datei %s ist nicht vorhanden"
-#: FC2.txt:1537
+#: FC2.txt:1544
msgid "Logging-Path: %s"
msgstr "Logging-Verzeichnis: %s"
-#: FC2.txt:1538
+#: FC2.txt:1545
msgid "Auto-Delete older %s Days"
msgstr "Auto-L&ouml;schen &auml;lter %s Tage"
View
2 fancontrol2/po/fa.po
@@ -225,7 +225,7 @@ msgid "Fan type"
msgstr "نوع فن"
#: FC2.txt:592
-msgid "Fan off in Standby"
+msgid "Fan off in Idle Mode"
msgstr "فن خاموش است یا در حالت استندبای است"
#: FC2.txt:593
View
4 fancontrol2/po/fr.po
@@ -229,8 +229,8 @@ msgid "Fan type"
msgstr "Type ventilateur"
#: FC2.txt:600
-msgid "Fan off in Standby"
-msgstr "Ventilateur stoppé en veille"
+msgid "Fan off in Idle Mode"
+msgstr "Ventilateur stoppé en Idle Mode"
#: FC2.txt:601
msgid "min Speed rpm"
View
4 fancontrol2/po/it.po
@@ -337,8 +337,8 @@ msgid "Fan type"
msgstr "Tipo ventola"
#: .../enigma2-plugins/fancontrol2/src/plugin.py:660
-msgid "Fan off in Standby"
-msgstr "Ventola off in standby"
+msgid "Fan off in Idle Mode"
+msgstr "Ventola off in Idle Mode"
#: .../enigma2-plugins/fancontrol2/src/plugin.py:661
msgid "min Speed rpm"
View
296 fancontrol2/po/pl.po
@@ -0,0 +1,296 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: FanControl2\n"
+"POT-Creation-Date: 2012-11-04 15:20+Mitteleuropäische Zeit\n"
+"PO-Revision-Date: \n"
+"Last-Translator: Mariusz1970 <Mariusz1970@onet.eu>\n"
+"Language-Team: Mariusz1970 <Mariusz1970@onet.eu>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Polish\n"
+"X-Poedit-Country: POLAND\n"
+
+msgid "%s %02d C"
+msgstr "%s %02d C"
+
+msgid "."
+msgstr ","
+
+msgid "3Pin"
+msgstr "3Pin"
+
+msgid "4Pin"
+msgstr "4Pin"
+
+msgid "4Pin (PID)"
+msgstr "4Pin (PID)"
+
+msgid "Action in case of Fan failure"
+msgstr "Działanie w przypadku awarii wentylatora"
+
+msgid "Auto-Delete Data older than (Days)"
+msgstr "Usuwanie plików starszych niż(Dni)"
+
+msgid "Auto-Delete older %s Days"
+msgstr "Automatycznie - usuń starszy % s Dni"
+
+msgid "Box Shutdown"
+msgstr "Wyłączyć DM "
+
+msgid "Box has no fancontrol hardware -> FC2 deactivated"
+msgstr "w DM nie ma wentylatora -> FC2 wyłączone"
+
+msgid "Box shutdown at Temperature (C)"
+msgstr "Zamknij DM w temperaturze (C)"
+
+msgid "Cancel"
+msgstr "Anuluj"
+
+msgid "Check"
+msgstr "Kontrola"
+
+msgid "Choose path"
+msgstr "Wybierz ścieżkę"
+
+msgid "Control disabled"
+msgstr "Wyłączyć kontrolę"
+
+msgid "Current rpm %4d"
+msgstr "Aktualny rpm % 4d"
+
+msgid "Current value: %s"
+msgstr "Aktualna wartość: % s"
+
+msgid "Delete"
+msgstr "Usuń"
+
+msgid "Delete older 48h"
+msgstr "Usuń starszy 48h"
+
+msgid "Disk free : %d MByte"
+msgstr "Dysk wolny : % d MByte"
+
+msgid "Download"
+msgstr "Pobieranie"
+
+msgid "Enable Data Logging"
+msgstr "Włączanie rejestrowania danych "
+
+msgid "Enable Event Logging"
+msgstr "Włącz rejestrowanie zdarzeń"
+
+msgid "End temperature C"
+msgstr "Końcowa-temp.C"
+
+msgid "Extended Control Range"
+msgstr "Wzbogacona oferta sterowania"
+
+msgid "Fan is not working!"
+msgstr "Wentylator nie pracuje!"
+
+msgid "Fan off in Idle Mode"
+msgstr "Wentylator w trybie czuwania"
+
+msgid "Fan type"
+msgstr "Typ wentylatora"
+
+msgid "FanControl2 emergency, Box Shutdown now?"
+msgstr "FanControl2 awarja, wyłaczyć DM teraz?"
+
+msgid "File %s does not exists"
+msgstr "Plik %s nie istnieje"
+
+msgid "Filesize : %d %sByte"
+msgstr "Rozmiar pliku : %d %sBajtów"
+
+msgid ""
+"GUI needs a restart to apply the changes.\n"
+"Do you want to Restart the GUI now?"
+msgstr ""
+"GUI musi być uruchomione aby zastosować zmiany.\n"
+"czy chcesz uruchomić GUI teraz ?"
+
+msgid "Help"
+msgstr "Pomoc"
+
+msgid "Information"
+msgstr "Informacja"
+
+msgid "Initial PWM"
+msgstr "Pocz. PWM"
+
+msgid "Initial Voltage"
+msgstr "Pocz. Napięcie"
+
+msgid "Logging path"
+msgstr "Rejestrowanie ścieżki"
+
+msgid "Logging-Path: %s"
+msgstr "Ścieżka wpisania: %s"
+
+msgid "Max Fan %d rpm at PWM=255 (%s)"
+msgstr "Max Fan %d rpm w PWM=255 (%s)"
+
+msgid "Max Fan %d rpm at PWM=255 and VLT=255 (%s)"
+msgstr "Max Fan %d rpm w PWM=255 i VLT=255 (%s)"
+
+msgid "Max Fan %d rpm at VLT=255 (%s)"
+msgstr "Max Fan %d rpm w VLT=255 (%s)"
+
+msgid "Min Fan Start %d rpm at PWM=%d"
+msgstr "Min Fan Start %d rpm w PWM=%d"
+
+msgid "Min Fan Start %d rpm at VLT=%d"
+msgstr "Min Fan Start %d rpm w VLT=%d"
+
+msgid "Min Fan Start %d rpm at VLT=%d and PWM=0"
+msgstr "Min Fan Start %d rpm w VLT=%d i PWM=0"
+
+msgid "Min Fan Stop %d rpm at PWM=%d (%s)"
+msgstr "Min Fan Stop %d rpm w PWM=%d (%s)"
+
+msgid "Min Fan Stop %d rpm at VLT=%d (%s)"
+msgstr "Min Fan Stop %d rpm w VLT=%d (%s)"
+
+msgid "Min Fan Stop %d rpm at VLT=%d and PWM=0 (%s)"
+msgstr "Min Fan Stop %d rpm w VLT=%d i PWM=0 (%s)"
+
+msgid "Number of WebIF-Log-Entries"
+msgstr "Liczba WebIF-Logi-Wejście"
+
+msgid "PID Ctl Err %03.2f %%"
+msgstr "PID Ctl Err %03.2f %%"
+
+msgid "PWM %03d"
+msgstr "PWM %03d"
+
+msgid "Restart GUI now?"
+msgstr "Wznowić GUI teraz?"
+
+msgid "Save"
+msgstr "Zapisz"
+
+msgid "Sensors"
+msgstr "Czujniki"
+
+msgid "Show Fan Speed as"
+msgstr "Prędkość obrotowa wentylatora"
+
+msgid "Show Monitor in Extension-Menu"
+msgstr "Pokaz Monitor w Rozszerzeniu - Menu "
+
+msgid "Show Plugin in Extension-Menu"
+msgstr "Pokazu Plugin w Rozszerzeniu - Menu"
+
+msgid "Speed"
+msgstr "Szybkość "
+
+msgid "Static temp C"
+msgstr "Temp. statyczna C"
+
+msgid "Target rpm %4d"
+msgstr "Docelowo rpm %4d"
+
+msgid "Temperature"
+msgstr "Temperatura"
+
+msgid "Temperature C %4.1f"
+msgstr "Temperatura C %4.1f"
+
+msgid "Voltage"
+msgstr "Napięcie "
+
+msgid "Voltage %03d"
+msgstr "Napięcie %03d"
+
+msgid "active"
+msgstr "aktywny "
+
+msgid "auto"
+msgstr "auto"
+
+msgid "below Tunerslot 4"
+msgstr "poniżej Tunerslot 4"
+
+msgid "currentRPM:%d targetRPM:%d Temp:%4.1f"
+msgstr "prądRPM:%d docelowoRPM:%d Temp:%4.1f"
+
+msgid "disable DMM-FanControl"
+msgstr "DMM-Fancontrol wyłączyć"
+
+msgid "disabled"
+msgstr "wyłączony"
+
+msgid "display Info"
+msgstr "pokaż informację"
+
+msgid "do nothing"
+msgstr "nie rób nic"
+
+msgid "increases overheating protection to (C)"
+msgstr "ochrona przed wzrostem przegrzania (C)"
+
+msgid "left near Card-Slot"
+msgstr "lewa strona niedaleko gniazda karty"
+
+msgid "left near Front-CI"
+msgstr "lewa strona blisko-przodu CI"
+
+msgid "left of the Battery"
+msgstr "lewa strona koło baterii"
+
+msgid "max Speed rpm"
+msgstr "Max szybkość rpm"
+
+msgid "min Speed rpm"
+msgstr "Min szybkość rpm"
+
+msgid "near XILINX Spartan"
+msgstr "blisko XILINX Spartan"
+
+msgid "never"
+msgstr "nigdy"
+
+msgid "no"
+msgstr "nie"
+
+msgid "not active"
+msgstr "nie aktywne"
+
+msgid "over Security Card"
+msgstr "ponad Security Card"
+
+msgid "please set fan type (3Pin or 4Pin)"
+msgstr "Proszę ustawić typ wentylatora (3Pin albo 4Pin)"
+
+msgid "please wait (until 3min)..."
+msgstr "Proszę czekać (do 3min)..."
+
+msgid "press Info for HDD-Temp"
+msgstr " Info o HDD-temp"
+
+msgid "read HDD-Temperature in HDD-Standby-Mode"
+msgstr "czytaj temperaturę HDD-tryb gotowości"
+
+msgid "readme.txt"
+msgstr "readme.txt"
+
+msgid "turn off"
+msgstr "wyłączyć"
+
+msgid "turn on"
+msgstr "włączyć"
+
+msgid "under the Fan"
+msgstr "pod wentylatorem"
+
+msgid "under the WLAN"
+msgstr "pod WLAN "
+
+msgid "yes"
+msgstr "tak"
+
+msgid "yes, Except for Recording or HDD"
+msgstr "tak, z wyjątkiem nagrywania na HDD"
+
View
3 fancontrol2/src/globals.py
@@ -1,5 +1,5 @@
from __init__ import _
-Version = "V2.7r2"
+Version = "V2.8r0"
# globale Variablen
ZielRPM = 0
AktVLT = 0
@@ -29,6 +29,7 @@
FC2Log = []
FC2werte = [0.1,0,0,0,0,0]
FC2stunde = ["-","-","-","-","-","-","-","-","-","-","-","-","-","-","-","-","-","-","-","-","-","-","-","-"]
+FC2HDDignore = []
HeadLine = "Time;Temp;RPM;VLT;PWM;HDD;Status;Temp1;Temp2;Temp3;Temp4;Temp5;Temp6;Temp7;Temp8\r\n"
TempName = [
_("below Tunerslot 4"),
View
17 fancontrol2/src/plugin.py
@@ -163,10 +163,6 @@ def setPWM(fanid, value):
config.plugins.FanControl.MonitorInExtension = ConfigYesNo(default = True)
config.plugins.FanControl.FanControlInExtension = ConfigYesNo(default = True)
config.plugins.FanControl.Multi = ConfigSelection(choices = [("1", "RPM"), ("2", "RPM/2")], default = "2")
-config.plugins.FanControl.KiPWMsld = ConfigSlider(default = 10, increment = 1, limits = (0,100))
-config.plugins.FanControl.KiVLTsld = ConfigSlider(default = 10, increment = 1, limits = (0,100))
-config.plugins.FanControl.KpPWMsld = ConfigSlider(default = 50, increment = 1, limits = (0,100))
-config.plugins.FanControl.KpVLTsld = ConfigSlider(default = 50, increment = 1, limits = (0,100))
def GetFanRPM():
global RPMread
@@ -235,7 +231,7 @@ class ControllerPI:
def __init__(self, givenName = "PI Controller"):
self.name = givenName
- FClogE("%s : creating object" % self.name)
+# FClogE("%s : creating object" % self.name)
def ReturnInputError(self):
return self.inputError
@@ -657,7 +653,7 @@ def __init__(self, session, args = 0):
self.list = []
self.list.append(getConfigListEntry(_("Fan type"), config.plugins.FanControl.Fan))
- self.list.append(getConfigListEntry(_("Fan off in Standby"), config.plugins.FanControl.StandbyOff))
+ self.list.append(getConfigListEntry(_("Fan off in Idle Mode"), config.plugins.FanControl.StandbyOff))
self.list.append(getConfigListEntry(_("min Speed rpm"), config.plugins.FanControl.minRPM))
self.list.append(getConfigListEntry(_("max Speed rpm"), config.plugins.FanControl.maxRPM))
self.list.append(getConfigListEntry(_("Static temp C"), config.plugins.FanControl.temp))
@@ -850,16 +846,17 @@ def HDDtestTemp():
(stat,wert)=ReadHDDtemp(hdd[1].getDeviceName())
if stat != 0:
(stat,wert)=getstatusoutput("smartctl --smart=on %s" % hdd[1].getDeviceName())
- FClog("HDD Temperature not readable")
+ FClog("HDD Temperature not readable -> Ignore")
+ FC2HDDignore.append(hdd[1].getDeviceName())
time.sleep(0.5)
(stat,wert)=getstatusoutput("hdparm -C %s" % hdd[1].getDeviceName())
if wert.find("standby")>0:
FClog("HDD supports Temp reading without Spinup")
else:
if hdd[1].isSleeping():
(stat,wert)=getstatusoutput("hdparm -y %s" % hdd[1].getDeviceName())
- FClog("HDD not supports Temp reading without Spinup -> Disabled")
- disableHDDread = True
+ FClog("HDD not supports Temp reading without Spinup -> Ignore")
+ FC2HDDignore.append(hdd[1].getDeviceName())
def ReadHDDtemp(D):
return getstatusoutput("smartctl -A %s | grep \"194 Temp\" | grep Always" % D)
@@ -869,7 +866,7 @@ def GetHDDtemp(OneTime):
AktHDD = []
if harddiskmanager.HDDCount() > 0 and config.plugins.FanControl.CheckHDDTemp.value != "never" or OneTime == True:
for hdd in harddiskmanager.HDDList():
- if hdd[1].model().startswith("ATA"):
+ if hdd[1].model().startswith("ATA") and hdd[1].getDeviceName() not in FC2HDDignore:
sleeptime = int((time.time() - hdd[1].last_access))
# FClog("HDD Temp reading %s %s %ds %s" % (config.plugins.FanControl.CheckHDDTemp.value, disableHDDread, sleeptime, hdd[1].isSleeping()))
if config.plugins.FanControl.CheckHDDTemp.value == "true" or (config.plugins.FanControl.CheckHDDTemp.value == "auto" and not disableHDDread) or ((not hdd[1].isSleeping()) and sleeptime < 120) or OneTime == True:
View
199 fancontrol2/src/readmepl.txt
@@ -0,0 +1,199 @@
+===========================================================
+FanControl2 by joergm6 Hilfe V.2.4
+Support-Forum: IHAD
+Danksagungen: diddsen, _marv_, DreamKK
+ Spaeleus(it), mimi74(fr), Bschaar(nl)
+===========================================================
+ Przeproszam,jezeli engielski przeklad nie jest calkowicie poprawny.
+(celowo sa pominiete polskie znaki)
+
+ Funkcje
+ --------
+Kontrola 3pinowego lub 4pinowego wentylator (PWM) zalezna od
+sredniej dwoch najwyzszych temparatur.
+Regulacja nastepuje w wolnym tepie, gdyz temperatura tez nie
+zmienia sie gwaltownie i unikamy w ten sposob
+niepotrzebnego obciazenia procesora CPU.
+
+##############################################################
+ Funkcje bezpieczenstwa
+ ---------------------
+Jesli wentylator nie poda predkosci obrotow w ciagu 20 min.
+bedzie on uwazany za uszkodzony i bedzie sie pojawial odpowiedni
+kumunikat na ekranie telewizora.
+Jesli w trybie gotowosci bedzie wentylator wylaczony i bedzie
+przekroczona maksymalna temperatura - zostanie wentylator wlaczony.
+Jesli temperatura spadnie o wiecej niz 3°C zostanie on znow
+wylaczony.
+Wentylator pracuje w pierwszych 10 minutach na minimalnej
+predkosc.
+Ochrona przed przegrzaniem moze byc zwiekszona nawet o 9°C.
+Mozna tez ustawic czy Box ma sie wylaczyc i przy jakiej
+temperaturze bac awarii wentylatora.
+
+##############################################################
+ Ustawienia
+ -------------
+ Wentylator wylaczony w trybie gotowosci
+Tak = wentylator jest wylaczony, gdy Box jest w stanie gotowosci
+Tak, z wyjatkiem podczas nagrywania na HDD = wentylator wylaczony
+w trybie czuwania, gdy nie nagrywamy i dysk jest w trybie uspienia.
+
+ Predkosc min.
+Temperatura jest "temperatura gotowosci" i ponizej jej
+ustawienia predkosci obrotow regulacji.
+
+ Predkosc max.
+Temperatura jest "temperatura koncowa" i powyzej jej
+ustawienia predkosci obrotow regulacji.
+
+ Spokojna Temperatura
+Do tej Temperatury nie bedzie regulacji
+i bedzie ustawiona predkosc minimalna.
+
+ Temperatura koncowa
+Jest to maksymalna temperatura, ktora moze wystapic -gdy bedzie osiagnieta,
+bedzie ustawiona maksymalna predkosc.
+
+ Napiecie poczatkowe i PWM
+Przy zmianach tych wartosci bedzie rowniez niezwlocznie
+wentylator ustawiony. Moga byc odrazu odczytane wartosci z
+predkosci obrotow wentylatora.
+Rozporzadzenie jest jednak natychmiastowe, a wiec
+wystarczy spojrzec na obroty i wartosci mozna odrazu zmieniac.
+Wartosci te sa wylaczone, gdy Box startuje lub
+gdy wentylator zostal wylaczony w "trybie gotowosci".
+
+ do wentylatorow typu 3pin
+Napiecie sterowania wentylatora 3-pin jest ustawione
+z sygnalem predkosci. Kontrolowane, tylko napiecia.
+Ustawienia dla PWM nie maja kontroli.
+Ustaw napiecie na jakas wartosc, ktorej obroty beda odpowiednie,
+dla obrotow poczatkowych wentylatora po starcie Boxa.
+Od tej predkosci beda juz obroty regulowane.
+
+ do wentylatorow typu 4pin
+Do regulacji(PWM) 4-pinowego
+wentylatora. Najpierw ustawienia wartosc PWM. Jak nie
+wystarcza zakres regulacji, mozna regulowac napieciem.
+Regulacja napiecia jest konieczna.
+Ustaw napiecie do wartosci maksymalnej (na DM500HD
+5-10). Ale takze nizsza wartosc napiecia jest znaczaca.
+Nizsze napiecie oznacza nizsza maksymalna jak i
+minimalna predkosc obrotow. Ustaw napiecie tak aby PWM bylo
+optymalne dla maxymalnych jak i minimalnych obrotow.
+Istnieja rowniez wentylatory, ktore obracaja sie w PWM = 0 za szybko.
+Zmniejszamy napiecie, az do mommentu gdzie
+predkosc zostanie osiagnieta (również 0 jest mozliwe). Ale trzeba tez
+miec obnizenie maksymalnej predkosci na uwadze.
+PWM zapewnia wartosci odpowiadajacej predkosci obrotowej,
+dla obrotow poczatkowych wentylatora po starcie Boxa.
+Od tej predkosci beda juz obroty regulowane.
+
+ dla Wentylatorow typ Ustawienia Wylaczone
+Kontrola jest wylaczona. Wentylator pracuje z
+ustawionymi ostatnimi wartosciami.
+Wentylator nie wylacza sie.
+
+################################################################
+ Sprawdzic
+ ------
+Tutaj jest proba, minimalnej predkosci wentylatora
+kiedy wentylator przy minimalnym napieciu sie wylaczy.
+Okreslona zostaje predkosc minimalna wentylatora.
+Podobnie zostaje ustalona predkosc maksymalna
+wentylatora. (OK) wartosc nie odpowiada ustawieniom
+w (!!) nie pasuja do ustawienia wartosci wentylatora.
+Zobacz osiagalne wartosci. Te szczegoly sa dla informacji
+i nie ma to wplywu na kontrole mozliwosci.
+Dla 4pinowych wentylatorow beda dodatkowe informacje pokazane,
+ktore znajduja sie na "rozszerzeniach ustawien".
+Zakres sterowania. Oznacza to, ze jest on w PWM-obszarze,
+ponadto tez zmiane napiecia.
+
+#################################################################
+ Monitorowanie temperatury
+ ------------------
+Uzycie przycisku "Info" - beda wyswietlone poszczegolne informacje
+temperatur Boxa.
+Nacisnij przycisk "info" dla jednego odczytu temperatury HDD.
+
+#################################################################
+ Specjalne ustawienia
+ -------------
+Naciskajac przycisk "Menu", mozna poszczegolne wartosci zdefiniowac.
+Skarga o awarii wentylatora [Pokaz Info]
+ Wiadomosc o awarii wentylatora, czy ma Box sie
+ wylaczyc czy nie robic nic
+Box wylaczyc przy temperaturze (C) [65]
+ Po osiagnieciu okreslonej temperatury, Box wylaczyc
+ OFF (Deep Standby).
+Przegrzanie zwiekszenie ochrony o (C) [0]
+ Jesli wentylator jest wylaczony, w trybie Standby, bedzie
+ maksymalna temperatura osiagnieta - box wylaczyc.
+ Ta maksymalna temperature mozna zwiekszyc do 9°C
+Temperatura HDD w trybie gotowosci HDD czytac [AUTO]
+ Tak = temperatura HDD czytac tez w trybie gotowosci HDD
+ Nie = temperatura HDD czytac tylko gdy HDD aktywny
+ Auto = przy starcie Boxa FC2 bedzie testowany tylko raz czy HDD
+ uruchamia sie, i jesli tak zostanie wylaczone czytanie
+ Nigdy = odczyt temperatury HDD deaktywowany - wylaczony
+DMM fancontrol wylaczone [Nie]
+ Pojawi sie w skorce z temperatura, DMM
+ Sterowanie wentylatora aktywne, a takze wlacza wentylator.
+ Beda spowodowane niechciane wlacz / wylacz propozycje.
+ Zalecene: Wylacz wentylator DMM
+Pokaz Monitor rozszerzenia menu [Tak]
+ Obserwuj w rozszerzonym menu wyswietlacza (dlugi niebieski przycisk).
+Liczba webIF wpisów [40]
+ Ile wydarzen mozna zobaczyc w webIF.
+ 40-999
+Folder wydarzen
+ Wybierz "OK", aby wybrac miejsce, w ktorym pliki wydarzen
+ powinno byc zapisywane. Dane moga byc zapisywane, jezeli co najmniej
+ 10 MByte sa jeszcze wolne.
+Wlacz rejestrowanie danych
+ Kazda minuta jest zapis w FC2data.csv pliku
+ zapisana. Mozna to na przyklad wywolywac bezposrednio w programie Excel.
+ Jesli ten plik nie istnieje, a jest ta
+ opcja wlaczona, plik bedzie generowany do
+ okolo 4 kB na godzinę
+Automatyczne usuwanie danych starszych niz (dni) [Nie]
+ Rejestrowanie danych dane starsze niz tej liczbie
+ beda usuniete.
+ Wykonac: codziennie o 00:00 i przy starcie Enigmy ( GUI )
+Wlacz rejestrowanie zdarzen
+ Bedzie kazde zdarzenie w FC2events.txt pliku
+ zapisywane.
+ ok. 30kByte w kazda godzine
+
+ ###############################################################
+ Interfejs Web
+ -------------
+Wejdz na: http://dreamboxip/fancontrol
+Wyswietla informacje na temat aktualnych wartosci i ostatnich
+protokolach. Co kazda godzine wyswietlane zostana
+wiadomosci o wartosciach temperatury predkosciach wentylatora.
+Z "FC2 Log", pliki sa pobierane i rejestrowania mozna ustawic.
+"Wykres FC2" pokazuje on-line diagramy w ciagu ostatnich 48 godzin.
+Logging musi byc wlaczony, aby bylo to mozliwe. Musza byc przynajmniej
+2.5h te dane dostepne!
+W przypadku korzystania z przegladarki Firefox, moze sie zdarzyc, ze diagram
+nie bedzie wyswietlany poprawnie. Nastepne i dodatkowe
+odswiezania (F5) nie jest konieczne.
+
+##############################################################
+ Inne
+ ---------
+Wszystkie wentylatory wazne biezace odczyty
+wyswietlane w postaci wykresu i wartosciach.
+Slupkowy wykres jest wyswietlany na podstawie parametrow.
+FanControl2 jest przygotowany na rozne jezyki.
+Plik POT dla ipkg - jesli ktos inne jezyki
+chce udostępnic.
+Ustawienia sa w normalnych Enigma2 ustawieniach
+przechowywane i dlatego sa w kopii zapasowej / przywracania wlacznie.
+
+tlumaczenie-kol.MiroMoni
+
+===========================================================
View
10 flashexpander/src/Makefile.am
@@ -1,13 +1,11 @@
+installdir = $(libdir)/enigma2/python/Plugins/Extensions/Flashexpander
-installdir = /usr/lib/enigma2/python/Plugins/Extensions/Flashexpander
+install_DATA = \
+ flashexpander.png \
+ maintainer.info
install_PYTHON = \
flashexpander.py \
__init__.py \
locale.py \
plugin.py
-
-install_DATA = \
- flashexpander.png \
- maintainer.info
-
View
25 fritzcall/po/FritzCall.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-01-03 12:40+0100\n"
+"POT-Creation-Date: 2013-03-09 15:09+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -63,6 +63,9 @@ msgstr ""
msgid "Call redirection"
msgstr ""
+msgid "Call redirection active"
+msgstr ""
+
#, python-format
msgid "Calling %s"
msgstr ""
@@ -74,7 +77,7 @@ msgstr ""
msgid "Cannot get calls from FRITZ!Box"
msgstr ""
-msgid "Cannot get infos from FRITZ!Box"
+msgid "Cannot get infos from FRITZ!Box yet; try later"
msgstr ""
msgid "Compact Flash"
@@ -115,6 +118,9 @@ msgstr ""
msgid "Country"
msgstr ""
+msgid "DECT inactive"
+msgstr ""
+
msgid "DECT phones registered"
msgstr ""
@@ -244,6 +250,9 @@ msgstr ""
msgid "FRITZ!Box Fon Status"
msgstr ""
+msgid "FRITZ!Box PhoneBook to read"
+msgstr ""
+
msgid ""
"FRITZ!Box firmware version not configured! Please set it in the "
"configuration."
@@ -438,6 +447,9 @@ msgstr ""
msgid "Refresh status"
msgstr ""
+msgid "Refreshing..."
+msgstr ""
+
msgid "Reload interval for phonebooks (hours)"
msgstr ""
@@ -492,6 +504,9 @@ msgstr ""
msgid "Software fax active"
msgstr ""
+msgid "Software fax inactive"
+msgstr ""
+
msgid "Status not available"
msgstr ""
@@ -612,9 +627,6 @@ msgstr ""
msgid "mobile"
msgstr ""
-msgid "no SID"
-msgstr ""
-
msgid "no calls"
msgstr ""
@@ -658,3 +670,6 @@ msgstr ""
msgid "work"
msgstr ""
+
+msgid "wrong user or password?"
+msgstr ""
View
31 fritzcall/po/de.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Enigma2 FritzCall Plugin\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-01-03 12:40+0100\n"
-"PO-Revision-Date: 2013-01-03 12:41+0100\n"
+"POT-Creation-Date: 2013-03-09 15:09+0100\n"
+"PO-Revision-Date: 2013-03-09 15:09+0100\n"
"Last-Translator: Michael Schmidt <michael@schmidt-schmitten.com>\n"
"Language-Team: german <de@li.org>\n"
"Language: \n"
@@ -62,6 +62,9 @@ msgstr "Anrufanzeige"
msgid "Call redirection"
msgstr "Rufumleitung"
+msgid "Call redirection active"
+msgstr "Rufumleitung aktiv"
+
#, python-format
msgid "Calling %s"
msgstr "Rufe %s an"
@@ -73,8 +76,10 @@ msgstr "Abbruch"
msgid "Cannot get calls from FRITZ!Box"
msgstr "Kann Anrufe nicht von der FRITZ!Box bekommen"
-msgid "Cannot get infos from FRITZ!Box"
-msgstr "Kann Status nicht von der FRITZ!Box bekommen"
+msgid "Cannot get infos from FRITZ!Box yet; try later"
+msgstr ""
+"Kann Informationen von der FRITZ!Box noch nciht bekommen; versuche es später "
+"nochmal"
msgid "Compact Flash"
msgstr "Compact Flash"
@@ -121,6 +126,9 @@ msgstr ""
msgid "Country"
msgstr "Land"
+msgid "DECT inactive"
+msgstr "DECT inaktiv"
+
msgid "DECT phones registered"
msgstr "Schnurlostelefone angemeldet"
@@ -259,6 +267,9 @@ msgstr "FRITZ!Box FON Firmware-Version"
msgid "FRITZ!Box Fon Status"
msgstr "FRITZ!Box Fon Status"
+msgid "FRITZ!Box PhoneBook to read"
+msgstr "Einzulesendes FRITZ!Box Telefonbuch"
+
msgid ""
"FRITZ!Box firmware version not configured! Please set it in the "
"configuration."
@@ -473,6 +484,9 @@ msgstr "Telefonbuch der FRITZ!Box auslesen"
msgid "Refresh status"
msgstr "Status neu holen"
+msgid "Refreshing..."
+msgstr "Lade neu..."
+
msgid "Reload interval for phonebooks (hours)"
msgstr "Lade Telefonbücher neu nach soviel Stunden"
@@ -527,6 +541,9 @@ msgstr "Zeige nur Anrufe bestimmter Nummern"
msgid "Software fax active"
msgstr "Software Fax aktiv"
+msgid "Software fax inactive"
+msgstr "Software Fax inaktiv"
+
msgid "Status not available"
msgstr "Status nicht verfügbar"
@@ -654,9 +671,6 @@ msgstr "Anrufbeantworter aktiv"
msgid "mobile"
msgstr "Handy"
-msgid "no SID"
-msgstr "keine SID"
-
msgid "no calls"
msgstr "keine Anrufe"
@@ -700,3 +714,6 @@ msgstr "keine Anzeige"
msgid "work"
msgstr "Büro"
+
+msgid "wrong user or password?"
+msgstr "falscher Benutzer oder falsches Passwort?"
View
25 fritzcall/po/es.po
<
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: enigma 2-plugins\n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2013-01-03 12:40+0100\n"
+"POT-Creation-Date: 2013-03-09 15:09+0100\n"
"PO-Revision-Date: 2009-06-04 20:22+0200\n"
"Last-Translator: José Juan Zapater <josej@zapater.fdns.net>\n"
"Language-Team: none\n"
@@ -63,6 +63,9 @@ msgstr "Monitorizar llamada"
msgid "Call redirection"
msgstr ""
+msgid "Call redirection active"
+msgstr ""
+
#, python-format
msgid "Calling %s"
msgstr ""
@@ -74,7 +77,7 @@ msgstr "Cancelar"
msgid "Cannot get calls from FRITZ!Box"
msgstr ""
-msgid "Cannot get infos from FRITZ!Box"