source: titan/plugins/lcdsamsung/lcdsamsung.c @ 41802

Last change on this file since 41802 was 41802, checked in by gost, 3 years ago

fix

  • Property svn:executable set to *
File size: 43.5 KB
Line 
1#include "../../titan/struct.h"
2#include "../../titan/debug.h"
3#include "../../titan/header.h"
4
5#include "lcd_weather.h"
6
7char pluginname[] = "LCD Samsung SPF..";
8char plugindesc[] = "Extensions";
9char pluginpic[] = "%pluginpath%/lcdsamsung/lcdsamsung.png";
10
11int pluginaktiv = 0;
12//int pluginversion = PLUGINVERSION;
13int pluginversion = 999999;
14
15struct stimerthread* LCD_Samsung1thread = NULL;
16
17int firststart = 0;
18
19void weather_getline(FILE* fd, char* fileline)
20{
21        fgets(fileline, 256, fd);
22        if(fileline[0] == '#' || fileline[0] == '\n')
23                return;
24        if(fileline[strlen(fileline) - 1] == '\n')
25                fileline[strlen(fileline) - 1] = '\0';
26        if(fileline[strlen(fileline) - 1] == '\r')
27                fileline[strlen(fileline) - 1] = '\0';
28}
29
30void LCD_start_lcd4linux()
31{
32        int count = 0;
33        char* startlcd = NULL;
34       
35        if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf75h") == 0)
36        {
37                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
38                startlcd = ostrcat(startlcd, " 1", 1, 0);
39        }
40        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf83h") == 0)
41        {
42                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
43                startlcd = ostrcat(startlcd, " 6", 1, 0);
44        }
45        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87hold") == 0)
46        {
47                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
48                startlcd = ostrcat(startlcd, " 3", 1, 0);
49        }
50        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87h") == 0)
51        {
52                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
53                startlcd = ostrcat(startlcd, " 2", 1, 0);
54        }
55        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf105p") == 0)
56        {
57                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
58                startlcd = ostrcat(startlcd, " 5", 1, 0);
59        }
60        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf107h") == 0)
61        {
62                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
63                startlcd = ostrcat(startlcd, " 4", 1, 0);
64        }
65        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf72h") == 0)
66        {
67                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
68                startlcd = ostrcat(startlcd, " 7", 1, 0);
69        }
70        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85h") == 0)
71        {
72                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
73                startlcd = ostrcat(startlcd, " 8", 1, 0);
74        }
75        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85p") == 0)
76        {
77                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
78                startlcd = ostrcat(startlcd, " 9", 1, 0);
79        }
80        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "none") == 0)
81        {
82                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
83                startlcd = ostrcat(startlcd, " 99", 1, 0);
84        }
85        else
86        {
87                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
88                startlcd = ostrcat(startlcd, " 2", 1, 0);
89        }
90       
91       
92        if(LCD_Samsung1thread == NULL)
93                return;
94        while (LCD_Samsung1thread->aktion != STOP && system("ps | grep -v grep | grep fbread") != 0) {
95                system(startlcd);
96                sleep(6);
97                count ++;
98                if(LCD_Samsung1thread == NULL)
99                        break;
100                if(count == 101) {
101                        textbox(_("Message"), _("ERROR cant start LCD driver"), _("OK"), getrcconfigint("rcok", NULL), NULL, 0, NULL, 0, NULL, 0, 600, 200, 5, 0);
102                        LCD_Samsung1thread->aktion = STOP;
103                }
104        }
105        free(startlcd);startlcd=NULL;   
106}
107
108void LCD_Samsung1_thread()
109{
110       
111        struct skin* LCD_Samsung1 = NULL;
112        struct skin* LCD_Standby = NULL;
113        struct skin* LCD_Play = NULL;
114        struct skin* LCD_Music = NULL;
115       
116       
117        struct skin* city = NULL;
118        struct skin* wind = NULL;
119        struct skin* luft = NULL;
120        struct skin* day0_t = NULL;
121        struct skin* day0_tm = NULL;
122        struct skin* day0_i = NULL;
123        struct skin* day0_d = NULL;
124        struct skin* day0_dl = NULL;
125        struct skin* day1_t = NULL;
126        struct skin* day1_tm = NULL;
127        struct skin* day1_i = NULL;
128        struct skin* day1_d = NULL;
129        struct skin* day1_dl = NULL;
130        struct skin* day2_t = NULL;
131        struct skin* day2_tm = NULL;
132        struct skin* day2_i = NULL;
133        struct skin* day2_d = NULL;
134        struct skin* day2_dl = NULL;
135        struct skin* day3_t = NULL;
136        struct skin* day3_tm = NULL;
137        struct skin* day3_i = NULL;
138        struct skin* day3_d = NULL;
139        struct skin* day3_dl = NULL;
140        struct skin* akttime = NULL;
141        struct skin* akttime_Standby = NULL;
142       
143        struct skin* n_stunde = NULL;
144        struct skin* n_minute = NULL;
145        struct skin* n_stunde_standby = NULL;
146        struct skin* n_minute_standby = NULL;
147       
148        struct skin* n_stunde2 = NULL;
149        struct skin* n_minute2 = NULL;
150        struct skin* n_stunde2_standby = NULL;
151        struct skin* n_minute2_standby = NULL;
152       
153        struct skin* scity = NULL;
154        struct skin* swind = NULL;
155        struct skin* sluft = NULL;
156        struct skin* sday0_t = NULL;
157        struct skin* sday0_tm = NULL;
158        struct skin* sday0_i = NULL;
159        struct skin* sday0_d = NULL;
160        struct skin* sday0_dl = NULL;
161        struct skin* sday1_t = NULL;
162        struct skin* sday1_tm = NULL;
163        struct skin* sday1_i = NULL;
164        struct skin* sday1_d = NULL;
165        struct skin* sday1_dl = NULL;
166        struct skin* sday2_t = NULL;
167        struct skin* sday2_tm = NULL;
168        struct skin* sday2_i = NULL;
169        struct skin* sday2_d = NULL;
170        struct skin* sday2_dl = NULL;
171        struct skin* sday3_t = NULL;
172        struct skin* sday3_tm = NULL;
173        struct skin* sday3_i = NULL;
174        struct skin* sday3_d = NULL;
175        struct skin* sday3_dl = NULL;
176       
177        char* tmpstr = NULL, *tmpstr2 = NULL, *tmpstr3 = NULL, *timemerk = NULL, *sendermerk = NULL, *recmerk = NULL;
178        char* pichr = NULL, *picmin = NULL, *pichr_standby = NULL, *picmin_standby = NULL;
179        char* pichr2 = NULL, *picmin2 = NULL, *pichr2_standby = NULL, *picmin2_standby = NULL;
180        int digitaluhr = 0, digitaluhr_standby = 0;
181        FILE *fd = NULL;
182        char *fileline = NULL;
183        int weatherwrite = 999;
184        int weatherref = 0;
185        char* startlcd = NULL;
186        char* bild = NULL;
187       
188        printf("lcd_samsung thread started\n");
189       
190        if(ostrcmp(getconfig("lcd_samsung_plugin_wetter", NULL), "yes") == 0)
191        {
192                if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf75h") == 0)
193                        LCD_Samsung1 = getscreen("LCD_spf75_Wetter");
194                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87h") == 0)
195                        LCD_Samsung1 = getscreen("LCD_spf87_Wetter");
196                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf83h") == 0)
197                        LCD_Samsung1 = getscreen("LCD_spf83_Wetter");
198                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87hold") == 0)
199                        LCD_Samsung1 = getscreen("LCD_spf87_Wetter");
200                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf105p") == 0)
201                        LCD_Samsung1 = getscreen("LCD_spf105_Wetter");
202                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf107h") == 0)
203                        LCD_Samsung1 = getscreen("LCD_spf107_Wetter");
204                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf72h") == 0)
205                        LCD_Samsung1 = getscreen("LCD_spf72_Wetter");
206                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85h") == 0)
207                        LCD_Samsung1 = getscreen("LCD_spf85_Wetter");
208                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85p") == 0)
209                        LCD_Samsung1 = getscreen("LCD_spf85_Wetter");
210                else
211                        LCD_Samsung1 = getscreen("LCD_spf87_Wetter");
212                city = getscreennode(LCD_Samsung1, "city");
213                wind = getscreennode(LCD_Samsung1, "wind");
214                luft = getscreennode(LCD_Samsung1, "luft");
215                day0_t = getscreennode(LCD_Samsung1, "day0_t");
216                day0_tm = getscreennode(LCD_Samsung1, "day0_tm");
217                day0_i = getscreennode(LCD_Samsung1, "day0_i");
218                day0_d = getscreennode(LCD_Samsung1, "day0_d");
219                day0_dl = getscreennode(LCD_Samsung1, "day0_dl");
220                day1_t = getscreennode(LCD_Samsung1, "day1_t");
221                day1_tm = getscreennode(LCD_Samsung1, "day1_tm");
222                day1_i = getscreennode(LCD_Samsung1, "day1_i");
223                day1_d = getscreennode(LCD_Samsung1, "day1_d");
224                day1_dl = getscreennode(LCD_Samsung1, "day1_dl");
225                day2_t = getscreennode(LCD_Samsung1, "day2_t");
226                day2_tm = getscreennode(LCD_Samsung1, "day2_tm");
227                day2_i = getscreennode(LCD_Samsung1, "day2_i");
228                day2_d = getscreennode(LCD_Samsung1, "day2_d");
229                day2_dl = getscreennode(LCD_Samsung1, "day2_dl");
230                day3_t = getscreennode(LCD_Samsung1, "day3_t");
231                day3_tm = getscreennode(LCD_Samsung1, "day3_tm");
232                day3_i = getscreennode(LCD_Samsung1, "day3_i");
233                day3_d = getscreennode(LCD_Samsung1, "day3_d");
234                day3_dl = getscreennode(LCD_Samsung1, "day3_dl");
235                akttime = getscreennode(LCD_Samsung1, "akttime");
236                akttime = getscreennode(LCD_Samsung1, "akttime");
237                n_stunde =  getscreennode(LCD_Samsung1, "stunde");
238                if(n_stunde != NULL)
239                {
240                        pichr = ostrcat(n_stunde->pic, "", 0, 0);
241                        if(ostrstr(pichr, "Digital") != NULL)
242                                digitaluhr = 1;
243                }
244                n_minute =  getscreennode(LCD_Samsung1, "minute");
245                if(n_minute != NULL)
246                        picmin = ostrcat(n_minute->pic, "", 0, 0);
247                if(digitaluhr == 1)
248                {
249                        n_stunde2 =  getscreennode(LCD_Samsung1, "stunde2");
250                        n_minute2 =  getscreennode(LCD_Samsung1, "minute2");
251                        picmin2 = ostrcat(n_minute2->pic, "", 0, 0);
252                        pichr2 = ostrcat(n_stunde2->pic, "", 0, 0);
253                }
254                if(file_exist("/tmp/lcdweather"))
255                        system("rm /tmp/lcdweather");
256                weatherwrite = 0;
257        }
258        else {
259                if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf75h") == 0)
260                        LCD_Samsung1 = getscreen("LCD_spf75");
261                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf83h") == 0)
262                        LCD_Samsung1 = getscreen("LCD_spf83");
263                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87h") == 0)
264                        LCD_Samsung1 = getscreen("LCD_spf87");
265                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87hold") == 0)
266                        LCD_Samsung1 = getscreen("LCD_spf87");
267                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf105p") == 0)
268                        LCD_Samsung1 = getscreen("LCD_spf105");
269                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf107h") == 0)
270                        LCD_Samsung1 = getscreen("LCD_spf107");
271                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf72h") == 0)
272                        LCD_Samsung1 = getscreen("LCD_spf72");
273                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85h") == 0)
274                        LCD_Samsung1 = getscreen("LCD_spf85");
275                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85p") == 0)
276                        LCD_Samsung1 = getscreen("LCD_spf85");
277                else
278                        LCD_Samsung1 = getscreen("LCD_spf87"); 
279                akttime = getscreennode(LCD_Samsung1, "akttime");
280                n_stunde =  getscreennode(LCD_Samsung1, "stunde");
281                if(n_stunde != NULL)
282                {
283                        pichr = ostrcat(n_stunde->pic, "", 0, 0);
284                        if(ostrstr(pichr, "Digital") != NULL)
285                                digitaluhr = 1;
286                }
287                n_minute =  getscreennode(LCD_Samsung1, "minute");
288                if(n_minute != NULL)
289                        picmin = ostrcat(n_minute->pic, "", 0, 0);
290                if(digitaluhr == 1)
291                {
292                        n_stunde2 =  getscreennode(LCD_Samsung1, "stunde2");
293                        n_minute2 =  getscreennode(LCD_Samsung1, "minute2");
294                        picmin2 = ostrcat(n_minute2->pic, "", 0, 0);
295                        pichr2 = ostrcat(n_stunde2->pic, "", 0, 0);
296                }
297        }
298       
299        if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf75h") == 0)
300                LCD_Play = getscreen("LCD_spf75_Play");
301        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf83h") == 0)
302                LCD_Play = getscreen("LCD_spf83_Play");
303        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87h") == 0)
304                LCD_Play = getscreen("LCD_spf87_Play");
305        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87hold") == 0)
306                LCD_Play = getscreen("LCD_spf87_Play");
307        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf105p") == 0)
308                LCD_Play = getscreen("LCD_spf105_Play");
309        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf107h") == 0)
310                LCD_Play = getscreen("LCD_spf107_Play");
311        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf72h") == 0)
312                LCD_Play = getscreen("LCD_spf72_Play");
313        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85h") == 0)
314                LCD_Play = getscreen("LCD_spf85_Play");
315        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85p") == 0)
316                LCD_Play = getscreen("LCD_spf85_Play");
317        else
318                LCD_Play = getscreen("LCD_spf87_Play");
319        struct skin* akttimeplay = getscreennode(LCD_Play, "akttime");
320        struct skin* sprogress = getscreennode(LCD_Play, "progress");
321        struct skin* stitle = getscreennode(LCD_Play, "title1");
322        struct skin* spos = getscreennode(LCD_Play, "pos");
323        struct skin* slen = getscreennode(LCD_Play, "len");
324        struct skin* sreverse = getscreennode(LCD_Play, "reverse");
325       
326        if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf75h") == 0)
327                LCD_Music = getscreen("LCD_spf75_Music");
328        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf83h") == 0)
329                LCD_Music = getscreen("LCD_spf83_Music");
330        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87h") == 0)
331                LCD_Music = getscreen("LCD_spf87_Music");
332        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87hold") == 0)
333                LCD_Music = getscreen("LCD_spf87_Music");
334        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf105p") == 0)
335                LCD_Music = getscreen("LCD_spf105_Music");
336        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf107h") == 0)
337                LCD_Music = getscreen("LCD_spf107_Music");
338        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf72h") == 0)
339                LCD_Music = getscreen("LCD_spf72_Music");
340        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85h") == 0)
341                LCD_Music = getscreen("LCD_spf85_Music");
342        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85p") == 0)
343                LCD_Music = getscreen("LCD_spf85_Music");
344        else
345                LCD_Music = getscreen("LCD_spf87_Music");
346               
347        struct skin* mthumb = getscreennode(LCD_Music, "lthumb");
348        struct skin* mtitle = getscreennode(LCD_Music, "ltitle");
349        struct skin* malbum = getscreennode(LCD_Music, "lalbum");
350        struct skin* mactors = getscreennode(LCD_Music, "lactors");
351        struct skin* mrealname = getscreennode(LCD_Music, "lrealname");
352        struct skin* mgenre = getscreennode(LCD_Music, "lgenre");
353        struct skin* myear = getscreennode(LCD_Music, "lyear");
354        struct skin* makttimeplay = getscreennode(LCD_Music, "akttime");
355        struct skin* mprogress = getscreennode(LCD_Music, "progress");
356        struct skin* mtitle1 = getscreennode(LCD_Music, "title1");
357        struct skin* mpos = getscreennode(LCD_Music, "pos");
358        struct skin* mlen = getscreennode(LCD_Music, "len");
359        struct skin* mreverse = getscreennode(LCD_Music, "reverse");
360               
361        if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf75h") == 0)
362        {
363                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
364                startlcd = ostrcat(startlcd, " 1", 1, 0);
365        }
366        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf83h") == 0)
367        {
368                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
369                startlcd = ostrcat(startlcd, " 6", 1, 0);
370        }
371        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87hold") == 0)
372        {
373                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
374                startlcd = ostrcat(startlcd, " 3", 1, 0);
375        }
376        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87h") == 0)
377        {
378                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
379                startlcd = ostrcat(startlcd, " 2", 1, 0);
380        }
381        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf105p") == 0)
382        {
383                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
384                startlcd = ostrcat(startlcd, " 5", 1, 0);
385        }
386        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf107h") == 0)
387        {
388                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
389                startlcd = ostrcat(startlcd, " 4", 1, 0);
390        }
391        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf72h") == 0)
392        {
393                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
394                startlcd = ostrcat(startlcd, " 7", 1, 0);
395        }
396        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85h") == 0)
397        {
398                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
399                startlcd = ostrcat(startlcd, " 8", 1, 0);
400        }
401        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85p") == 0)
402        {
403                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
404                startlcd = ostrcat(startlcd, " 9", 1, 0);
405        }
406        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "none") == 0)
407        {
408                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
409                startlcd = ostrcat(startlcd, " 99", 1, 0);
410        }
411        else
412        {
413                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
414                startlcd = ostrcat(startlcd, " 2", 1, 0);
415        }
416       
417       
418        if(ostrcmp(getconfig("lcd_samsung_plugin_standby", NULL), "yes") == 0) 
419        {
420                if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf75h") == 0)
421                        LCD_Standby = getscreen("LCD_spf75_Standby");
422                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf83h") == 0)
423                        LCD_Standby = getscreen("LCD_spf83_Standby");
424                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87h") == 0)
425                        LCD_Standby = getscreen("LCD_spf87_Standby");
426                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87hold") == 0)
427                        LCD_Standby = getscreen("LCD_spf87_Standby");
428                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf105p") == 0)
429                        LCD_Standby = getscreen("LCD_spf105_Standby");
430                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf107h") == 0)
431                        LCD_Standby = getscreen("LCD_spf107_Standby");
432                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf72h") == 0)
433                        LCD_Standby = getscreen("LCD_spf72_Standby");
434                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85h") == 0)
435                        LCD_Standby = getscreen("LCD_spf85_Standby");
436                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85p") == 0)
437                        LCD_Standby = getscreen("LCD_spf85_Standby");
438                else
439                        LCD_Standby = getscreen("LCD_spf87_Standby");
440                akttime_Standby = getscreennode(LCD_Standby, "akttime"); 
441                scity = getscreennode(LCD_Standby, "city");
442                swind = getscreennode(LCD_Standby, "wind");
443                sluft = getscreennode(LCD_Standby, "luft");
444                sday0_t = getscreennode(LCD_Standby, "day0_t");
445                sday0_tm = getscreennode(LCD_Standby, "day0_tm");
446                sday0_i = getscreennode(LCD_Standby, "day0_i");
447                sday0_d = getscreennode(LCD_Standby, "day0_d");
448                sday0_dl = getscreennode(LCD_Standby, "day0_dl");
449                sday1_t = getscreennode(LCD_Standby, "day1_t");
450                sday1_tm = getscreennode(LCD_Standby, "day1_tm");
451                sday1_i = getscreennode(LCD_Standby, "day1_i");
452                sday1_d = getscreennode(LCD_Standby, "day1_d");
453                sday1_dl = getscreennode(LCD_Standby, "day1_dl");
454                sday2_t = getscreennode(LCD_Standby, "day2_t");
455                sday2_tm = getscreennode(LCD_Standby, "day2_tm");
456                sday2_i = getscreennode(LCD_Standby, "day2_i");
457                sday2_d = getscreennode(LCD_Standby, "day2_d");
458                sday2_dl = getscreennode(LCD_Standby, "day2_dl");
459                sday3_t = getscreennode(LCD_Standby, "day3_t");
460                sday3_tm = getscreennode(LCD_Standby, "day3_tm");
461                sday3_i = getscreennode(LCD_Standby, "day3_i");
462                sday3_d = getscreennode(LCD_Standby, "day3_d");
463                sday3_dl = getscreennode(LCD_Standby, "day3_dl");
464               
465                n_stunde_standby =  getscreennode(LCD_Standby, "stunde");
466                if(n_stunde_standby != NULL)
467                {
468                        pichr_standby = ostrcat(n_stunde_standby->pic, "", 0, 0);
469                        if(ostrstr(pichr_standby, "Digital") != NULL)
470                                digitaluhr_standby = 1;
471                }
472                n_minute_standby =  getscreennode(LCD_Standby, "minute");
473                if(n_minute_standby != NULL)
474                        picmin_standby = ostrcat(n_minute_standby->pic, "", 0, 0);
475                if(digitaluhr_standby == 1)
476                {
477                        n_stunde2_standby =  getscreennode(LCD_Standby, "stunde2");
478                        n_minute2_standby =  getscreennode(LCD_Standby, "minute2");
479                        picmin2_standby = ostrcat(n_minute2_standby->pic, "", 0, 0);
480                        pichr2_standby = ostrcat(n_stunde2_standby->pic, "", 0, 0);
481                }
482        } 
483       
484       
485        int put = 0, typemerk = 0, type = 0;
486        int standby = 0;
487       
488        unsigned long long int pos = 0, len = 0, reverse = 0;
489        int playertype = 0;
490        int loopcount = 0;
491       
492        int hr = 0, min = 0;
493       
494        if(firststart == 1)
495                sleep(8);
496        firststart = 0;
497        status.write_png = 0;
498        //if(ostrcmp(getconfig("write_fb_to_jpg", NULL), "yes") == 0)
499        //      status.write_png = 1;
500       
501        while (LCD_Samsung1thread->aktion != STOP) {
502
503                tmpstr = gettime(NULL, "%H:%M");
504                hr = atoi(gettime(NULL, "%H"));
505                min = atoi(gettime(NULL, "%M"));
506               
507                // TV Programm läuft
508                if(status.infobaraktiv == 1)
509                {
510                        if(ostrcmp(getconfig("write_fb_to_jpg", NULL), "yes") == 0) {
511                                //status.write_png = 1;
512                                if(type == 999)
513                                        system("killall -3 fbread");
514                        }
515                        tmpstr2 = getaktchannelname(NULL);
516                        tmpstr3 = getrec(NULL, NULL);
517                        type = 1;
518                }
519                // Musik wird abgespielt
520                else if((status.playspeed != 0 || status.play != 0 || status.pause != 0) && musicdat.act == 1 && LCD_Music != NULL)
521                {
522                        if(type == 999)
523                                system("killall -3 fbread");
524                        //status.write_png = 0;
525                        loopcount++ ;
526                        type = 3;
527                }
528                // Aufzeichnung wird abgespielt
529                else if(status.playspeed != 0 || status.play != 0 || status.pause != 0)
530                {
531                        if(type == 999)
532                                system("killall -3 fbread");
533                        //status.write_png = 0;
534                        loopcount++ ;
535                        type = 2;
536                }
537                // Sonstige Anzeigen
538                else if(type != 999)
539                {
540                        if(ostrcmp(getconfig("write_fb_to_jpg", NULL), "yes") == 0) {
541                                //status.write_png = 1;
542                                system("killall -1 fbread");
543                        }
544                        type = 999;
545                }
546                else
547                        type = 999;
548               
549                if(typemerk != type)
550                {
551                        put = 1;
552                        typemerk = type;
553                        free(sendermerk);sendermerk=NULL;
554                        free(recmerk);recmerk=NULL;
555                        loopcount = 0;
556                }
557                else
558                        put = 0;
559
560                if(status.standby > 0 && standby == 0)
561                {
562                        if(ostrcmp(getconfig("lcd_samsung_plugin_standby", NULL), "yes") == 0)
563                                standby = 2;
564                        else
565                        {
566                                tmpstr = createpluginpath("/lcdsamsung/standby.jpg", 0);
567                                tmpstr = ostrcat("cp ", tmpstr, 0, 1);
568                                tmpstr = ostrcat(tmpstr, " /tmp/titanlcd.png", 1, 0);
569                                system(tmpstr);
570                                free(tmpstr); tmpstr=NULL;
571                                sleep(3);
572                               
573                                tmpstr = createpluginpath("/lcdsamsung/black.jpg", 0);
574                                tmpstr = ostrcat("cp ", tmpstr, 0, 1);
575                                tmpstr = ostrcat(tmpstr, " /tmp/titanlcd.png", 1, 0);
576                                system(tmpstr);
577                                sleep(2);
578                                system("killall fbread");
579                                standby = 1;
580                        }
581                }
582                if(status.standby == 0 && standby > 0)
583                {
584                        if(standby == 1)
585                                system(startlcd);
586                        standby = 0;
587                        put = 1;
588                }
589       
590                if(weatherthread == NULL && weatherwrite == 0) 
591                { 
592                        if(file_exist("/tmp/lcdweather")) 
593                                put = 1; 
594                }                       
595                if(ostrcmp(tmpstr, timemerk) != 0)
596                {
597                        free(timemerk);timemerk=NULL;
598                        timemerk = ostrcat(tmpstr, "", 0, 0);
599                        put = 1;
600                } 
601
602                if(standby == 0 || standby == 2 )
603                {
604                        if(type == 1 && standby == 0)
605                        {
606                                if(ostrcmp(tmpstr2, sendermerk) != 0)
607                                {
608                                        free(sendermerk);sendermerk=NULL;
609                                        sendermerk = ostrcat(tmpstr2, "", 0, 0);
610                                        put = 1;
611                                } 
612                                if(tmpstr3 == NULL && recmerk != NULL)
613                                {
614                                        put = 1;
615                                        free(recmerk);recmerk=NULL;
616                                }
617                                else if(tmpstr3 != NULL && recmerk == NULL)
618                                {
619                                        free(recmerk);recmerk=NULL;
620                                        recmerk = ostrcat(tmpstr3, "", 0, 0);
621                                        put = 1;
622                                }
623                        }
624                        else if(type == 2)
625                        {
626                                if(loopcount >= 15)
627                                {
628                                        put = 1;
629                                        loopcount = 0;
630                                }
631                        }       
632                        else if(type == 3)
633                        {
634                                if(loopcount >= 15)
635                                {
636                                        put = 1;
637                                        loopcount = 0;
638                                }
639                        }       
640                       
641                        if(put == 1)
642                        {
643                                if(type == 1)
644                                {
645                                        // Wettervorhersage
646                                        printf("lcd_samsung wetter = %s\n", getconfig("lcd_samsung_plugin_wetter", NULL));
647                                        if(ostrcmp(getconfig("lcd_samsung_plugin_wetter", NULL), "yes") == 0)
648                                        {
649                                                if(weatherwrite == 0)
650                                                {
651                                                        printf("lcd_samsung weatherwrite=0\n");
652                                                        if(weatherthread == NULL)
653                                                        {
654                                                                printf("lcd_samsung weatherthread=NULL\n");
655                                                                if(!file_exist("/tmp/lcdweather"))
656                                                                        weatherthread = addtimer(&lcd_writeweather, START, 10000, 1, NULL, NULL, NULL);
657                                                                else
658                                                                {
659                                                                        fileline = malloc(256);
660                                                                        if(fileline != NULL)
661                                                                        {
662                                                                                fd = fopen("/tmp/lcdweather", "r");
663                                                                                if(fd != NULL)
664                                                                                {
665                                                                                        if(ostrcmp(getconfig("lcd_samsung_plugin_standby", NULL), "yes") == 0) 
666                                                                                        {
667                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
668                                                                                                changetext(day0_d, fileline);
669                                                                                                changetext(sday0_d, fileline);
670                                                                                                weather_getline(fd, fileline);
671                                                                                                changetext(day0_tm, fileline);
672                                                                                                changetext(sday0_tm, fileline);
673                                                                                                weather_getline(fd, fileline);
674                                                                                                changetext(day0_t, fileline);
675                                                                                                changetext(sday0_t, fileline);
676                                                                                                weather_getline(fd, fileline);
677                                                                                                weather_getline(fd, fileline);
678                                                                                                changepic(day0_i, fileline);
679                                                                                                changepic(sday0_i, fileline);
680                                                                                       
681                                                                                                weather_getline(fd, fileline);
682                                                                                                changetext(day1_d, fileline);
683                                                                                                changetext(sday1_d, fileline);
684                                                                                                weather_getline(fd, fileline);
685                                                                                                changetext(day1_tm, fileline);
686                                                                                                changetext(sday1_tm, fileline);
687                                                                                                weather_getline(fd, fileline);
688                                                                                                changetext(day1_t, fileline);
689                                                                                                changetext(sday1_t, fileline);
690                                                                                                weather_getline(fd, fileline);
691                                                                                                weather_getline(fd, fileline);
692                                                                                                changepic(day1_i, fileline);
693                                                                                                changepic(sday1_i, fileline);
694                                                                                       
695                                                                                                weather_getline(fd, fileline);
696                                                                                                changetext(day2_d, fileline);
697                                                                                                changetext(sday2_d, fileline);
698                                                                                                weather_getline(fd, fileline);
699                                                                                                changetext(day2_tm, fileline);
700                                                                                                changetext(sday2_tm, fileline);
701                                                                                                weather_getline(fd, fileline);
702                                                                                                changetext(day2_t, fileline);
703                                                                                                changetext(sday2_t, fileline);
704                                                                                                weather_getline(fd, fileline);
705                                                                                                weather_getline(fd, fileline);
706                                                                                                changepic(day2_i, fileline);
707                                                                                                changepic(sday2_i, fileline);
708                                                                                       
709                                                                                                weather_getline(fd, fileline);
710                                                                                                changetext(day3_d, fileline);
711                                                                                                changetext(sday3_d, fileline);
712                                                                                                weather_getline(fd, fileline);
713                                                                                                changetext(day3_tm, fileline);
714                                                                                                changetext(sday3_tm, fileline);
715                                                                                                weather_getline(fd, fileline);
716                                                                                                changetext(day3_t, fileline);
717                                                                                                changetext(sday3_t, fileline);
718                                                                                                weather_getline(fd, fileline);
719                                                                                                weather_getline(fd, fileline);
720                                                                                                changepic(day3_i, fileline);
721                                                                                                changepic(sday3_i, fileline);
722                                                                                               
723                                                                                                weather_getline(fd, fileline);
724                                                                                                changepic(city, fileline);
725                                                                                                changepic(scity, fileline);
726                                                                                                weather_getline(fd, fileline);
727                                                                                                changetext(wind, fileline);
728                                                                                                changetext(swind, fileline);
729                                                                                                weather_getline(fd, fileline);
730                                                                                                changetext(luft, fileline);
731                                                                                                changetext(sluft, fileline);
732                                                                                                weather_getline(fd, fileline);
733                                                                                                changetext(day0_dl, fileline);
734                                                                                                changetext(sday0_dl, fileline);
735                                                                                                weather_getline(fd, fileline);
736                                                                                                changetext(day1_dl, fileline);
737                                                                                                changetext(sday1_dl, fileline);
738                                                                                                weather_getline(fd, fileline);
739                                                                                                changetext(day2_dl, fileline);
740                                                                                                changetext(sday2_dl, fileline);
741                                                                                                weather_getline(fd, fileline);
742                                                                                                changetext(day3_dl, fileline);
743                                                                                                changetext(sday3_dl, fileline);
744                                                                                               
745                                                                                        }
746                                                                                        else
747                                                                                        {
748                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
749                                                                                                changetext(day0_d, fileline);
750                                                                                                weather_getline(fd, fileline);
751                                                                                                changetext(day0_tm, fileline);
752                                                                                                weather_getline(fd, fileline);
753                                                                                                changetext(day0_t, fileline);
754                                                                                                weather_getline(fd, fileline);
755                                                                                                weather_getline(fd, fileline);
756                                                                                                changepic(day0_i, fileline);
757                                                                                       
758                                                                                                weather_getline(fd, fileline);
759                                                                                                changetext(day1_d, fileline);
760                                                                                                weather_getline(fd, fileline);
761                                                                                                changetext(day1_tm, fileline);
762                                                                                                weather_getline(fd, fileline);
763                                                                                                changetext(day1_t, fileline);
764                                                                                                weather_getline(fd, fileline);
765                                                                                                weather_getline(fd, fileline);
766                                                                                                changepic(day1_i, fileline);
767                                                                                       
768                                                                                                weather_getline(fd, fileline);
769                                                                                                changetext(day2_d, fileline);
770                                                                                                weather_getline(fd, fileline);
771                                                                                                changetext(day2_tm, fileline);
772                                                                                                weather_getline(fd, fileline);
773                                                                                                changetext(day2_t, fileline);
774                                                                                                weather_getline(fd, fileline);
775                                                                                                weather_getline(fd, fileline);
776                                                                                                changepic(day2_i, fileline);
777                                                                                       
778                                                                                                weather_getline(fd, fileline);
779                                                                                                changetext(day3_d, fileline);
780                                                                                                weather_getline(fd, fileline);
781                                                                                                changetext(day3_tm, fileline);
782                                                                                                weather_getline(fd, fileline);
783                                                                                                changetext(day3_t, fileline);
784                                                                                                weather_getline(fd, fileline);
785                                                                                                weather_getline(fd, fileline);
786                                                                                                changepic(day3_i, fileline);
787                                                                                               
788                                                                                                weather_getline(fd, fileline);
789                                                                                                changepic(city, fileline);
790                                                                                                weather_getline(fd, fileline);
791                                                                                                changetext(wind, fileline);
792                                                                                                weather_getline(fd, fileline);
793                                                                                                changetext(luft, fileline);
794                                                                                                weather_getline(fd, fileline);
795                                                                                                changetext(day0_dl, fileline);
796                                                                                                weather_getline(fd, fileline);
797                                                                                                changetext(day1_dl, fileline);
798                                                                                                weather_getline(fd, fileline);
799                                                                                                changetext(day2_dl, fileline);
800                                                                                                weather_getline(fd, fileline);
801                                                                                                changetext(day3_dl, fileline);
802                                                                                        }
803                                                                                        fclose(fd);
804                                                                                }
805                                                                                free(fileline); fileline=NULL;
806                                                                        }
807                                                                        weatherwrite = 1;
808                                                                }                                                               
809                                                        }
810                                                }               
811                                        }
812                                        if(standby == 0)
813                                        {
814                                                if(akttime != NULL)
815                                                        changetext(akttime, tmpstr);
816                                                if(n_minute != NULL && digitaluhr == 0)
817                                                {
818                                                        free(tmpstr);tmpstr=NULL;
819                                                        tmpstr = ostrcat("min_",gettime(NULL, "%M"), 0, 0);
820                                                        free(n_minute->pic);
821                                                        n_minute->pic = string_replace("min_mm", tmpstr, picmin, 0);
822                                                        free(tmpstr);tmpstr=NULL;
823                                                }
824                                                if(n_stunde != NULL && digitaluhr == 0)
825                                                {
826                                                        free(tmpstr);tmpstr=NULL;
827                                                        if(hr >= 12)
828                                                                hr = hr - 12;
829                                                        if(hr < 10)
830                                                                tmpstr = ostrcat("hr_0",oitoa(hr), 0, 1);
831                                                        else
832                                                                tmpstr = ostrcat("hr_",oitoa(hr), 0, 1);
833                                                        if(min < 12)
834                                                                tmpstr = ostrcat(tmpstr,"00", 0, 0);
835                                                        else if(min < 24)
836                                                                tmpstr = ostrcat(tmpstr,"12", 0, 0);
837                                                        else if(min < 36)
838                                                                tmpstr = ostrcat(tmpstr,"24", 0, 0);
839                                                        else if(min < 48)
840                                                         tmpstr = ostrcat(tmpstr,"36", 0, 0);
841                                                        else if(min < 60)
842                                                         tmpstr = ostrcat(tmpstr,"48", 0, 0);                                                           
843                                                        free(n_stunde->pic);
844                                                        n_stunde->pic = string_replace("hr_hhmm", tmpstr, pichr, 0);
845                                                        free(tmpstr);tmpstr=NULL;
846                                                }
847                                                if(digitaluhr == 1)
848                                                {
849                                                        free(tmpstr);tmpstr=NULL;
850                                                        tmpstr = ostrcat("wert_",oitoa(hr/10), 0, 1);
851                                                        n_stunde->pic = string_replace("wert_w", tmpstr, pichr, 0);     
852                                                        free(tmpstr);tmpstr=NULL;
853                                                        tmpstr = ostrcat("wert_",oitoa(hr%10), 0, 1);
854                                                        n_stunde2->pic = string_replace("wert_w", tmpstr, pichr2, 0);   
855                                                        free(tmpstr);tmpstr=NULL;
856                                                        tmpstr = ostrcat("wert_",oitoa(min/10), 0, 1);
857                                                        n_minute->pic = string_replace("wert_w", tmpstr, picmin, 0);   
858                                                        free(tmpstr);tmpstr=NULL;
859                                                        tmpstr = ostrcat("wert_",oitoa(min%10), 0, 1);
860                                                        n_minute2->pic = string_replace("wert_w", tmpstr, picmin2, 0);
861                                                        free(tmpstr);tmpstr=NULL;
862                                                }       
863                                                       
864                                                m_lock(&status.drawingmutex, 0);               
865                                                if(drawscreen(LCD_Samsung1, 0, 2) == -2)
866                                                        printf("nicht genug Speicher fuer drawscreen\n");
867                                                m_unlock(&status.drawingmutex, 0);
868                                        }
869                                        else if(standby == 2)
870                                        {
871                                                if(akttime_Standby != NULL)
872                                                        changetext(akttime_Standby, tmpstr); 
873                                                if(n_minute_standby != NULL && digitaluhr_standby == 0)
874                                                {
875                                                        free(tmpstr);tmpstr=NULL;
876                                                        tmpstr = ostrcat("min_",gettime(NULL, "%M"), 0, 0);
877                                                        free(n_minute_standby->pic);
878                                                        n_minute_standby->pic = string_replace("min_mm", tmpstr, picmin_standby, 0);
879                                                        free(tmpstr);tmpstr=NULL;
880                                                }
881                                                if(n_stunde_standby != NULL && digitaluhr_standby == 0)
882                                                {
883                                                        free(tmpstr);tmpstr=NULL;
884                                                        if(hr >= 12)
885                                                                hr = hr - 12;
886                                                        if(hr < 10)
887                                                                tmpstr = ostrcat("hr_0",oitoa(hr), 0, 1);
888                                                        else
889                                                                tmpstr = ostrcat("hr_",oitoa(hr), 0, 1);
890                                                        if(min < 12)
891                                                                tmpstr = ostrcat(tmpstr,"00", 0, 0);
892                                                        else if(min < 24)
893                                                                tmpstr = ostrcat(tmpstr,"12", 0, 0);
894                                                        else if(min < 36)
895                                                                tmpstr = ostrcat(tmpstr,"24", 0, 0);
896                                                        else if(min < 48)
897                                                         tmpstr = ostrcat(tmpstr,"36", 0, 0);
898                                                        else if(min < 60)
899                                                         tmpstr = ostrcat(tmpstr,"48", 0, 0);                                                           
900                                                        free(n_stunde_standby->pic);
901                                                        n_stunde_standby->pic = string_replace("hr_hhmm", tmpstr, pichr_standby, 0);
902                                                        free(tmpstr);tmpstr=NULL;
903                                                }       
904                                                if(digitaluhr_standby == 1)
905                                                {
906                                                        free(tmpstr);tmpstr=NULL;
907                                                        tmpstr = ostrcat("wert_",oitoa(hr/10), 0, 1);
908                                                        n_stunde_standby->pic = string_replace("wert_w", tmpstr, pichr_standby, 0);     
909                                                        free(tmpstr);tmpstr=NULL;
910                                                        tmpstr = ostrcat("wert_",oitoa(hr%10), 0, 1);
911                                                        n_stunde2_standby->pic = string_replace("wert_w", tmpstr, pichr2_standby, 0);   
912                                                        free(tmpstr);tmpstr=NULL;
913                                                        tmpstr = ostrcat("wert_",oitoa(min/10), 0, 1);
914                                                        n_minute_standby->pic = string_replace("wert_w", tmpstr, picmin_standby, 0);   
915                                                        free(tmpstr);tmpstr=NULL;
916                                                        tmpstr = ostrcat("wert_",oitoa(min%10), 0, 1);
917                                                        n_minute2_standby->pic = string_replace("wert_w", tmpstr, picmin2_standby, 0);
918                                                        free(tmpstr);tmpstr=NULL;
919                                                }       
920                                                m_lock(&status.drawingmutex, 0);
921                                                drawscreen(LCD_Standby, 0, 2); 
922                                                m_unlock(&status.drawingmutex, 0);
923                                                put = 0;
924                                        } 
925                                }
926                                else if(type == 2)
927                                {
928                                        playertype = getconfigint("lastplayertype", NULL);
929                                        //if(status.mcaktiv == 1)
930                                                //playertype = 0;
931                                        //else 
932                                                ////playertype = getconfigint("playertype", NULL);
933                                                //playertype = 1;
934               
935                                        if(playertype == 1)
936                                        {
937                                                unsigned long long int startpos = 0;
938                                                playergetinfots(&len, &startpos, NULL, &pos, NULL, 0);
939                                                len = len / 90000;
940                                                pos = (pos - startpos) / 90000;
941                                        }
942                                        else
943                                        {
944                                                pos = playergetpts() / 90000;
945                                                len = playergetlength();
946                                        }
947                                        if(pos < 0) pos = 0;
948                                        reverse = len - pos;
949                                        if(len == 0)
950                                                sprogress->progresssize = 0;
951                                        else
952                                                sprogress->progresssize = pos * 100 / len;
953                                       
954                                        tmpstr2 = convert_timesec(pos);
955                                        changetext(spos, tmpstr2);
956                                        free(tmpstr2); tmpstr2 = NULL;
957
958                                        tmpstr2 = convert_timesec(len);
959                                        changetext(slen, tmpstr2);
960                                        free(tmpstr2); tmpstr2 = NULL;
961
962                                        tmpstr2 = convert_timesec(reverse);
963                                        changetext(sreverse, tmpstr2);
964                                        free(tmpstr2); tmpstr2 = NULL;
965                                       
966                                        changetext(akttimeplay, tmpstr);
967                                        changetext(stitle, basename(status.playfile));
968                                        m_lock(&status.drawingmutex, 0);
969                                        if(drawscreen(LCD_Play, 0, 2) == -2)
970                                                printf("nicht genug Speicher fuer drawscreen\n");
971                                        m_unlock(&status.drawingmutex, 0);
972                                }
973                                else if(type == 3)
974                                {
975                                        pos = playergetpts() / 90000;
976                                        len = playergetlength();
977                                        if(pos < 0) pos = 0;
978                                        reverse = len - pos;
979                                        if(len == 0)
980                                                mprogress->progresssize = 0;
981                                        else
982                                                mprogress->progresssize = pos * 100 / len;
983                                       
984                                        tmpstr2 = convert_timesec(pos);
985                                        changetext(mpos, tmpstr2);
986                                        free(tmpstr2); tmpstr2 = NULL;
987
988                                        tmpstr2 = convert_timesec(len);
989                                        changetext(mlen, tmpstr2);
990                                        free(tmpstr2); tmpstr2 = NULL;
991
992                                        tmpstr2 = convert_timesec(reverse);
993                                        changetext(mreverse, tmpstr2);
994                                        free(tmpstr2); tmpstr2 = NULL;
995                                       
996                                        changetext(makttimeplay, tmpstr);
997                                        changetext(mtitle1, basename(status.playfile));
998                                       
999                                        changetext(mtitle, musicdat.title);
1000                                        changetext(malbum, musicdat.album);
1001                                        changetext(mrealname, musicdat.realname);
1002                                        changetext(mgenre, musicdat.genre);
1003                                        changetext(myear, musicdat.year);
1004                                        changetext(mactors, musicdat.actors);
1005                                       
1006                                        if(file_exist(musicdat.thumb))
1007                                        {
1008                                                mthumb->hidden = NO;
1009                                                changepic(mthumb, musicdat.thumb);
1010                                        }
1011                                        else
1012                                                mthumb->hidden = YES;
1013                                       
1014                                        m_lock(&status.drawingmutex, 0);
1015                                        if(drawscreen(LCD_Music, 0, 2) == -2)
1016                                                printf("nicht genug Speicher fuer drawscreen\n");
1017                                        m_unlock(&status.drawingmutex, 0);
1018                                }
1019                        }
1020                }
1021                else
1022                {
1023                        if(standby == 2) 
1024                        {       
1025                                if(put == 1) 
1026                                {       
1027                                        changetext(akttime_Standby, tmpstr);
1028                                        m_lock(&status.drawingmutex, 0);
1029                                        drawscreen(LCD_Standby, 0, 2); 
1030                                        m_unlock(&status.drawingmutex, 0);
1031                                        put = 0; 
1032                                } 
1033                        } 
1034                }
1035
1036                free(tmpstr); tmpstr = NULL;
1037                free(tmpstr2); tmpstr2 = NULL;
1038                free(tmpstr3); tmpstr3 = NULL;
1039                //sleep(1);
1040                usleep(500000);
1041               
1042                if(ostrcmp(getconfig("lcd_samsung_plugin_wetter", NULL), "yes") == 0)
1043                {
1044                        weatherref = weatherref + 1;
1045                        if(weatherref == 7200)
1046                        {
1047                                weatherwrite = 0;
1048                                system("rm /tmp/lcdweather");
1049                                weatherref = 0;
1050                        }
1051                }
1052        }
1053        free(timemerk);timemerk=NULL;
1054        free(sendermerk);sendermerk=NULL;
1055        free(recmerk);recmerk=NULL;
1056        free(startlcd);startlcd=NULL;
1057        free(pichr);pichr=NULL;
1058        free(picmin);picmin=NULL;
1059        free(pichr_standby);pichr=NULL;
1060        free(picmin_standby);picmin=NULL;
1061        free(pichr2);pichr2=NULL;
1062        free(picmin2);picmin2=NULL;
1063        free(pichr2_standby);pichr2_standby=NULL;
1064        free(picmin2_standby);picmin2_standby=NULL;
1065        addconfig("lcd_samsung_plugin_running", "no");
1066        LCD_Samsung1thread = NULL;
1067        m_lock(&status.drawingmutex, 0);
1068        if(drawscreen(LCD_Samsung1, 0, 2) == -2)
1069                printf("nicht genug Speicher fuer drawscreen\n");
1070        m_unlock(&status.drawingmutex, 0);
1071        //status.write_png = 0;
1072        return;
1073}
1074
1075void LCD_Samsung1_main()
1076{
1077        if(LCD_Samsung1thread == NULL)
1078        {
1079                char* tmpstr = NULL;
1080               
1081                tmpstr = createpluginpath("/lcdsamsung/start.png", 0);
1082                tmpstr = ostrcat("cp ", tmpstr, 0, 1);
1083                tmpstr = ostrcat(tmpstr, " /tmp/titanlcd.png", 1, 0);
1084                system(tmpstr);
1085                free(tmpstr); tmpstr=NULL;
1086                addconfig("lcd_samsung_plugin_running", "yes");
1087                LCD_Samsung1thread = addtimer(&LCD_Samsung1_thread, START, 10000, 1, NULL, NULL, NULL);
1088                addtimer(&LCD_start_lcd4linux, START, 10000, 1, NULL, NULL, NULL);
1089                sleep(1);
1090        }
1091        else
1092        {
1093                        LCD_Samsung1thread->aktion = STOP;
1094                        system("echo ende > /tmp/titanlcd.jpg");
1095                        sleep(1);
1096                        system("killall fbread");
1097        }
1098}       
1099                       
1100//wird beim laden ausgefuehrt
1101void init(void)
1102{
1103        char* tmpstr = NULL;
1104        pluginaktiv = 1;
1105        firststart = 1;
1106
1107        tmpstr = ostrcat("/var/usr/local/share/titan/plugins/lcdsamsung/skin2.xml", NULL, 0, 0);
1108        if(!file_exist(tmpstr))
1109        {
1110                free(tmpstr); tmpstr = NULL;
1111                tmpstr = ostrcat("/var/swap/usr/local/share/titan/plugins/lcdsamsung/skin2.xml", NULL, 0, 0);
1112        }
1113        if(!file_exist(tmpstr))
1114        {
1115                free(tmpstr); tmpstr = NULL;
1116                tmpstr = ostrcat("/mnt/swapextensions/usr/local/share/titan/plugins/lcdsamsung/skin2.xml", NULL, 0, 0);
1117        }
1118        if(!file_exist(tmpstr))
1119        {
1120                free(tmpstr); tmpstr = NULL;
1121                tmpstr = createpluginpath("/lcdsamsung/skin.xml", 0);
1122        }
1123
1124        printf("use skin: %s\n", tmpstr);
1125
1126        readscreen(tmpstr, 119, 1);
1127        free(tmpstr); tmpstr = NULL;
1128       
1129        tmpstr = createpluginpath("/lcdsamsung/black.jpg", 0);
1130        tmpstr = ostrcat("cp ", tmpstr, 0, 1);
1131        tmpstr = ostrcat(tmpstr, " /tmp/fbreadstop.jpg", 1, 0);
1132               
1133        system(tmpstr);
1134        free(tmpstr); tmpstr = NULL;
1135        system("killall fbread");
1136        debug(10, "LCD Samsung SPF.. loadet !!!");
1137        tmpstr = getconfig("lcd_samsung_plugin_running", NULL);
1138        if(ostrcmp(tmpstr, "yes") == 0)
1139                LCD_Samsung1_main();
1140        tmpstr = NULL;
1141}
1142
1143//wird beim entladen ausgefuehrt
1144void deinit(void)
1145{
1146        delmarkedscreen(119);
1147        pluginaktiv = 0;
1148        system("echo ende > /tmp/titanlcd.png");
1149        sleep(1);
1150        system("killall fbread");
1151        debug(10, "LCD Samsung unloadet !!!");
1152}
1153
1154
1155//wird in der Pluginverwaltung bzw Menue ausfeguehrt
1156void start(void)
1157{
1158        struct skin* samsung1_main = getscreen("samsung1_main");
1159        struct skin* listbox = getscreennode(samsung1_main, "listbox");
1160        struct skin* lcdtype = getscreennode(samsung1_main, "lcdtype");
1161        struct skin* allmenu = getscreennode(samsung1_main, "allmenu");
1162        struct skin* aktstandby = getscreennode(samsung1_main, "aktstandby");
1163        struct skin* wettervor = getscreennode(samsung1_main, "wettervor");
1164        struct skin* wettervorort = getscreennode(samsung1_main, "wettervorort"); 
1165        //struct skin* wettervorplz = getscreennode(samsung1_main, "wettervorplz");
1166        //struct skin* wettervorland = getscreennode(samsung1_main, "wettervorland");
1167        struct skin* b3 = getscreennode(samsung1_main, "b3");
1168        struct skin* tmp = NULL;
1169       
1170        int rcret = 0;
1171        int startstop = 0;
1172        int restart = 0;
1173       
1174  if(getconfig("lcd_samsung_plugin_wetter", NULL) == NULL || ostrcmp(getconfig("lcd_samsung_plugin_wetter", NULL), "no")  == 0)
1175  {
1176        //wettervorplz->hidden = YES;
1177        //wettervorland->hidden = YES;
1178        wettervorort->hidden = YES;
1179  }
1180   
1181  addchoicebox(lcdtype, "spf72h", _("SPF-72H"));
1182  addchoicebox(lcdtype, "spf75h", _("SPF-75H"));
1183  addchoicebox(lcdtype, "spf83h", _("SPF-83H"));
1184  addchoicebox(lcdtype, "spf85h", _("SPF-85H"));
1185  addchoicebox(lcdtype, "spf85p", _("SPF-85P"));
1186  addchoicebox(lcdtype, "spf87h", _("SPF-87H"));
1187  addchoicebox(lcdtype, "spf87hold", _("SPF-87H-old"));
1188  addchoicebox(lcdtype, "spf105p", _("SPF-105P"));
1189  addchoicebox(lcdtype, "spf107h", _("SPF-107H"));
1190  addchoicebox(lcdtype, "none", _("tiMote"));
1191        setchoiceboxselection(lcdtype, getconfig("lcd_samsung_plugin_type", NULL));
1192       
1193        addchoicebox(allmenu, "no", _("nein"));
1194        addchoicebox(allmenu, "yes", _("ja"));
1195        setchoiceboxselection(allmenu, getconfig("write_fb_to_jpg", NULL));
1196       
1197        addchoicebox(aktstandby, "no", _("nein")); 
1198        addchoicebox(aktstandby, "yes", _("ja")); 
1199        setchoiceboxselection(aktstandby, getconfig("lcd_samsung_plugin_standby", NULL)); 
1200       
1201        addchoicebox(wettervor, "no", _("nein"));
1202  addchoicebox(wettervor, "yes", _("ja"));
1203        setchoiceboxselection(wettervor, getconfig("lcd_samsung_plugin_wetter", NULL));
1204       
1205        //changemask(wettervorplz, "0000");
1206        //if(getconfig("lcd_samsung_plugin_wetterplz", NULL) == NULL)
1207        //      changeinput(wettervorplz, "10407");
1208        //else
1209        //      changeinput(wettervorplz, getconfig("lcd_samsung_plugin_wetterplz", NULL));
1210               
1211        //changemask(wettervorland, "abcdefghijklmnopqrstuvwxyz");
1212        //if(getconfig("lcd_samsung_plugin_wetterland", NULL) == NULL)
1213        //      changeinput(wettervorland, "Germany");
1214        //else
1215        //      changeinput(wettervorland, getconfig("lcd_samsung_plugin_wetterland", NULL));
1216       
1217        changemask(wettervorort, "abcdefghijklmnopqrstuvwxyz"); 
1218        if(getconfig("lcd_samsung_plugin_wetterort", NULL) == NULL) 
1219                changeinput(wettervorort, "Berlin        "); 
1220        else
1221                changeinput(wettervorort, getconfig("lcd_samsung_plugin_wetterort", NULL));     
1222       
1223        if(LCD_Samsung1thread != NULL)
1224                changetext(b3, "STOP");
1225        else
1226                changetext(b3, "START");
1227               
1228        drawscreen(samsung1_main, 0, 0);
1229        addscreenrc(samsung1_main, listbox);
1230        tmp = listbox->select;
1231       
1232        while(1)
1233        {
1234                addscreenrc(samsung1_main, tmp);
1235                rcret = waitrc(samsung1_main, 0, 0);
1236                tmp = listbox->select;
1237               
1238                if((rcret == getrcconfigint("rcleft", NULL) || rcret == getrcconfigint("rcright", NULL)) && listbox->select != NULL && ostrcmp(listbox->select->name, "wettervor") == 0)
1239                {
1240                        if(ostrcmp(wettervor->ret, "yes") == 0)
1241                        {
1242                                //wettervorplz->hidden = NO;
1243                        //wettervorland->hidden = NO;
1244                        wettervorort->hidden = NO;
1245                        } else {
1246                                //wettervorplz->hidden = YES;
1247                        //wettervorland->hidden = YES;
1248                        wettervorort->hidden = YES;
1249                }
1250                       
1251                        drawscreen(samsung1_main, 0, 0);
1252                }
1253                                       
1254                if(rcret == getrcconfigint("rcexit", NULL))
1255                        break;
1256                if(rcret == getrcconfigint("rcgreen", NULL))
1257                {
1258                        addconfig("lcd_samsung_plugin_type", lcdtype->ret);
1259                        addconfig("write_fb_to_jpg", allmenu->ret);
1260                        addconfig("lcd_samsung_plugin_standby", aktstandby->ret);
1261                        addconfig("lcd_samsung_plugin_wetter", wettervor->ret);
1262                        addconfig("lcd_samsung_plugin_wetterort", wettervorort->ret); 
1263                        //addconfig("lcd_samsung_plugin_wetterplz", wettervorplz->ret);
1264                        //addconfig("lcd_samsung_plugin_wetterland", wettervorland->ret);
1265                        restart = 1;
1266                        break;
1267                }
1268                       
1269                if(rcret == getrcconfigint("rcblue", NULL))
1270                {
1271                        addconfig("lcd_samsung_plugin_type", lcdtype->ret);
1272                        addconfig("write_fb_to_jpg", allmenu->ret);
1273                        addconfig("lcd_samsung_plugin_standby", aktstandby->ret);
1274                        addconfig("lcd_samsung_plugin_wetter", wettervor->ret);
1275                        addconfig("lcd_samsung_plugin_wetterort", wettervorort->ret); 
1276                        //addconfig("lcd_samsung_plugin_wetterplz", wettervorplz->ret);
1277                        //addconfig("lcd_samsung_plugin_wetterland", wettervorland->ret);
1278                        startstop = 1;
1279                        break;
1280                }
1281        }
1282        delownerrc(samsung1_main);
1283        clearscreen(samsung1_main);
1284       
1285        if(LCD_Samsung1thread != NULL && restart == 1)
1286        {
1287                LCD_Samsung1thread->aktion = STOP;
1288                system("killall fbread");       
1289                sleep(2);
1290                addtimer(&LCD_start_lcd4linux, START, 10000, 1, NULL, NULL, NULL);
1291                LCD_Samsung1thread = addtimer(&LCD_Samsung1_thread, START, 10000, 1, NULL, NULL, NULL);
1292                sleep(1);
1293                return;
1294        }
1295        if(startstop == 1)
1296        {
1297                if(LCD_Samsung1thread != NULL)
1298                {
1299                        addconfig("lcd_samsung_plugin_running", "no");
1300                        LCD_Samsung1thread->aktion = STOP;
1301                        sleep(1);
1302                        system("killall fbread");
1303                        debug(10, "LCD Samsung unloadet !!!"); 
1304                        sleep(1);
1305                }
1306                else {
1307                        addconfig("lcd_samsung_plugin_running", "yes");
1308                        firststart = 1;
1309                        LCD_Samsung1_main();
1310                }
1311        }
1312}
Note: See TracBrowser for help on using the repository browser.