Update lcd4linux
[vuplus_openvuplus] / meta-openvuplus / recipes-vuplus / duo2lcd4linux / files / duo2lcd4linux.patch
index 5d4d6bd..56bb91a 100644 (file)
@@ -1,20 +1,21 @@
 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
@@ -22,35 +23,12 @@ diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
  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)
@@ -60,24 +38,26 @@ diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
 -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")
@@ -90,25 +70,13 @@ diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
  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":
@@ -120,12 +88,23 @@ diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
 -                              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":
@@ -139,43 +118,29 @@ diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
                        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 = ""
@@ -183,44 +148,7 @@ diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
                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":
@@ -228,24 +156,24 @@ diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
 -                                      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)
@@ -263,28 +191,42 @@ diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
 +                      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.."
@@ -297,28 +239,281 @@ diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
  
  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)
  
@@ -370,7 +565,36 @@ diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
  # 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)
@@ -383,7 +607,52 @@ diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
  # 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)
@@ -396,53 +665,8 @@ diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
  # 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
++