diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
---- LCD4linux_ori/plugin.py 2012-08-29 17:06:28.000000000 +0900
-+++ LCD4linux/plugin.py 2013-05-10 14:31:45.000000000 +0900
-@@ -49,6 +49,12 @@
- from urllib import urlencode
+--- LCD4linux_ori/plugin.py 2013-05-24 12:11:59.390217149 +0200
++++ LCD4linux/plugin.py 2013-05-31 07:22:41.221330788 +0200
+@@ -46,9 +46,12 @@
+
+ from twisted.web.client import getPage
+ from xml.dom.minidom import parse, parseString
+-from urllib import urlencode
++from urllib import urlencode, quote
import xml.etree.cElementTree
-+from threading import Thread
+from fcntl import ioctl
-+import socket
-+from pngutil import png_util
-+pngutil = png_util.PNGUtil()
++from socket import create_connection as socket_create_connection
+
# globals
DPFrefreshrate="/usr/lib/enigma2/python/Plugins/Extensions/LCD4linux/refreshrate"
WetterPath = "/usr/lib/enigma2/python/Plugins/Extensions/LCD4linux/wetter/"
-@@ -80,6 +86,7 @@
+@@ -80,6 +83,7 @@
BilderIndexStandby = 0
BilderTime = 0
ThreadRunning = 0
LastDemon = ""
DemonPID = ["","","",""]
SamsungDevice = None
-@@ -104,7 +111,7 @@
- ScreenSelect = [("0", _("off")), ("1", _("Screen 1")), ("2", _("Screen 2")), ("3", _("Screen 3")), ("12", _("Screen 1+2")), ("13", _("Screen 1+3")), ("23", _("Screen 2+3")), ("123", _("Screen 1+2+3")), ("4", _("Screen 4")), ("14", _("Screen 1+4")), ("24", _("Screen 2+4")), ("34", _("Screen 3+4")), ("124", _("Screen 1+2+4")), ("134", _("Screen 1+3+4")), ("234", _("Screen 2+3+4")), ("1234", _("Screen 1+2+3+4"))]
- TimeSelect = [("1", _("5s")), ("2", _("10s")), ("3", _("15s")), ("4", _("20s")), ("6", _("30s")), ("12", _("1min")), ("24", _("2min"), ("60", _("5min")))]
- LCDSelect = [("1", _("LCD 1")), ("2", _("LCD 2")), ("12", _("LCD 1+2"))]
--LCDType = [("11", _("Pearl 320x240")), ("12", _("Pearl 240x320")), ("23", _("Samsung SPF-75H 800x480")), ("24", _("Samsung SPF-87H 800x480")), ("25", _("Samsung SPF-87Hold 800x480")), ("26", _("Samsung SPF-83H 800x600")), ("27", _("Samsung SPF-107H 1024x600"))]
-+LCDType = [("10", _("Vu LCD 400x240"))]
-
- config.plugins.LCD4linux = ConfigSubsection()
- config.plugins.LCD4linux.Enable = ConfigYesNo(default = False)
-@@ -116,13 +123,13 @@
- config.plugins.LCD4linux.ScreenTime3 = ConfigSelection(choices = TimeSelect, default="1")
- config.plugins.LCD4linux.ScreenTime4 = ConfigSelection(choices = TimeSelect, default="1")
- config.plugins.LCD4linux.BilderTime = ConfigSelection(choices = [("0", _("off"))] + TimeSelect, default="0")
--config.plugins.LCD4linux.Helligkeit = ConfigSlider(default = 5, limits = (0, 7))
-+config.plugins.LCD4linux.Helligkeit = ConfigSlider(default = 4, limits = (0, 25))
- config.plugins.LCD4linux.LCDoff = ConfigClock(default = ((5 * 60 + 0) * 60) )
- config.plugins.LCD4linux.LCDon = ConfigClock(default = ((5 * 60 + 0) * 60) )
- config.plugins.LCD4linux.Refresh = ConfigSlider(default = 3, limits = (1, 15))
- config.plugins.LCD4linux.Delay = ConfigSlider(default = 200, increment = 50, limits = (50, 2000))
- config.plugins.LCD4linux.WetterCity = ConfigText(default="Berlin", fixed_size=False)
--config.plugins.LCD4linux.LCDType1 = ConfigSelection(choices = LCDType, default="11")
-+config.plugins.LCD4linux.LCDType1 = ConfigSelection(choices = LCDType, default="10")
- config.plugins.LCD4linux.LCDType2 = ConfigSelection(choices = [("00", _("off"))] + LCDType, default="00")
- config.plugins.LCD4linux.LCDRotate1 = ConfigSelection(choices = [("0", _("0")), ("90", _("90")), ("180", _("180"))], default="0")
- config.plugins.LCD4linux.LCDRotate2 = ConfigSelection(choices = [("0", _("0")), ("90", _("90")), ("180", _("180"))], default="0")
-@@ -206,15 +213,6 @@
+@@ -204,17 +208,16 @@
+ config.plugins.LCD4linux.TimerColor = ConfigSelection(choices = Farbe, default="white")
+ config.plugins.LCD4linux.Wetter = ConfigSelection(choices = ScreenSelect, default="0")
config.plugins.LCD4linux.WetterLCD = ConfigSelection(choices = LCDSelect, default="1")
- config.plugins.LCD4linux.WetterPos = ConfigSlider(default = 50, increment = 2, limits = (0, 600))
- config.plugins.LCD4linux.WetterType = ConfigSelection(choices = [("1", _("4 Days small")), ("2", _("4 Days big")), ("3", _("Current big")), ("4", _("Current full"))], default="1")
+-config.plugins.LCD4linux.WetterPos = ConfigSlider(default = 50, increment = 2, limits = (0, 600))
+-config.plugins.LCD4linux.WetterType = ConfigSelection(choices = [("1", _("4 Days small")), ("2", _("4 Days big")), ("3", _("Current big")), ("4", _("Current full"))], default="1")
-config.plugins.LCD4linux.OSCAM = ConfigSelection(choices = ScreenSelect, default="0")
-config.plugins.LCD4linux.OSCAMLCD = ConfigSelection(choices = LCDSelect, default="1")
-config.plugins.LCD4linux.OSCAMFile = ConfigText(default="/tmp/.oscam/oscam.lcd", fixed_size=False)
-config.plugins.LCD4linux.OSCAMSplit = ConfigYesNo(default = False)
-config.plugins.LCD4linux.OSCAMColor = ConfigSelection(choices = Farbe, default="white")
-config.plugins.LCD4linux.OSCAMBackColor = ConfigSelection(choices = [("0", _("off"))] + Farbe, default="black")
++config.plugins.LCD4linux.WetterPosX = ConfigSlider(default = 0, increment = 2, limits = (0, 600))
++config.plugins.LCD4linux.WetterPosY = ConfigSlider(default = 0, increment = 2, limits = (0, 600))
++config.plugins.LCD4linux.WetterType = ConfigSelection(choices = [("1", _("2 Days")), ("2", _("4 Days")), ("3", _("4 Days big")), ("4", _("4 Days only")), ("5", _("2 Days vertical"))], default="1")
++config.plugins.LCD4linux.WetterColor = ConfigSelection(choices = Farbe, default="white")
++config.plugins.LCD4linux.WetterColorLow = ConfigSelection(choices = Farbe, default="aquamarine")
++config.plugins.LCD4linux.WetterColorHigh = ConfigSelection(choices = Farbe, default="violet")
++config.plugins.LCD4linux.WetterColorLine = ConfigSelection(choices = Farbe, default="white")
++config.plugins.LCD4linux.WetterColorDay = ConfigSelection(choices = Farbe, default="white")
++config.plugins.LCD4linux.WetterColorCity = ConfigSelection(choices = Farbe, default="white")
++config.plugins.LCD4linux.WetterColorSky = ConfigSelection(choices = Farbe, default="silver")
config.plugins.LCD4linux.WetterCity = ConfigText(default="Berlin", fixed_size=False)
config.plugins.LCD4linux.Text = ConfigSelection(choices = ScreenSelect, default="0")
config.plugins.LCD4linux.TextLCD = ConfigSelection(choices = LCDSelect, default="1")
-@@ -278,9 +276,9 @@
- config.plugins.LCD4linux.MPClockAlign = ConfigSelection(choices = [("0", _("left")), ("1", _("center")), ("2", _("right"))], default="1")
- config.plugins.LCD4linux.MPClockSplit = ConfigYesNo(default = False)
- config.plugins.LCD4linux.MPClockColor = ConfigSelection(choices = Farbe, default="white")
--config.plugins.LCD4linux.Standby = ConfigSelection(choices = [("0", _("off")), ("1", _("on"))], default="1")
-+config.plugins.LCD4linux.Standby = ConfigSelection(choices = [("0", _("off")), ("1", _("on"))], default="0")
- config.plugins.LCD4linux.StandbyScreenMax = ConfigSelection(choices = [("1", _("Screen 1")), ("2", _("Screen 1-2")), ("3", _("Screen 1-3"))], default="1")
--config.plugins.LCD4linux.StandbyHelligkeit = ConfigSlider(default = 1, limits = (0, 7))
-+config.plugins.LCD4linux.StandbyHelligkeit = ConfigSlider(default = 3, limits = (0, 25))
- config.plugins.LCD4linux.StandbyLCDoff = ConfigClock(default = ((5 * 60 + 0) * 60) )
- config.plugins.LCD4linux.StandbyLCDon = ConfigClock(default = ((5 * 60 + 0) * 60) )
- config.plugins.LCD4linux.StandbyClock = ConfigSelection(choices = ScreenSelect, default="1")
-@@ -300,14 +298,6 @@
+@@ -298,16 +301,9 @@
+ config.plugins.LCD4linux.StandbyTimerColor = ConfigSelection(choices = Farbe, default="white")
+ config.plugins.LCD4linux.StandbyWetter = ConfigSelection(choices = ScreenSelect, default="0")
config.plugins.LCD4linux.StandbyWetterLCD = ConfigSelection(choices = LCDSelect, default="1")
- config.plugins.LCD4linux.StandbyWetterPos = ConfigSlider(default = 50, increment = 2, limits = (0, 600))
+-config.plugins.LCD4linux.StandbyWetterPos = ConfigSlider(default = 50, increment = 2, limits = (0, 600))
++config.plugins.LCD4linux.StandbyWetterPosX = ConfigSlider(default = 0, increment = 2, limits = (0, 600))
++config.plugins.LCD4linux.StandbyWetterPosY = ConfigSlider(default = 50, increment = 2, limits = (0, 600))
config.plugins.LCD4linux.StandbyWetterType = ConfigSelection(choices = [("1", _("4 Days small")), ("2", _("4 Days big")), ("3", _("Current big")), ("4", _("Current full"))], default="1")
-config.plugins.LCD4linux.StandbyOSCAM = ConfigSelection(choices = ScreenSelect, default="0")
-config.plugins.LCD4linux.StandbyOSCAMLCD = ConfigSelection(choices = LCDSelect, default="1")
config.plugins.LCD4linux.StandbyText = ConfigSelection(choices = ScreenSelect, default="0")
config.plugins.LCD4linux.StandbyTextLCD = ConfigSelection(choices = LCDSelect, default="1")
config.plugins.LCD4linux.StandbyTextFile = ConfigText(default="/tmp/lcd4linux.txt", fixed_size=False)
-@@ -421,9 +411,12 @@
- return ""
-
- def writeHelligkeit(hell):
-- f = open(PICbright, "w")
-- f.write(str(hell) + "\r\n")
-- f.close()
-+ hell = int(hell) * 10
-+ if hell >= 250:
-+ hell = 255
-+ led_fd = open("/dev/lcd2",'w')
-+ ioctl(led_fd, 0x10, hell)
-+ led_fd.close()
-
- def getBilder():
- global Bilder
-@@ -754,16 +747,6 @@
+@@ -752,18 +748,16 @@
+ self.list2.append(getConfigListEntry(_("Weather"), config.plugins.LCD4linux.Wetter))
+ if config.plugins.LCD4linux.Wetter.value != "0":
self.list2.append(getConfigListEntry(_("- which LCD"), config.plugins.LCD4linux.WetterLCD))
- self.list2.append(getConfigListEntry(_("- Position"), config.plugins.LCD4linux.WetterPos))
+- self.list2.append(getConfigListEntry(_("- Position"), config.plugins.LCD4linux.WetterPos))
++ self.list2.append(getConfigListEntry(_("- Position X"), config.plugins.LCD4linux.WetterPosX))
++ self.list2.append(getConfigListEntry(_("- Position Y"), config.plugins.LCD4linux.WetterPosY))
self.list2.append(getConfigListEntry(_("- Weather Type"), config.plugins.LCD4linux.WetterType))
- self.list2.append(getConfigListEntry(_("Show oscam.lcd"), config.plugins.LCD4linux.OSCAM))
- if config.plugins.LCD4linux.OSCAM.value != "0":
- self.list2.append(getConfigListEntry(_("- Split Screen"), config.plugins.LCD4linux.OSCAMSplit))
- self.list2.append(getConfigListEntry(_("- Color"), config.plugins.LCD4linux.OSCAMColor))
- self.list2.append(getConfigListEntry(_("- Background Color"), config.plugins.LCD4linux.OSCAMBackColor))
++ self.list2.append(getConfigListEntry(_("- Color"), config.plugins.LCD4linux.WetterColor))
++ self.list2.append(getConfigListEntry(_("- Color Low"), config.plugins.LCD4linux.WetterColorLow))
++ self.list2.append(getConfigListEntry(_("- Color High"), config.plugins.LCD4linux.WetterColorHigh))
++ self.list2.append(getConfigListEntry(_("- Color Line"), config.plugins.LCD4linux.WetterColorLine))
++ self.list2.append(getConfigListEntry(_("- Color Day"), config.plugins.LCD4linux.WetterColorDay))
++ self.list2.append(getConfigListEntry(_("- Color City"), config.plugins.LCD4linux.WetterColorCity))
++ self.list2.append(getConfigListEntry(_("- Color Sky"), config.plugins.LCD4linux.WetterColorSky))
self.list2.append(getConfigListEntry(_("Show Textfile") , config.plugins.LCD4linux.Text))
if config.plugins.LCD4linux.Text.value != "0":
self.list2.append(getConfigListEntry(_("- which LCD"), config.plugins.LCD4linux.TextLCD))
-@@ -870,15 +853,6 @@
+@@ -868,17 +862,9 @@
+ self.list4.append(getConfigListEntry(_("Standby - Weather"), config.plugins.LCD4linux.StandbyWetter))
+ if config.plugins.LCD4linux.StandbyWetter.value != "0":
self.list4.append(getConfigListEntry(_("- which LCD"), config.plugins.LCD4linux.StandbyWetterLCD))
- self.list4.append(getConfigListEntry(_("- Position"), config.plugins.LCD4linux.StandbyWetterPos))
+- self.list4.append(getConfigListEntry(_("- Position"), config.plugins.LCD4linux.StandbyWetterPos))
++ self.list4.append(getConfigListEntry(_("- Position X"), config.plugins.LCD4linux.StandbyWetterPosX))
++ self.list4.append(getConfigListEntry(_("- Position Y"), config.plugins.LCD4linux.StandbyWetterPosY))
self.list4.append(getConfigListEntry(_("- Weather Type"), config.plugins.LCD4linux.StandbyWetterType))
- self.list4.append(getConfigListEntry(_("Standby - Show oscam.lcd"), config.plugins.LCD4linux.StandbyOSCAM))
- if config.plugins.LCD4linux.StandbyOSCAM.value != "0":
self.list4.append(getConfigListEntry(_("Standby - Show Textfile"), config.plugins.LCD4linux.StandbyText))
if config.plugins.LCD4linux.StandbyText.value != "0":
self.list4.append(getConfigListEntry(_("- which LCD"), config.plugins.LCD4linux.StandbyTextLCD))
-@@ -1014,23 +988,24 @@
- return str(self["config"].getCurrent()[1].getText())
-
- def LCDrestart(self):
-- global SamsungDevice
-- global SamsungDevice2
-- DemonRestart()
-- SamsungDevice = None
-- SamsungDevice2 = None
-- getSamsungDevice()
-+ pass
-+# global SamsungDevice
-+# global SamsungDevice2
-+# DemonRestart()
-+# SamsungDevice = None
-+# SamsungDevice2 = None
-+# getSamsungDevice()
-
- def save(self):
- global ConfigMode
- global ConfigStandby
- global isMediaPlayer
- getBilder()
-- if config.plugins.LCD4linux.Refresh.isChanged():
-- f = open(DPFrefreshrate, "w")
-- f.write(str(config.plugins.LCD4linux.Refresh.value * 1000) + "\r\n")
-- f.close()
-- self.LCDrestart()
-+# if config.plugins.LCD4linux.Refresh.isChanged():
-+# f = open(DPFrefreshrate, "w")
-+# f.write(str(config.plugins.LCD4linux.Refresh.value * 1000) + "\r\n")
-+# f.close()
-+# self.LCDrestart()
-
- self["config"].setList(self.list1)
- for x in self["config"].list:
-@@ -1101,6 +1076,7 @@
+@@ -998,11 +984,18 @@
+ self.SavePicon = config.plugins.LCD4linux.PiconType.value
+ self.SaveAspectRatio = config.plugins.LCD4linux.PiconAspectRatio.value
+ os.system("rm -f %s" % config.plugins.LCD4linux.PiconCache.value + "*.png")
+- if self.SaveWetter != config.plugins.LCD4linux.WetterCity.value or self.SaveWetterType != config.plugins.LCD4linux.WetterType.value or self.SaveStandbyWetterType != config.plugins.LCD4linux.StandbyWetterType.value:
++# if self.SaveWetter != config.plugins.LCD4linux.WetterCity.value or self.SaveWetterType != config.plugins.LCD4linux.WetterType.value or self.SaveStandbyWetterType != config.plugins.LCD4linux.StandbyWetterType.value:
++# self.SaveWetter = config.plugins.LCD4linux.WetterCity.value
++# self.SaveWetterType = config.plugins.LCD4linux.WetterType.value
++# self.SaveStandbyWetterType = config.plugins.LCD4linux.StandbyWetterType.value
++# wwwWetter = ""
++ if self.SaveWetter != config.plugins.LCD4linux.WetterCity.value:
+ self.SaveWetter = config.plugins.LCD4linux.WetterCity.value
+- self.SaveWetterType = config.plugins.LCD4linux.WetterType.value
+- self.SaveStandbyWetterType = config.plugins.LCD4linux.StandbyWetterType.value
+ wwwWetter = ""
++
++ elif config.plugins.LCD4linux.WetterColor.isChanged() or config.plugins.LCD4linux.WetterColorLow.isChanged() or config.plugins.LCD4linux.WetterColorHigh.isChanged() or config.plugins.LCD4linux.WetterColorLine.isChanged() or config.plugins.LCD4linux.WetterColorDay.isChanged() or config.plugins.LCD4linux.WetterColorCity.isChanged() or config.plugins.LCD4linux.WetterColorSky.isChanged():
++ if os.path.isfile(PICwetter):
++ os.system("rm -f %s" % PICwetter)
+ if self.SaveScreenActive != config.plugins.LCD4linux.ScreenActive.value:
+ self.SaveScreenActive = config.plugins.LCD4linux.ScreenActive.value
+ ScreenActive = self.SaveScreenActive
+@@ -1101,6 +1094,7 @@
self.KeyTime = 0
self.StandbyChanged = False
self.DataMinute = ""
self.ref = ""
self.StatusTimer = eTimer()
-@@ -1131,16 +1107,17 @@
- self.timerlist = ""
- self.pluginlist = ""
-
-+ self.pngutilconnect = pngutil.connect()
-+
- ##### self.onShow.append(self.ServiceChange)
- # config.misc.standbyCounter.addNotifier(self.restartTimer(self), initial_call = False)
- getBilder()
- self.StatusTimer.startLongTimer(5)
-- self.Demon()
-- self.SamsungStart()
-+# self.Demon()
-+# self.SamsungStart()
-
- def updateStatus(self):
- print "[LCD4linux] update"
--
- # global DataMinute
- # global ScreenActive
- global BilderTime
-@@ -1200,20 +1177,25 @@
- # print BilderTime, OSDon,self.StandbyChanged,Standby.inStandby
- if strftime("%M")!=self.DataMinute or BilderTime == 1 or self.StandbyChanged != Standby.inStandby or ConfigMode or (ScreenActive != SaveScreenActive) or isVideoPlaying > 2 or OSDon == 3:
- print "[LCD4linux] Data-Build"
-- if config.plugins.LCD4linux.LCDType1.value[0] == "1" or config.plugins.LCD4linux.LCDType2.value[0] == "1":
-- if strftime("%M")!=self.DataMinute:
-- if DemonCheck():
-- self.Demon()
-- if SamsungCheck():
-- self.SamsungStart()
-+# if config.plugins.LCD4linux.LCDType1.value[0] == "1" or config.plugins.LCD4linux.LCDType2.value[0] == "1":
-+# if strftime("%M")!=self.DataMinute:
-+# if DemonCheck():
-+# self.Demon()
-+# if SamsungCheck():
-+# self.SamsungStart()
- self.DataMinute = strftime("%M")
+@@ -1210,10 +1204,15 @@
self.StandbyChanged = Standby.inStandby
self.restartTimer()
if config.plugins.LCD4linux.StandbyWetter.value != "0" or config.plugins.LCD4linux.Wetter.value != "0":
- self.downloadWetter()
+ if strftime("%M") != self.WetterCheckMin:
+ self.WetterCheckMin = strftime("%M")
-+ if strftime("%M") == "15" or strftime("%M") == "45" or wwwWetter.find("forecast_information") < 1:
++ if strftime("%M") == "15" or strftime("%M") == "45" or wwwWetter.find("forecast") < 1:
+ self.downloadWetter()
if ConfigMode == True:
- self.StatusTimer.startLongTimer(2)
+ if config.plugins.LCD4linux.Bild.value.find(ScreenActive) >= 0:
+ self.StatusTimer.startLongTimer(5)
+ else:
-+ self.StatusTimer.startLongTimer(2)
++ self.StatusTimer.startLongTimer(3)
else:
self.StatusTimer.startLongTimer(5)
-@@ -1377,15 +1359,43 @@
+@@ -1377,23 +1376,68 @@
ScreenActive = "1"
ScreenTime += 1
+ def cannotConnect(self, port = 80, url = "74.125.71.94", timeout = 5):
+ try:
-+ sock = socket.create_connection((url, port), timeout)
++ sock = socket_create_connection((url, port), timeout)
+# print "Can be connected to [%s:%d]."%(url,port)
+ except Exception, ErrMsg:
+ print "Can't be connected to [%s:%d]. (%s)"%(url, port, ErrMsg)
+ print "[LCD4linux] downloadWetter already running"
+ return
+ WetterThreadRunning += 1
++ from threading import Thread
+ t = Thread(target=self.downloadWetterThread)
+ t.start()
+
+ def downloadWetterThread(self):
-+ if self.cannotConnect(80, "74.125.71.94", 1): # www.google.de
++ wetter = 0
++# if self.cannotConnect(80, "173.194.72.94", 1): # www.google.de
++ if self.cannotConnect(80, "173.194.72.99", 1): # www.google.com
+ self.downloadWetterThreadEnd()
+ return
print "[LCD4linux] Wetterdownloadstart"
- self.feedurl = "http://www.google.com/ig/api?weather=%s&oe=utf-8&hl=%s" % (config.plugins.LCD4linux.WetterCity.value,language.getLanguage()[:2])
- # self.feedurl = "http://www.google.com/ig/api?weather=%s&oe=utf-8&hl=%s" % (config.plugins.LCD4linux.WetterCity.value,"de")
+- self.feedurl = "http://www.google.com/ig/api?weather=%s&oe=utf-8&hl=%s" % (config.plugins.LCD4linux.WetterCity.value,language.getLanguage()[:2])
+-# self.feedurl = "http://www.google.com/ig/api?weather=%s&oe=utf-8&hl=%s" % (config.plugins.LCD4linux.WetterCity.value,"de")
++ wetterCity = config.plugins.LCD4linux.WetterCity.value
++ lang = language.getLanguage().replace("_","-")
++ if lang in ["no-NO","ca-AD","sr-YU","en-EN"]:
++ lang = "en-us"
++ if wetterCity.startswith("wc:"):
++ self.feedurl = "http://weather.service.msn.com/data.aspx?src=vista&weadegreetype=C&culture=%s&wealocations=%s" %(lang,wetterCity)
++ else:
++ self.feedurl = "http://weather.service.msn.com/data.aspx?src=vista&weadegreetype=C&culture=%s&weasearchstr=%s" %(lang,quote(wetterCity))
getPage(self.feedurl).addCallback(self.downloadListCallback).addErrback(self.downloadListError)
+ self.downloadWetterThreadEnd()
def downloadListError(self, error=""):
- print str(error)
+- print str(error)
++ print "download wetter error : ", str(error)
# self.session.open(MessageBox, "Error downloading Feed:\n%s" % str(error), type=MessageBox.TYPE_ERROR)
+ self.downloadWetterThreadEnd()
def downloadListCallback(self, page=""):
global wwwWetter
-@@ -1394,6 +1404,13 @@
+ wwwWetter = page
+ wwwWetter = wwwWetter.replace('\xc2\x86', '').replace('\xc2\x87', '').replace('\n','').decode("utf-8", "ignore").encode("utf-8") or ""
wwwWetter=codecs.decode(wwwWetter, 'UTF-8')
++# print wwwWetter
if os.path.isfile(PICwetter):
os.system("rm -f %s" % PICwetter)
+# print " >> downloadListCallback updated.."
def LCD4linuxPICThread(self,session):
global ThreadRunning
-@@ -1465,7 +1482,9 @@
- return event_begin, event_end, duration, event_name
+@@ -1530,116 +1574,174 @@
+ global BilderTime
+ global OSDon
- def getResolution(t):
-- if t[1] == "1":
-+ if t[1] == "0":
-+ MAX_W,MAX_H = 400,240
-+ elif t[1] == "1":
- MAX_W,MAX_H = 320,240
- elif t[1] == "2":
- MAX_W,MAX_H = 240,320
-@@ -1533,6 +1552,9 @@
- # Google Wetter
- def putWetter(ConfigPos, ConfigType, draw, im):
+-# Google Wetter
+- def putWetter(ConfigPos, ConfigType, draw, im):
++# MSN Wetter
++ def putWetter((ConfigPosX, ConfigPosY, ConfigType, ConfigColor,
++ ConfigColorLow, ConfigColorHigh, ConfigColorLine, ConfigColorDay, ConfigColorCity, ConfigColorSky), draw, im):
++ global wwwWetter
global WetterType
+ global WetterThreadRunning
+ if WetterThreadRunning:
++ print " Download Wetter thread is running"
+ return
if os.path.isfile(PICwetter) and ConfigType == WetterType:
pil_image = Image.open(PICwetter)
- im.paste(pil_image,(0,ConfigPos))
-@@ -1977,51 +1999,6 @@
+- im.paste(pil_image,(0,ConfigPos))
++ im.paste(pil_image,(ConfigPosX,ConfigPosY))
+ else:
+ WetterType=ConfigType
+- POSX, POSY = 1,0
+- MAX_W,MAX_H = 320,80
+- Wmulti = 1.4 if ConfigType != "1" else 1
+- if ConfigType == "2":
+- MAX_H = 220
+- POSX = 10
++ POSX, POSY = 5,5
++ if ConfigType == "1":
++ MAX_W,MAX_H = 260,110
++ elif ConfigType == "2":
++ MAX_W,MAX_H = 400,110
+ elif ConfigType == "3":
+- MAX_H = 90
+- POSY = POSY-(20*Wmulti)+1
+- elif ConfigType == "4":
+- Wmulti = 3.5
+- MAX_H = 220
+- POSY = POSY-(20*Wmulti)+1
++ MAX_W,MAX_H = 400,240
++ elif ConfigType == "4" or ConfigType == "5":
++ MAX_W,MAX_H = 180,240
+ imW = Image.new('RGB', (MAX_W, MAX_H), (0, 0, 0, 0))
+ drawW = ImageDraw.Draw(imW)
+ dom = parseString(wwwWetter)
+- for node in dom.getElementsByTagName('forecast_information'):
+- for unitsystem in node.getElementsByTagName('unit_system'):
+- UnitSystem = unitsystem.getAttribute('data')
+- if ConfigType != "3" and ConfigType != "4":
+- font = ImageFont.truetype(FONT,20*Wmulti, encoding='unic')
+- Day="?"
+- High="?"
+- Low="?"
+- Icon=""
+- for node in dom.getElementsByTagName('forecast_conditions'):
+- for day_of_week in node.getElementsByTagName('day_of_week'):
+- Day = day_of_week.getAttribute('data')
+- for high in node.getElementsByTagName('high'):
+- High = high.getAttribute('data')
+- if UnitSystem == "US":
+- High = str(int((int(High)-32)*5/9))
+- for low in node.getElementsByTagName('low'):
+- Low = low.getAttribute('data')
+- if UnitSystem == "US":
+- Low = str(int((int(Low)-32)*5/9))
+- for icon in node.getElementsByTagName('icon'):
+- Icon = os.path.basename(icon.getAttribute('data'))
+-# print "WetterData", Day, Low, High, Icon
+- if os.path.isfile(WetterPath + Icon) and Icon.find("gif") > 1:
+- pil_image = Image.open(WetterPath + Icon)
+- if Wmulti != 1:
+- pil_image = pil_image.resize((int(40*Wmulti), int(40*Wmulti)), Image.ANTIALIAS) #BILINEAR)
+-# x,y=pil_image.size
+- imW.paste(pil_image,(POSX,POSY+(20*Wmulti)))
+- w,h = drawW.textsize(Day, font=font)
+- drawW.text((POSX, POSY), Day, font=font)
+- drawW.text((POSX, POSY+(60*Wmulti)), Low, font=font, fill="aquamarine")
+- drawW.text((POSX+(25*Wmulti), POSY+(60*Wmulti)), High, font=font, fill="violet")
+-
+- POSX += (54*Wmulti)
+- if Wmulti != 1:
+- POSX = 10
+- POSY += 90
+-
+- Hum = "?"
+- Wind = "?"
+- Temp_c = "?"
+- Icon=""
+- for node in dom.getElementsByTagName('current_conditions'):
+- for temp_c in node.getElementsByTagName('temp_c'):
+- Temp_c = temp_c.getAttribute('data') + "\xc2\xb0C"
+- for hum in node.getElementsByTagName('humidity'):
+- Hum1 = hum.getAttribute('data').replace("\xc2\xa0","").replace(" ","")
+- Hum1 = Hum1.split(":")
+- if len(Hum1) == 2:
+- Hum = Hum1[len(Hum1)-1].lstrip()
+- for wind in node.getElementsByTagName('wind_condition'):
+- Wind = wind.getAttribute('data')
+- Wind = Wind.split(":")
+- if len(Wind) == 2:
+- Wind = Wind[len(Wind)-1].lstrip()
+- for icon in node.getElementsByTagName('icon'):
+- Icon = os.path.basename(icon.getAttribute('data'))
+-# print "Temp, Hum", Temp_c, Hum, Wind, Icon
+- if os.path.isfile(WetterPath + Icon) and Icon.find("gif") > 1:
+- pil_image = Image.open(WetterPath + Icon)
+- if Wmulti != 1:
+- pil_image = pil_image.resize((int(40*Wmulti), int(40*Wmulti)), Image.ANTIALIAS) #BILINEAR)
+-# x,y=pil_image.size
+- if ConfigType == "4":
+- POSX = 10
+- imW.paste(pil_image,(POSX,POSY+(20*Wmulti)))
+- if ConfigType == "4":
+- font = ImageFont.truetype(FONT,(10*Wmulti), encoding='unic')
+- else:
+- font = ImageFont.truetype(FONT,(15*Wmulti), encoding='unic')
+- minus5 = 0 if Wmulti != 1 else 5
+- drawW.text((POSX-minus5, POSY+(64*Wmulti)), Wind, font=font, fill="silver")
+- if ConfigType == "4":
+- font = ImageFont.truetype(FONT,(20*Wmulti), encoding='unic')
+- else:
+- font = ImageFont.truetype(FONT,(25*Wmulti), encoding='unic')
+- drawW.text((POSX+(45*Wmulti), POSY+(16*Wmulti)), Temp_c, font=font, fill="violet")
+- if len(Hum)>3:
+- if ConfigType == "4":
+- font = ImageFont.truetype(FONT,(16*Wmulti), encoding='unic')
++ weather = dom.getElementsByTagName("weather")
++ if len(weather) == 0:
++ print "get weather failed"
++ return
++ else:
++ weather = weather[0]
++
++ def getFont(size):
++ return ImageFont.truetype(FONT, size, encoding='unic')
++
++ if ConfigType in ("1","2","3","4","5"):
++# forecast 4 days
++ if ConfigType in ("1","2"):
++ Day="?"; High="?"; Low="?"; Icon=""
++ font = getFont(20)
++ drawW.line((POSX, POSY, POSX, MAX_H), fill=ConfigColorLine)
++ forecast_num = 0
++ for node in weather.getElementsByTagName('forecast'):
++ forecast_num += 1
++ if ConfigType == "1" and forecast_num > 2:
++ break
++ elif ConfigType == "2" and forecast_num > 4:
++ break
++ Day = node.getAttribute('shortday')
++ High = node.getAttribute('high')
++ Low = node.getAttribute('low')
++ Icon = node.getAttribute('skycodeday')
++ Skytextday = node.getAttribute('skytextday')
++ Precip = node.getAttribute('precip')
++ iconpath = WetterPath + Icon+'.png'
++ if os.path.isfile(iconpath):
++ pil_image = Image.open(iconpath)
++ imW.paste(pil_image,(POSX+5,POSY+25), pil_image)
++ drawW.text((POSX+13, POSY), Day, font=font, fill=ConfigColorDay)
++ drawW.text((POSX+10, POSY+71), Low, font=font, fill=ConfigColorLow)
++ drawW.text((POSX+37, POSY+71), High, font=font, fill=ConfigColorHigh)
++ drawW.line((POSX+65, POSY, POSX+65, MAX_H), fill=ConfigColorLine)
++ POSX += 65
++ elif ConfigType in ("3", "4", "5"):
++ Day="?"; High="?"; Low="?"; Icon=""
++ if ConfigType == "5":
++ POSX, POSY = 5,120
++# if ConfigType in ("3"):
++# drawW.line((0, 0, MAX_W/2, 0), fill=ConfigColorLine)
++# elif ConfigType in ("4"):
++# drawW.line((0, 0, MAX_W, 0), fill=ConfigColorLine)
++ if ConfigType in ("5"):
++ drawW.line((0, POSY, MAX_W, POSY), fill=ConfigColorLine)
++ forecast_num = 0
++ for node in weather.getElementsByTagName('forecast'):
++ forecast_num += 1
++ if ConfigType in ("3", "4") and forecast_num > 4:
++ break
++ elif ConfigType == "5" and forecast_num > 2:
++ break
++ Day = node.getAttribute('day')
++ Low = node.getAttribute('low') + "\xc2\xb0"
++ High = node.getAttribute('high') + "\xc2\xb0"
++ Icon = node.getAttribute('skycodeday')
++ Skytextday = node.getAttribute('skytextday')
++ Precip = node.getAttribute('precip')
++ iconpath = WetterPath + Icon+'.png'
++ if os.path.isfile(iconpath):
++ pil_image = Image.open(iconpath)
++# icon_w, icon_h = 55,45
++ icon_w, icon_h = int(55*1.2), int(45*1.2)
++ pil_image = pil_image.resize( (icon_w, icon_h), Image.ANTIALIAS) #BILINEAR)
++ imW.paste(pil_image,(POSX, POSY), pil_image)
++ font = getFont(15)
++ drawW.text((POSX+icon_w-20, POSY-2), Precip, font=font, fill="cyan")
++ drawW.text((POSX+icon_w+5, POSY+5), Day, font=font, fill=ConfigColorDay)
++ drawW.text((POSX+icon_w+5, POSY+20), Low, font=font, fill=ConfigColorLow)
++ drawW.text((POSX+icon_w+30, POSY+20), High, font=font, fill=ConfigColorHigh)
++ drawW.text((POSX+icon_w+5, POSY+35), Skytextday, font=font, fill=ConfigColorSky)
++ if ConfigType == "3":
++ drawW.line((POSX, POSY+55, MAX_W/2, POSY+55), fill=ConfigColorLine)
++ else:
++ drawW.line((POSX, POSY+55, MAX_W, POSY+55), fill=ConfigColorLine)
++ POSY += 60
++
++# current info
++ if ConfigType in ("1","2","5"):
++ if ConfigType == "5":
++ POSX, POSY = 15,15
++ Hum = "?"; Wind = "?"; Temp = "?"; Icon=""
++ current = weather.getElementsByTagName('current')
++ if len(current) == 0:
++ print "get current failed"
++ else:
++ current = current[0]
++ ObservationPoint = current.getAttribute('observationpoint')
++ ObservationTime = current.getAttribute('observationtime')
++ Temp = current.getAttribute('temperature') + "\xc2\xb0"
++ Hum = current.getAttribute('humidity') + "%"
++ Wind = current.getAttribute('winddisplay')
++ Icon = current.getAttribute("skycode")
++ iconpath = WetterPath + Icon+'.png'
++ if os.path.isfile(iconpath):
++ pil_image = Image.open(iconpath)
++ pil_image = pil_image.resize((int(55*1.4), int(45*1.4)), Image.ANTIALIAS) #BILINEAR)
++ imW.paste(pil_image,(POSX+5, POSY+5+10), pil_image)
++ drawW.text((POSX+5, POSY), ObservationPoint+' '+ObservationTime, font=getFont(12), fill=ConfigColorCity)
++ drawW.text((POSX+15+62, POSY+5+15), Temp, font=getFont(25), fill=ConfigColorHigh)
++ drawW.text((POSX+15+62, POSY+5+40), Hum, font=getFont(22), fill=ConfigColorLow)
++ drawW.text((POSX+5, POSY+80), Wind, font=getFont(15), fill=ConfigColorSky)
++
++ elif ConfigType in ("3"):
++ POSX, POSY = 200,5
++ drawW.line((POSX, POSY, POSX, MAX_H), fill=ConfigColorLine)
++ Hum = "?"; Wind = "?"; Temp = "?"; Icon=""
++ current = weather.getElementsByTagName('current')
++ if len(current) == 0:
++ print "get current failed"
++ return
+ else:
+- font = ImageFont.truetype(FONT,(22*Wmulti), encoding='unic')
+- drawW.text((POSX+(45*Wmulti), POSY+(37*Wmulti)), Hum, font=font, fill="silver")
++ current = current[0]
++ ObservationPoint = current.getAttribute('observationpoint')
++ ObservationTime = current.getAttribute('observationtime')
++ Temp = 'Temp. : '+ current.getAttribute('temperature') + "\xc2\xb0"
++ Hum = 'Hum : '+ current.getAttribute('humidity') + "%"
++ Wind = 'Wind : '+ current.getAttribute('winddisplay')
++ Icon = current.getAttribute("skycode")
++ Skytext = 'Cond : ' + current.getAttribute('skytext')
++ Feelslike = 'Feel : '+ current.getAttribute('feelslike')
++ Date = 'Date : ' + current.getAttribute('date')
++ iconpath = WetterPath + Icon+'.png'
++ icon_w, icon_h = int(55*2.8), int(45*2.8)
++ if os.path.isfile(iconpath):
++ pil_image = Image.open(iconpath)
++ pil_image = pil_image.resize( (icon_w, icon_h), Image.ANTIALIAS) #BILINEAR
++ imW.paste(pil_image,(POSX+5, POSY+5), pil_image)
++ font = getFont(15)
++ drawW.text((POSX+20, POSY+3+icon_h), Temp, font=font, fill=ConfigColorHigh)
++ drawW.text((POSX+20+80, POSY+3+icon_h), Hum, font=font, fill=ConfigColorLow)
++ drawW.text((POSX+20, POSY+3+icon_h+20), Skytext, font=font, fill=ConfigColorSky)
++ drawW.text((POSX+20, POSY+3+icon_h+40), Wind, font=font, fill=ConfigColorLow)
++ drawW.text((POSX+20, POSY+3+icon_h+60), Date, font=font, fill=ConfigColorCity)
++ font = ImageFont.truetype(FONT,15, encoding='unic')
++ drawW.text((POSX+20, MAX_H-25), ObservationPoint+' '+ObservationTime, font=font, fill=ConfigColorCity)
++# save Image
+ imW.save(PICwetter)
+- im.paste(imW,(0,ConfigPos))
++ im.paste(imW,(ConfigPosX,ConfigPosY))
+ return
+
+ # Text File
+@@ -1977,51 +2079,6 @@
lx = getSplit(ConfigSplit,ConfigAlign,MAX_W,w)
draw.text((lx, ConfigPos), i, font=font, fill=ConfigColor)
# show Title
def putTitle(ConfigPos, ConfigSize, ConfigLines, ConfigColor, ConfigAlign, ConfigSplit, draw, im):
MAX_W,MAX_H = im.size
-@@ -2157,12 +2134,6 @@
+@@ -2110,13 +2167,23 @@
+ if isOffTime(config.plugins.LCD4linux.StandbyLCDoff.value,config.plugins.LCD4linux.StandbyLCDon.value):
+ writeHelligkeit(0)
+ print "[LCD4linux] LCD off"
+-# Google Wetter
+- if config.plugins.LCD4linux.StandbyWetter.value.find(ScreenActive) >= 0 and wwwWetter.find("forecast_information") > 1:
++# MSN Wetter
++ if config.plugins.LCD4linux.StandbyWetter.value.find(ScreenActive) >= 0 and wwwWetter.find("forecast") > 1:
++ params = (
++ config.plugins.LCD4linux.StandbyWetterPosX.value,
++ config.plugins.LCD4linux.StandbyWetterPosY.value,
++ config.plugins.LCD4linux.StandbyWetterType.value,
++ config.plugins.LCD4linux.WetterColor.value,
++ config.plugins.LCD4linux.WetterColorLow.value,
++ config.plugins.LCD4linux.WetterColorHigh.value,
++ config.plugins.LCD4linux.WetterColorLine.value,
++ config.plugins.LCD4linux.WetterColorDay.value,
++ config.plugins.LCD4linux.WetterColorCity.value,
++ config.plugins.LCD4linux.WetterColorSky.value)
+ if config.plugins.LCD4linux.StandbyWetterLCD.value.find("1") >= 0:
+- putWetter(config.plugins.LCD4linux.StandbyWetterPos.value,config.plugins.LCD4linux.StandbyWetterType.value,draw,im)
++ putWetter(params, draw, im)
+ if config.plugins.LCD4linux.StandbyWetterLCD.value.find("2") >= 0 and config.plugins.LCD4linux.LCDType2.value != "00":
+- putWetter(config.plugins.LCD4linux.StandbyWetterPos.value,config.plugins.LCD4linux.StandbyWetterType.value,draw2,im2)
+-
++ putWetter(params, draw2, im2)
+ # get clock
+ if config.plugins.LCD4linux.StandbyClock.value.find(ScreenActive) >= 0:
+ if config.plugins.LCD4linux.StandbyClockLCD.value.find("1") >= 0:
+@@ -2157,12 +2224,6 @@
putBild(config.plugins.LCD4linux.StandbyBildPos.value, config.plugins.LCD4linux.StandbyBildSize.value, config.plugins.LCD4linux.StandbyBildAlign.value, ShowPicture, im)
if config.plugins.LCD4linux.StandbyBildLCD.value.find("2") >= 0 and config.plugins.LCD4linux.LCDType2.value != "00":
putBild(config.plugins.LCD4linux.StandbyBildPos.value, config.plugins.LCD4linux.StandbyBildSize.value, config.plugins.LCD4linux.StandbyBildAlign.value, ShowPicture, im2)
# show Textfile
if config.plugins.LCD4linux.StandbyText.value.find(ScreenActive) >= 0:
if config.plugins.LCD4linux.StandbyTextLCD.value.find("1") >= 0:
-@@ -2324,12 +2295,6 @@
+@@ -2240,12 +2301,23 @@
+ putPicon(config.plugins.LCD4linux.PiconSize.value, config.plugins.LCD4linux.PiconType.value, config.plugins.LCD4linux.PiconAlign.value, config.plugins.LCD4linux.PiconTextSize.value, draw, im)
+ if config.plugins.LCD4linux.PiconLCD.value.find("2") >= 0 and config.plugins.LCD4linux.LCDType2.value != "00":
+ putPicon(config.plugins.LCD4linux.PiconSize.value, config.plugins.LCD4linux.PiconType.value, config.plugins.LCD4linux.PiconAlign.value, config.plugins.LCD4linux.PiconTextSize.value, draw2, im2)
+-# Google Wetter
+- if config.plugins.LCD4linux.Wetter.value.find(ScreenActive) >= 0 and wwwWetter.find("forecast_information") > 1:
++# MSN Wetter
++ if config.plugins.LCD4linux.Wetter.value.find(ScreenActive) >= 0 and wwwWetter.find("forecast") > 1:
++ params = (
++ config.plugins.LCD4linux.WetterPosX.value,
++ config.plugins.LCD4linux.WetterPosY.value,
++ config.plugins.LCD4linux.WetterType.value,
++ config.plugins.LCD4linux.WetterColor.value,
++ config.plugins.LCD4linux.WetterColorLow.value,
++ config.plugins.LCD4linux.WetterColorHigh.value,
++ config.plugins.LCD4linux.WetterColorLine.value,
++ config.plugins.LCD4linux.WetterColorDay.value,
++ config.plugins.LCD4linux.WetterColorCity.value,
++ config.plugins.LCD4linux.WetterColorSky.value)
+ if config.plugins.LCD4linux.WetterLCD.value.find("1") >= 0:
+- putWetter(config.plugins.LCD4linux.WetterPos.value,config.plugins.LCD4linux.WetterType.value,draw,im)
++ putWetter(params, draw, im)
+ if config.plugins.LCD4linux.WetterLCD.value.find("2") >= 0 and config.plugins.LCD4linux.LCDType2.value != "00":
+- putWetter(config.plugins.LCD4linux.WetterPos.value,config.plugins.LCD4linux.WetterType.value,draw2,im2)
++ putWetter(params, draw2, im2)
+ # get clock
+ if config.plugins.LCD4linux.Clock.value.find(ScreenActive) >= 0:
+ if config.plugins.LCD4linux.ClockLCD.value.find("1") >= 0:
+@@ -2259,11 +2331,11 @@
+ if config.plugins.LCD4linux.InfoLCD.value.find("2") >= 0 and config.plugins.LCD4linux.LCDType2.value != "00":
+ putInfo(config.plugins.LCD4linux.InfoPos.value, config.plugins.LCD4linux.InfoSize.value,config.plugins.LCD4linux.InfoAlign.value,config.plugins.LCD4linux.InfoSplit.value,config.plugins.LCD4linux.InfoColor.value,config.plugins.LCD4linux.InfoTuner.value+config.plugins.LCD4linux.InfoSensor.value, draw2, im2)
+ # next Timer Record
+- if config.plugins.LCD4linux.Timer.value.find(ScreenActive) >= 0:
+- if config.plugins.LCD4linux.TimerLCD.value.find("1") >= 0:
+- putTimer(config.plugins.LCD4linux.TimerPos.value, config.plugins.LCD4linux.TimerSize.value, config.plugins.LCD4linux.TimerColor.value, draw, im)
+- if config.plugins.LCD4linux.TimerLCD.value.find("2") >= 0 and config.plugins.LCD4linux.LCDType2.value != "00":
+- putTimer(config.plugins.LCD4linux.TimerPos.value, config.plugins.LCD4linux.TimerSize.value, config.plugins.LCD4linux.TimerColor.value, draw2, im2)
++ if config.plugins.LCD4linux.Timer.value.find(ScreenActive) >= 0:
++ if config.plugins.LCD4linux.TimerLCD.value.find("1") >= 0:
++ putTimer(config.plugins.LCD4linux.TimerPos.value, config.plugins.LCD4linux.TimerSize.value, config.plugins.LCD4linux.TimerColor.value, draw, im)
++ if config.plugins.LCD4linux.TimerLCD.value.find("2") >= 0 and config.plugins.LCD4linux.LCDType2.value != "00":
++ putTimer(config.plugins.LCD4linux.TimerPos.value, config.plugins.LCD4linux.TimerSize.value, config.plugins.LCD4linux.TimerColor.value, draw2, im2)
+ # aktive Sendernummer
+ if config.plugins.LCD4linux.ChannelNum.value.find(ScreenActive) >= 0:
+ if config.plugins.LCD4linux.ChannelNumLCD.value.find("1") >= 0:
+@@ -2324,12 +2396,6 @@
putBild(config.plugins.LCD4linux.BildPos.value, config.plugins.LCD4linux.BildSize.value, config.plugins.LCD4linux.BildAlign.value, ShowPicture, im)
if config.plugins.LCD4linux.BildLCD.value.find("2") >= 0 and config.plugins.LCD4linux.LCDType2.value != "00":
putBild(config.plugins.LCD4linux.BildPos.value, config.plugins.LCD4linux.BildSize.value, config.plugins.LCD4linux.BildAlign.value, ShowPicture, im2)
# show Textfile
if config.plugins.LCD4linux.Text.value.find(ScreenActive) >= 0:
if config.plugins.LCD4linux.TextLCD.value.find("1") >= 0:
-@@ -2366,43 +2331,13 @@
- im.save(PICtmp+".png", "PNG")
- if os.path.isfile(PICtmp+".png"):
- os.rename(PICtmp+".png",PIC+".png")
-- else:
-- if SamsungDevice is not None:
-- print "[LCD4linux] writing to Samsung Device"
-- output = StringIO.StringIO()
-- im.save(output, "JPEG")
-- pic = output.getvalue()
-- output.close()
-- try:
-- Photoframe.write_jpg2frame(SamsungDevice, pic)
-- except:
-- print "[LCD4linux] Samsung 1 write error"
-- im.save(PICtmp+".jpg", "JPEG")
-- if os.path.isfile(PICtmp+".jpg"):
-- os.rename(PICtmp+".jpg",PIC+".jpg")
-- if config.plugins.LCD4linux.LCDType2.value != "00":
-- if config.plugins.LCD4linux.LCDRotate2.value != "0":
-- im2=im2.rotate(int(config.plugins.LCD4linux.LCDRotate2.value))
-- if config.plugins.LCD4linux.LCDType2.value[0] == "1":
-- im2.save(PIC2tmp+".png", "PNG")
-- if os.path.isfile(PIC2tmp+".png"):
-- os.rename(PIC2tmp+".png",PIC2+".png")
-- else:
-- if SamsungDevice2 is not None:
-- print "[LCD4linux] writing to Samsung2 Device"
-- output = StringIO.StringIO()
-- im2.save(output, "JPEG")
-- pic = output.getvalue()
-- output.close()
-- try:
-- Photoframe.write_jpg2frame(SamsungDevice2, pic)
-- except:
-- print "[LCD4linux] Samsung 2 write error"
-- im2.save(PIC2tmp+".jpg", "JPEG")
-- if os.path.isfile(PIC2tmp+".jpg"):
-- os.rename(PIC2tmp+".jpg",PIC2+".jpg")
-+ if self.pngutilconnect == 0:
-+ print "[LCD4linux] RunTime:", time() - tt
-+ return
-+ pngutiltime = time()
-+ pngutil.send(PIC+".png")
-+ print "[LCD4linux] time(write to lcd) : ",time()-pngutiltime
- print "[LCD4linux] RunTime:", time() - tt
--
- return
-
- def main(session,**kwargs):
+@@ -2440,3 +2506,4 @@
+ icon = "plugin.png",
+ fnc = main))
+ return list
++