duo2lcd4linux : make patch
[vuplus_openvuplus] / meta-openvuplus / recipes-vuplus / duo2lcd4linux / files / duo2lcd4linux.patch
1 diff -urN LCD4linux_ori/plugin.py LCD4linux/plugin.py
2 --- LCD4linux_ori/plugin.py     2012-08-29 17:06:28.000000000 +0900
3 +++ LCD4linux/plugin.py 2013-05-10 14:31:45.000000000 +0900
4 @@ -49,6 +49,12 @@
5  from urllib import urlencode
6  import xml.etree.cElementTree
7  
8 +from threading import Thread
9 +from fcntl import ioctl
10 +import socket
11 +from pngutil import png_util
12 +pngutil = png_util.PNGUtil()
13 +
14  # globals
15  DPFrefreshrate="/usr/lib/enigma2/python/Plugins/Extensions/LCD4linux/refreshrate"
16  WetterPath = "/usr/lib/enigma2/python/Plugins/Extensions/LCD4linux/wetter/"
17 @@ -80,6 +86,7 @@
18  BilderIndexStandby = 0
19  BilderTime = 0
20  ThreadRunning = 0
21 +WetterThreadRunning = 0
22  LastDemon = ""
23  DemonPID = ["","","",""]
24  SamsungDevice = None
25 @@ -104,7 +111,7 @@
26  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"))]
27  TimeSelect = [("1", _("5s")), ("2", _("10s")), ("3", _("15s")), ("4", _("20s")), ("6", _("30s")), ("12", _("1min")), ("24", _("2min"), ("60", _("5min")))]
28  LCDSelect = [("1", _("LCD 1")), ("2", _("LCD 2")), ("12", _("LCD 1+2"))]
29 -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"))]
30 +LCDType = [("10", _("Vu LCD 400x240"))]
31  
32  config.plugins.LCD4linux = ConfigSubsection()
33  config.plugins.LCD4linux.Enable = ConfigYesNo(default = False)
34 @@ -116,13 +123,13 @@
35  config.plugins.LCD4linux.ScreenTime3 = ConfigSelection(choices = TimeSelect, default="1")
36  config.plugins.LCD4linux.ScreenTime4 = ConfigSelection(choices = TimeSelect, default="1")
37  config.plugins.LCD4linux.BilderTime = ConfigSelection(choices =  [("0", _("off"))] + TimeSelect, default="0")
38 -config.plugins.LCD4linux.Helligkeit = ConfigSlider(default = 5,  limits = (0, 7))
39 +config.plugins.LCD4linux.Helligkeit = ConfigSlider(default = 4,  limits = (0, 25))
40  config.plugins.LCD4linux.LCDoff = ConfigClock(default = ((5 * 60 + 0) * 60) )
41  config.plugins.LCD4linux.LCDon = ConfigClock(default = ((5 * 60 + 0) * 60) )
42  config.plugins.LCD4linux.Refresh = ConfigSlider(default = 3,  limits = (1, 15))
43  config.plugins.LCD4linux.Delay = ConfigSlider(default = 200,  increment = 50, limits = (50, 2000))
44  config.plugins.LCD4linux.WetterCity = ConfigText(default="Berlin", fixed_size=False)
45 -config.plugins.LCD4linux.LCDType1 = ConfigSelection(choices = LCDType, default="11")
46 +config.plugins.LCD4linux.LCDType1 = ConfigSelection(choices = LCDType, default="10")
47  config.plugins.LCD4linux.LCDType2 = ConfigSelection(choices = [("00", _("off"))] + LCDType, default="00")
48  config.plugins.LCD4linux.LCDRotate1 = ConfigSelection(choices = [("0", _("0")), ("90", _("90")), ("180", _("180"))], default="0")
49  config.plugins.LCD4linux.LCDRotate2 = ConfigSelection(choices = [("0", _("0")), ("90", _("90")), ("180", _("180"))], default="0")
50 @@ -206,15 +213,6 @@
51  config.plugins.LCD4linux.WetterLCD = ConfigSelection(choices = LCDSelect, default="1")
52  config.plugins.LCD4linux.WetterPos = ConfigSlider(default = 50,  increment = 2, limits = (0, 600))
53  config.plugins.LCD4linux.WetterType = ConfigSelection(choices = [("1", _("4 Days small")), ("2", _("4 Days big")), ("3", _("Current big")), ("4", _("Current full"))], default="1")
54 -config.plugins.LCD4linux.OSCAM = ConfigSelection(choices = ScreenSelect, default="0")
55 -config.plugins.LCD4linux.OSCAMLCD = ConfigSelection(choices = LCDSelect, default="1")
56 -config.plugins.LCD4linux.OSCAMFile = ConfigText(default="/tmp/.oscam/oscam.lcd", fixed_size=False)
57 -config.plugins.LCD4linux.OSCAMSize = ConfigSlider(default = 10,  increment = 1, limits = (9, 20))
58 -config.plugins.LCD4linux.OSCAMPos = ConfigSlider(default = 20,  increment = 2, limits = (0, 600))
59 -config.plugins.LCD4linux.OSCAMAlign = ConfigSelection(choices = [("0", _("left")), ("2", _("right"))], default="0")
60 -config.plugins.LCD4linux.OSCAMSplit = ConfigYesNo(default = False)
61 -config.plugins.LCD4linux.OSCAMColor = ConfigSelection(choices = Farbe, default="white")
62 -config.plugins.LCD4linux.OSCAMBackColor = ConfigSelection(choices = [("0", _("off"))] + Farbe, default="black")
63  config.plugins.LCD4linux.WetterCity = ConfigText(default="Berlin", fixed_size=False)
64  config.plugins.LCD4linux.Text = ConfigSelection(choices = ScreenSelect, default="0")
65  config.plugins.LCD4linux.TextLCD = ConfigSelection(choices = LCDSelect, default="1")
66 @@ -278,9 +276,9 @@
67  config.plugins.LCD4linux.MPClockAlign = ConfigSelection(choices = [("0", _("left")), ("1", _("center")), ("2", _("right"))], default="1")
68  config.plugins.LCD4linux.MPClockSplit = ConfigYesNo(default = False)
69  config.plugins.LCD4linux.MPClockColor = ConfigSelection(choices = Farbe, default="white")
70 -config.plugins.LCD4linux.Standby = ConfigSelection(choices = [("0", _("off")), ("1", _("on"))], default="1")
71 +config.plugins.LCD4linux.Standby = ConfigSelection(choices = [("0", _("off")), ("1", _("on"))], default="0")
72  config.plugins.LCD4linux.StandbyScreenMax = ConfigSelection(choices = [("1", _("Screen 1")), ("2", _("Screen 1-2")), ("3", _("Screen 1-3"))], default="1")
73 -config.plugins.LCD4linux.StandbyHelligkeit = ConfigSlider(default = 1,  limits = (0, 7))
74 +config.plugins.LCD4linux.StandbyHelligkeit = ConfigSlider(default = 3,  limits = (0, 25))
75  config.plugins.LCD4linux.StandbyLCDoff = ConfigClock(default = ((5 * 60 + 0) * 60) )
76  config.plugins.LCD4linux.StandbyLCDon = ConfigClock(default = ((5 * 60 + 0) * 60) )
77  config.plugins.LCD4linux.StandbyClock = ConfigSelection(choices = ScreenSelect, default="1")
78 @@ -300,14 +298,6 @@
79  config.plugins.LCD4linux.StandbyWetterLCD = ConfigSelection(choices = LCDSelect, default="1")
80  config.plugins.LCD4linux.StandbyWetterPos = ConfigSlider(default = 50,  increment = 2, limits = (0, 600))
81  config.plugins.LCD4linux.StandbyWetterType = ConfigSelection(choices = [("1", _("4 Days small")), ("2", _("4 Days big")), ("3", _("Current big")), ("4", _("Current full"))], default="1")
82 -config.plugins.LCD4linux.StandbyOSCAM = ConfigSelection(choices = ScreenSelect, default="0")
83 -config.plugins.LCD4linux.StandbyOSCAMLCD = ConfigSelection(choices = LCDSelect, default="1")
84 -config.plugins.LCD4linux.StandbyOSCAMSize = ConfigSlider(default = 10,  increment = 1, limits = (9, 20))
85 -config.plugins.LCD4linux.StandbyOSCAMPos = ConfigSlider(default = 20,  increment = 2, limits = (0, 600))
86 -config.plugins.LCD4linux.StandbyOSCAMAlign = ConfigSelection(choices = [("0", _("left")), ("2", _("right"))], default="0")
87 -config.plugins.LCD4linux.StandbyOSCAMSplit = ConfigYesNo(default = False)
88 -config.plugins.LCD4linux.StandbyOSCAMColor = ConfigSelection(choices = Farbe, default="white")
89 -config.plugins.LCD4linux.StandbyOSCAMBackColor = ConfigSelection(choices = [("0", _("off"))] + Farbe, default="black")
90  config.plugins.LCD4linux.StandbyText = ConfigSelection(choices = ScreenSelect, default="0")
91  config.plugins.LCD4linux.StandbyTextLCD = ConfigSelection(choices = LCDSelect, default="1")
92  config.plugins.LCD4linux.StandbyTextFile = ConfigText(default="/tmp/lcd4linux.txt", fixed_size=False)
93 @@ -421,9 +411,12 @@
94                 return ""
95  
96  def writeHelligkeit(hell):
97 -       f = open(PICbright, "w")
98 -       f.write(str(hell) + "\r\n")
99 -       f.close()
100 +       hell = int(hell) * 10
101 +       if hell >= 250:
102 +               hell = 255
103 +       led_fd = open("/dev/lcd2",'w')
104 +       ioctl(led_fd, 0x10, hell)
105 +       led_fd.close()
106         
107  def getBilder():
108         global Bilder
109 @@ -754,16 +747,6 @@
110                                 self.list2.append(getConfigListEntry(_("- which LCD"), config.plugins.LCD4linux.WetterLCD))
111                                 self.list2.append(getConfigListEntry(_("- Position"), config.plugins.LCD4linux.WetterPos))
112                                 self.list2.append(getConfigListEntry(_("- Weather Type"), config.plugins.LCD4linux.WetterType))
113 -                       self.list2.append(getConfigListEntry(_("Show oscam.lcd"), config.plugins.LCD4linux.OSCAM))
114 -                       if config.plugins.LCD4linux.OSCAM.value != "0":
115 -                               self.list2.append(getConfigListEntry(_("- which LCD"), config.plugins.LCD4linux.OSCAMLCD))
116 -                               self.list2.append(getConfigListEntry(_("- File"), config.plugins.LCD4linux.OSCAMFile))
117 -                               self.list2.append(getConfigListEntry(_("- Font Size"), config.plugins.LCD4linux.OSCAMSize))
118 -                               self.list2.append(getConfigListEntry(_("- Position"), config.plugins.LCD4linux.OSCAMPos))
119 -                               self.list2.append(getConfigListEntry(_("- Alignment"), config.plugins.LCD4linux.OSCAMAlign))
120 -                               self.list2.append(getConfigListEntry(_("- Split Screen"), config.plugins.LCD4linux.OSCAMSplit))
121 -                               self.list2.append(getConfigListEntry(_("- Color"), config.plugins.LCD4linux.OSCAMColor))
122 -                               self.list2.append(getConfigListEntry(_("- Background Color"), config.plugins.LCD4linux.OSCAMBackColor))
123                         self.list2.append(getConfigListEntry(_("Show Textfile") , config.plugins.LCD4linux.Text))
124                         if config.plugins.LCD4linux.Text.value != "0":
125                                 self.list2.append(getConfigListEntry(_("- which LCD"), config.plugins.LCD4linux.TextLCD))
126 @@ -870,15 +853,6 @@
127                                 self.list4.append(getConfigListEntry(_("- which LCD"), config.plugins.LCD4linux.StandbyWetterLCD))
128                                 self.list4.append(getConfigListEntry(_("- Position"), config.plugins.LCD4linux.StandbyWetterPos))
129                                 self.list4.append(getConfigListEntry(_("- Weather Type"), config.plugins.LCD4linux.StandbyWetterType))
130 -                       self.list4.append(getConfigListEntry(_("Standby - Show oscam.lcd"), config.plugins.LCD4linux.StandbyOSCAM))
131 -                       if config.plugins.LCD4linux.StandbyOSCAM.value != "0":
132 -                               self.list4.append(getConfigListEntry(_("- which LCD"), config.plugins.LCD4linux.StandbyOSCAMLCD))
133 -                               self.list4.append(getConfigListEntry(_("- Font Size"), config.plugins.LCD4linux.StandbyOSCAMSize))
134 -                               self.list4.append(getConfigListEntry(_("- Position"), config.plugins.LCD4linux.StandbyOSCAMPos))
135 -                               self.list4.append(getConfigListEntry(_("- Alignment"), config.plugins.LCD4linux.StandbyOSCAMAlign))
136 -                               self.list4.append(getConfigListEntry(_("- Split Screen"), config.plugins.LCD4linux.StandbyOSCAMSplit))
137 -                               self.list4.append(getConfigListEntry(_("- Color"), config.plugins.LCD4linux.StandbyOSCAMColor))
138 -                               self.list4.append(getConfigListEntry(_("- Background Color"), config.plugins.LCD4linux.StandbyOSCAMBackColor))
139                         self.list4.append(getConfigListEntry(_("Standby - Show Textfile"), config.plugins.LCD4linux.StandbyText))
140                         if config.plugins.LCD4linux.StandbyText.value != "0":
141                                 self.list4.append(getConfigListEntry(_("- which LCD"), config.plugins.LCD4linux.StandbyTextLCD))
142 @@ -1014,23 +988,24 @@
143                 return str(self["config"].getCurrent()[1].getText())
144  
145         def LCDrestart(self):
146 -               global SamsungDevice
147 -               global SamsungDevice2
148 -               DemonRestart()
149 -               SamsungDevice = None
150 -               SamsungDevice2 = None
151 -               getSamsungDevice()
152 +               pass
153 +#              global SamsungDevice
154 +#              global SamsungDevice2
155 +#              DemonRestart()
156 +#              SamsungDevice = None
157 +#              SamsungDevice2 = None
158 +#              getSamsungDevice()
159  
160         def save(self):
161                 global ConfigMode
162                 global ConfigStandby
163                 global isMediaPlayer
164                 getBilder()
165 -               if config.plugins.LCD4linux.Refresh.isChanged():
166 -                       f = open(DPFrefreshrate, "w")
167 -                       f.write(str(config.plugins.LCD4linux.Refresh.value * 1000) + "\r\n")
168 -                       f.close()
169 -                       self.LCDrestart()
170 +#              if config.plugins.LCD4linux.Refresh.isChanged():
171 +#                      f = open(DPFrefreshrate, "w")
172 +#                      f.write(str(config.plugins.LCD4linux.Refresh.value * 1000) + "\r\n")
173 +#                      f.close()
174 +#                      self.LCDrestart()
175  
176                 self["config"].setList(self.list1)
177                 for x in self["config"].list:
178 @@ -1101,6 +1076,7 @@
179                 self.KeyTime = 0
180                 self.StandbyChanged = False
181                 self.DataMinute = ""
182 +               self.WetterCheckMin = ""
183                 self.ref = ""
184  
185                 self.StatusTimer = eTimer()
186 @@ -1131,16 +1107,17 @@
187                 self.timerlist = ""
188                 self.pluginlist = ""
189  
190 +               self.pngutilconnect = pngutil.connect()
191 +
192  #####          self.onShow.append(self.ServiceChange)
193  #              config.misc.standbyCounter.addNotifier(self.restartTimer(self), initial_call = False)
194                 getBilder()
195                 self.StatusTimer.startLongTimer(5)
196 -               self.Demon()
197 -               self.SamsungStart()
198 +#              self.Demon()
199 +#              self.SamsungStart()
200                 
201         def updateStatus(self):
202                 print "[LCD4linux] update"
203 -
204  #              global DataMinute
205  #              global ScreenActive
206                 global BilderTime
207 @@ -1200,20 +1177,25 @@
208  #              print BilderTime, OSDon,self.StandbyChanged,Standby.inStandby
209                 if strftime("%M")!=self.DataMinute or BilderTime == 1 or self.StandbyChanged != Standby.inStandby or ConfigMode or (ScreenActive != SaveScreenActive) or isVideoPlaying > 2 or OSDon == 3:
210                         print "[LCD4linux] Data-Build"
211 -                       if config.plugins.LCD4linux.LCDType1.value[0] == "1" or config.plugins.LCD4linux.LCDType2.value[0] == "1":
212 -                               if strftime("%M")!=self.DataMinute:
213 -                                       if DemonCheck():
214 -                                               self.Demon()
215 -                                       if SamsungCheck():
216 -                                               self.SamsungStart()
217 +#                      if config.plugins.LCD4linux.LCDType1.value[0] == "1" or config.plugins.LCD4linux.LCDType2.value[0] == "1":
218 +#                              if strftime("%M")!=self.DataMinute:
219 +#                                      if DemonCheck():
220 +#                                              self.Demon()
221 +#                                      if SamsungCheck():
222 +#                                              self.SamsungStart()
223                         self.DataMinute = strftime("%M")
224                         self.StandbyChanged = Standby.inStandby 
225                         self.restartTimer()
226                         if config.plugins.LCD4linux.StandbyWetter.value != "0" or config.plugins.LCD4linux.Wetter.value != "0":
227 -                               if strftime("%M") == "15" or strftime("%M") == "45" or wwwWetter.find("forecast_information") < 1:
228 -                                       self.downloadWetter()
229 +                               if strftime("%M") != self.WetterCheckMin:
230 +                                       self.WetterCheckMin = strftime("%M")
231 +                                       if strftime("%M") == "15" or strftime("%M") == "45" or wwwWetter.find("forecast_information") < 1:
232 +                                               self.downloadWetter()
233                 if ConfigMode == True:
234 -                       self.StatusTimer.startLongTimer(2)
235 +                       if config.plugins.LCD4linux.Bild.value.find(ScreenActive) >= 0:
236 +                               self.StatusTimer.startLongTimer(5)
237 +                       else:
238 +                               self.StatusTimer.startLongTimer(2)
239                 else:
240                         self.StatusTimer.startLongTimer(5)
241  
242 @@ -1377,15 +1359,43 @@
243                                         ScreenActive = "1"
244                 ScreenTime += 1
245  
246 +       def cannotConnect(self, port = 80, url = "74.125.71.94", timeout = 5):
247 +               try:
248 +                       sock = socket.create_connection((url, port), timeout)
249 +#                      print "Can be connected to [%s:%d]."%(url,port)
250 +               except Exception, ErrMsg:
251 +                       print "Can't be connected to [%s:%d]. (%s)"%(url, port, ErrMsg)
252 +                       print "    >> Cause: ",ErrMsg
253 +                       return True
254 +               else:
255 +#                      print "    >> sock close, sock : ",sock
256 +                       if sock is not None:
257 +                               print "socket close : ",sock.close()
258 +               return False
259 +
260         def downloadWetter(self):
261 +               global WetterThreadRunning
262 +               if WetterThreadRunning > 0:
263 +                       print "[LCD4linux] downloadWetter already running"
264 +                       return
265 +               WetterThreadRunning += 1
266 +               t = Thread(target=self.downloadWetterThread)
267 +               t.start()
268 +
269 +       def downloadWetterThread(self):
270 +               if self.cannotConnect(80, "74.125.71.94", 1): # www.google.de
271 +                       self.downloadWetterThreadEnd()
272 +                       return
273                 print "[LCD4linux] Wetterdownloadstart"
274                 self.feedurl = "http://www.google.com/ig/api?weather=%s&oe=utf-8&hl=%s" % (config.plugins.LCD4linux.WetterCity.value,language.getLanguage()[:2])
275  #              self.feedurl = "http://www.google.com/ig/api?weather=%s&oe=utf-8&hl=%s" % (config.plugins.LCD4linux.WetterCity.value,"de")
276                 getPage(self.feedurl).addCallback(self.downloadListCallback).addErrback(self.downloadListError)
277 +               self.downloadWetterThreadEnd()
278  
279         def downloadListError(self, error=""):
280                 print str(error)
281  #              self.session.open(MessageBox, "Error downloading Feed:\n%s" % str(error), type=MessageBox.TYPE_ERROR)
282 +               self.downloadWetterThreadEnd()
283  
284         def downloadListCallback(self, page=""):
285                 global wwwWetter
286 @@ -1394,6 +1404,13 @@
287                 wwwWetter=codecs.decode(wwwWetter, 'UTF-8')
288                 if os.path.isfile(PICwetter):
289                         os.system("rm -f %s" % PICwetter)
290 +#              print " >> downloadListCallback updated.."
291 +               self.downloadWetterThreadEnd()
292 +               self.restartTimer()
293 +
294 +       def downloadWetterThreadEnd(self):
295 +               global WetterThreadRunning
296 +               WetterThreadRunning = 0
297  
298  def LCD4linuxPICThread(self,session):
299         global ThreadRunning
300 @@ -1465,7 +1482,9 @@
301         return event_begin, event_end, duration, event_name
302  
303  def getResolution(t):
304 -       if t[1] == "1":
305 +       if t[1] == "0":
306 +               MAX_W,MAX_H = 400,240
307 +       elif t[1] == "1":
308                 MAX_W,MAX_H = 320,240
309         elif t[1] == "2":
310                 MAX_W,MAX_H = 240,320
311 @@ -1533,6 +1552,9 @@
312  # Google Wetter
313         def putWetter(ConfigPos, ConfigType, draw, im):
314                 global WetterType
315 +               global WetterThreadRunning
316 +               if WetterThreadRunning:
317 +                       return
318                 if os.path.isfile(PICwetter) and ConfigType == WetterType:
319                         pil_image = Image.open(PICwetter)
320                         im.paste(pil_image,(0,ConfigPos))
321 @@ -1977,51 +1999,6 @@
322                 lx = getSplit(ConfigSplit,ConfigAlign,MAX_W,w)
323                 draw.text((lx, ConfigPos), i, font=font, fill=ConfigColor)
324  
325 -# show OSCAM
326 -       def putOSCAM(ConfigPos, ConfigSize, ConfigColor, ConfigBackColor, ConfigAlign, ConfigSplit, draw, im):
327 -               MAX_W,MAX_H = im.size
328 -               OSCAMrunning = False
329 -               if ConfigSplit == True:
330 -                       MAX_W = int(MAX_W/2)
331 -               POSX = getSplit(ConfigSplit,ConfigAlign,MAX_W,MAX_W)
332 -               if os.path.isfile(config.plugins.LCD4linux.OSCAMFile.value):
333 -                       current_h=ConfigPos
334 -                       if time()-os.path.getmtime(config.plugins.LCD4linux.OSCAMFile.value) < 30:
335 -                               OSCAMrunning = True
336 -                               font = ImageFont.truetype(FONT, ConfigSize, encoding='unic')
337 -                               p=[160,12.8,3.2,2,1.78,1.6,1.45,1.33]
338 -
339 -                               f = open(config.plugins.LCD4linux.OSCAMFile.value,"r")
340 -                               for line in f.readlines():
341 -                                       line = line.replace('\xc2\x86', '').replace('\xc2\x87', '').replace('\n','').decode("utf-8", "ignore").encode("utf-8") or ""
342 -                                       line = codecs.decode(line, 'UTF-8')
343 -                                       w,h = draw.textsize(line, font=font)
344 -                                       if ConfigBackColor !="0":
345 -                                               if line.find(" Label ") > 0:
346 -                                                       draw.rectangle((POSX, current_h, POSX+MAX_W, current_h+h),fill=ConfigColor)
347 -                                               else:
348 -                                                       draw.rectangle((POSX, current_h, POSX+MAX_W, current_h+h),fill=ConfigBackColor)
349 -                                       if line.find("|") >0:
350 -                                               ll = line.split("|")
351 -                                               if len(ll)==4:
352 -                                                       p=[160,10.67,2.91,1.14,1.03]
353 -                                               elif len(ll)==5:
354 -                                                       p=[160,10.67,2.91,1.78,1.14,1.03]
355 -                                               else:   
356 -                                                       p=[160,10.67,2.91,1.78,1.6,1.45,1.33,1.14,1.03]
357 -                                               for x in range(len(ll)):
358 -                                                       if line.find(" Label ") > 0:
359 -                                                               draw.text((POSX+int(MAX_W/p[x]), current_h), ll[x].strip(), font=font, fill=ConfigBackColor)
360 -                                                       else:
361 -                                                               draw.text((POSX+int(MAX_W/p[x]), current_h), ll[x].strip(), font=font, fill=ConfigColor)
362 -                                               current_h+=h
363 -                               f.close()
364 -               if OSCAMrunning == False:
365 -                       font = ImageFont.truetype(FONT, ConfigSize+13, encoding='unic')
366 -                       w,h = draw.textsize(codecs.decode(_("OSCAM not running"), 'UTF-8'), font=font)
367 -                       draw.rectangle((POSX, ConfigPos, POSX+MAX_W, ConfigPos+h),fill=ConfigBackColor)
368 -                       draw.text((POSX+(MAX_W-w)/2, ConfigPos), codecs.decode(_("OSCAM not running"), 'UTF-8'), font=font, fill=ConfigColor)
369 -
370  # show Title
371         def putTitle(ConfigPos, ConfigSize, ConfigLines, ConfigColor, ConfigAlign, ConfigSplit, draw, im):
372                 MAX_W,MAX_H = im.size
373 @@ -2157,12 +2134,6 @@
374                                         putBild(config.plugins.LCD4linux.StandbyBildPos.value, config.plugins.LCD4linux.StandbyBildSize.value, config.plugins.LCD4linux.StandbyBildAlign.value, ShowPicture, im)
375                                 if config.plugins.LCD4linux.StandbyBildLCD.value.find("2") >= 0 and config.plugins.LCD4linux.LCDType2.value != "00":
376                                         putBild(config.plugins.LCD4linux.StandbyBildPos.value, config.plugins.LCD4linux.StandbyBildSize.value, config.plugins.LCD4linux.StandbyBildAlign.value, ShowPicture, im2)
377 -# show OSCAM
378 -                       if config.plugins.LCD4linux.StandbyOSCAM.value.find(ScreenActive) >= 0:
379 -                               if config.plugins.LCD4linux.StandbyOSCAMLCD.value.find("1") >= 0:
380 -                                       putOSCAM(config.plugins.LCD4linux.StandbyOSCAMPos.value, config.plugins.LCD4linux.StandbyOSCAMSize.value, config.plugins.LCD4linux.StandbyOSCAMColor.value, config.plugins.LCD4linux.StandbyOSCAMBackColor.value, config.plugins.LCD4linux.StandbyOSCAMAlign.value, config.plugins.LCD4linux.StandbyOSCAMSplit.value, draw, im)
381 -                               if config.plugins.LCD4linux.StandbyOSCAMLCD.value.find("2") >= 0 and config.plugins.LCD4linux.LCDType2.value != "00":
382 -                                       putOSCAM(config.plugins.LCD4linux.StandbyOSCAMPos.value, config.plugins.LCD4linux.StandbyOSCAMSize.value, config.plugins.LCD4linux.StandbyOSCAMColor.value, config.plugins.LCD4linux.StandbyOSCAMBackColor.value, config.plugins.LCD4linux.StandbyOSCAMAlign.value, config.plugins.LCD4linux.StandbyOSCAMSplit.value, draw2, im2)
383  # show Textfile
384                         if config.plugins.LCD4linux.StandbyText.value.find(ScreenActive) >= 0:
385                                 if config.plugins.LCD4linux.StandbyTextLCD.value.find("1") >= 0:
386 @@ -2324,12 +2295,6 @@
387                                 putBild(config.plugins.LCD4linux.BildPos.value, config.plugins.LCD4linux.BildSize.value, config.plugins.LCD4linux.BildAlign.value, ShowPicture, im)
388                         if config.plugins.LCD4linux.BildLCD.value.find("2") >= 0 and config.plugins.LCD4linux.LCDType2.value != "00":
389                                 putBild(config.plugins.LCD4linux.BildPos.value, config.plugins.LCD4linux.BildSize.value, config.plugins.LCD4linux.BildAlign.value, ShowPicture, im2)
390 -# show OSCAM
391 -               if config.plugins.LCD4linux.OSCAM.value.find(ScreenActive) >= 0:
392 -                       if config.plugins.LCD4linux.OSCAMLCD.value.find("1") >= 0:
393 -                               putOSCAM(config.plugins.LCD4linux.OSCAMPos.value, config.plugins.LCD4linux.OSCAMSize.value, config.plugins.LCD4linux.OSCAMColor.value, config.plugins.LCD4linux.OSCAMBackColor.value, config.plugins.LCD4linux.OSCAMAlign.value, config.plugins.LCD4linux.OSCAMSplit.value, draw, im)
394 -                       if config.plugins.LCD4linux.OSCAMLCD.value.find("2") >= 0 and config.plugins.LCD4linux.LCDType2.value != "00":
395 -                               putOSCAM(config.plugins.LCD4linux.OSCAMPos.value, config.plugins.LCD4linux.OSCAMSize.value, config.plugins.LCD4linux.OSCAMColor.value, config.plugins.LCD4linux.OSCAMBackColor.value, config.plugins.LCD4linux.OSCAMAlign.value, config.plugins.LCD4linux.OSCAMSplit.value, draw2, im2)
396  # show Textfile
397                 if config.plugins.LCD4linux.Text.value.find(ScreenActive) >= 0:
398                         if config.plugins.LCD4linux.TextLCD.value.find("1") >= 0:
399 @@ -2366,43 +2331,13 @@
400                 im.save(PICtmp+".png", "PNG")
401                 if os.path.isfile(PICtmp+".png"):
402                         os.rename(PICtmp+".png",PIC+".png")
403 -       else:
404 -               if SamsungDevice is not None:
405 -                       print "[LCD4linux] writing to Samsung Device"
406 -                       output = StringIO.StringIO()
407 -                       im.save(output, "JPEG")
408 -                       pic = output.getvalue()
409 -                       output.close()
410 -                       try:
411 -                               Photoframe.write_jpg2frame(SamsungDevice, pic)
412 -                       except:
413 -                               print "[LCD4linux] Samsung 1 write error"
414 -               im.save(PICtmp+".jpg", "JPEG")
415 -               if os.path.isfile(PICtmp+".jpg"):
416 -                       os.rename(PICtmp+".jpg",PIC+".jpg")
417 -       if config.plugins.LCD4linux.LCDType2.value != "00":
418 -               if config.plugins.LCD4linux.LCDRotate2.value != "0":
419 -                       im2=im2.rotate(int(config.plugins.LCD4linux.LCDRotate2.value))
420 -               if config.plugins.LCD4linux.LCDType2.value[0] == "1":
421 -                       im2.save(PIC2tmp+".png", "PNG")
422 -                       if os.path.isfile(PIC2tmp+".png"):
423 -                               os.rename(PIC2tmp+".png",PIC2+".png")
424 -               else:
425 -                       if SamsungDevice2 is not None:
426 -                               print "[LCD4linux] writing to Samsung2 Device"
427 -                               output = StringIO.StringIO()
428 -                               im2.save(output, "JPEG")
429 -                               pic = output.getvalue()
430 -                               output.close()
431 -                               try:
432 -                                       Photoframe.write_jpg2frame(SamsungDevice2, pic)       
433 -                               except:
434 -                                       print "[LCD4linux] Samsung 2 write error"
435 -                       im2.save(PIC2tmp+".jpg", "JPEG")
436 -                       if os.path.isfile(PIC2tmp+".jpg"):
437 -                               os.rename(PIC2tmp+".jpg",PIC2+".jpg")
438 +       if self.pngutilconnect == 0:
439 +               print "[LCD4linux] RunTime:", time() - tt
440 +               return
441 +       pngutiltime = time()
442 +       pngutil.send(PIC+".png")
443 +       print "[LCD4linux] time(write to lcd) : ",time()-pngutiltime
444         print "[LCD4linux] RunTime:", time() - tt
445 -        
446         return
447         
448  def main(session,**kwargs):