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

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

[plugins] lcdsamsung.. fix titan crash

  • Property svn:executable set to *
File size: 36.0 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       
115        struct skin* day0_t = NULL;
116        struct skin* day0_i = NULL;
117        struct skin* day0_d = NULL;
118        struct skin* day1_t = NULL;
119        struct skin* day1_i = NULL;
120        struct skin* day1_d = NULL;
121        struct skin* day2_t = NULL;
122        struct skin* day2_i = NULL;
123        struct skin* day2_d = NULL;
124        struct skin* day3_t = NULL;
125        struct skin* day3_i = NULL;
126        struct skin* day3_d = NULL;
127        struct skin* akttime = NULL;
128        struct skin* akttime_Standby = NULL;
129       
130        struct skin* n_stunde = NULL;
131        struct skin* n_minute = NULL;
132        struct skin* n_stunde_standby = NULL;
133        struct skin* n_minute_standby = NULL;
134       
135        struct skin* n_stunde2 = NULL;
136        struct skin* n_minute2 = NULL;
137        struct skin* n_stunde2_standby = NULL;
138        struct skin* n_minute2_standby = NULL;
139       
140        struct skin* sday0_t = NULL;
141        struct skin* sday0_i = NULL;
142        struct skin* sday0_d = NULL;
143        struct skin* sday1_t = NULL;
144        struct skin* sday1_i = NULL;
145        struct skin* sday1_d = NULL;
146        struct skin* sday2_t = NULL;
147        struct skin* sday2_i = NULL;
148        struct skin* sday2_d = NULL;
149        struct skin* sday3_t = NULL;
150        struct skin* sday3_i = NULL;
151        struct skin* sday3_d = NULL;
152       
153       
154        char* tmpstr = NULL, *tmpstr2 = NULL, *tmpstr3 = NULL, *timemerk = NULL, *sendermerk = NULL, *recmerk = NULL;
155        char* pichr = NULL, *picmin = NULL, *pichr_standby = NULL, *picmin_standby = NULL;
156        char* pichr2 = NULL, *picmin2 = NULL, *pichr2_standby = NULL, *picmin2_standby = NULL;
157        int digitaluhr = 0, digitaluhr_standby = 0;
158        FILE *fd = NULL;
159        char *fileline = NULL;
160        int weatherwrite = 999;
161        int weatherref = 0;
162        char* startlcd = NULL;
163       
164        printf("lcd_samsung thread started\n");
165       
166        if(ostrcmp(getconfig("lcd_samsung_plugin_wetter", NULL), "yes") == 0)
167        {
168                if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf75h") == 0)
169                        LCD_Samsung1 = getscreen("LCD_spf75_Wetter");
170                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87h") == 0)
171                        LCD_Samsung1 = getscreen("LCD_spf87_Wetter");
172                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf83h") == 0)
173                        LCD_Samsung1 = getscreen("LCD_spf83_Wetter");
174                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87hold") == 0)
175                        LCD_Samsung1 = getscreen("LCD_spf87_Wetter");
176                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf105p") == 0)
177                        LCD_Samsung1 = getscreen("LCD_spf105_Wetter");
178                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf107h") == 0)
179                        LCD_Samsung1 = getscreen("LCD_spf107_Wetter");
180                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf72h") == 0)
181                        LCD_Samsung1 = getscreen("LCD_spf72_Wetter");
182                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85h") == 0)
183                        LCD_Samsung1 = getscreen("LCD_spf85_Wetter");
184                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85p") == 0)
185                        LCD_Samsung1 = getscreen("LCD_spf85_Wetter");
186                else
187                        LCD_Samsung1 = getscreen("LCD_spf87_Wetter");
188                day0_t = getscreennode(LCD_Samsung1, "day0_t");
189                day0_i = getscreennode(LCD_Samsung1, "day0_i");
190                day0_d = getscreennode(LCD_Samsung1, "day0_d");
191                day1_t = getscreennode(LCD_Samsung1, "day1_t");
192                day1_i = getscreennode(LCD_Samsung1, "day1_i");
193                day1_d = getscreennode(LCD_Samsung1, "day1_d");
194                day2_t = getscreennode(LCD_Samsung1, "day2_t");
195                day2_i = getscreennode(LCD_Samsung1, "day2_i");
196                day2_d = getscreennode(LCD_Samsung1, "day2_d");
197                day3_t = getscreennode(LCD_Samsung1, "day3_t");
198                day3_i = getscreennode(LCD_Samsung1, "day3_i");
199                day3_d = getscreennode(LCD_Samsung1, "day3_d");
200                akttime = getscreennode(LCD_Samsung1, "akttime");
201                akttime = getscreennode(LCD_Samsung1, "akttime");
202                n_stunde =  getscreennode(LCD_Samsung1, "stunde");
203                if(n_stunde != NULL)
204                {
205                        pichr = ostrcat(n_stunde->pic, "", 0, 0);
206                        if(ostrstr(pichr, "Digital") != NULL)
207                                digitaluhr = 1;
208                }
209                n_minute =  getscreennode(LCD_Samsung1, "minute");
210                if(n_minute != NULL)
211                        picmin = ostrcat(n_minute->pic, "", 0, 0);
212                if(digitaluhr == 1)
213                {
214                        n_stunde2 =  getscreennode(LCD_Samsung1, "stunde2");
215                        n_minute2 =  getscreennode(LCD_Samsung1, "minute2");
216                        picmin2 = ostrcat(n_minute2->pic, "", 0, 0);
217                        pichr2 = ostrcat(n_stunde2->pic, "", 0, 0);
218                }
219                if(file_exist("/tmp/lcdweather"))
220                        system("rm /tmp/lcdweather");
221                weatherwrite = 0;
222        }
223        else {
224                if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf75h") == 0)
225                        LCD_Samsung1 = getscreen("LCD_spf75");
226                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf83h") == 0)
227                        LCD_Samsung1 = getscreen("LCD_spf83");
228                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87h") == 0)
229                        LCD_Samsung1 = getscreen("LCD_spf87");
230                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87hold") == 0)
231                        LCD_Samsung1 = getscreen("LCD_spf87");
232                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf105p") == 0)
233                        LCD_Samsung1 = getscreen("LCD_spf105");
234                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf107h") == 0)
235                        LCD_Samsung1 = getscreen("LCD_spf107");
236                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf72h") == 0)
237                        LCD_Samsung1 = getscreen("LCD_spf72");
238                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85h") == 0)
239                        LCD_Samsung1 = getscreen("LCD_spf85");
240                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85p") == 0)
241                        LCD_Samsung1 = getscreen("LCD_spf85");
242                else
243                        LCD_Samsung1 = getscreen("LCD_spf87"); 
244                akttime = getscreennode(LCD_Samsung1, "akttime");
245                n_stunde =  getscreennode(LCD_Samsung1, "stunde");
246                if(n_stunde != NULL)
247                {
248                        pichr = ostrcat(n_stunde->pic, "", 0, 0);
249                        if(ostrstr(pichr, "Digital") != NULL)
250                                digitaluhr = 1;
251                }
252                n_minute =  getscreennode(LCD_Samsung1, "minute");
253                if(n_minute != NULL)
254                        picmin = ostrcat(n_minute->pic, "", 0, 0);
255                if(digitaluhr == 1)
256                {
257                        n_stunde2 =  getscreennode(LCD_Samsung1, "stunde2");
258                        n_minute2 =  getscreennode(LCD_Samsung1, "minute2");
259                        picmin2 = ostrcat(n_minute2->pic, "", 0, 0);
260                        pichr2 = ostrcat(n_stunde2->pic, "", 0, 0);
261                }
262        }
263       
264        if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf75h") == 0)
265                LCD_Play = getscreen("LCD_spf75_Play");
266        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf83h") == 0)
267                LCD_Play = getscreen("LCD_spf83_Play");
268        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87h") == 0)
269                LCD_Play = getscreen("LCD_spf87_Play");
270        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87hold") == 0)
271                LCD_Play = getscreen("LCD_spf87_Play");
272        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf105p") == 0)
273                LCD_Play = getscreen("LCD_spf105_Play");
274        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf107h") == 0)
275                LCD_Play = getscreen("LCD_spf107_Play");
276        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf72h") == 0)
277                LCD_Play = getscreen("LCD_spf72_Play");
278        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85h") == 0)
279                LCD_Play = getscreen("LCD_spf85_Play");
280        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85p") == 0)
281                LCD_Play = getscreen("LCD_spf85_Play");
282        else
283                LCD_Play = getscreen("LCD_spf87_Play");
284        struct skin* akttimeplay = getscreennode(LCD_Play, "akttime");
285        struct skin* sprogress = getscreennode(LCD_Play, "progress");
286        struct skin* stitle = getscreennode(LCD_Play, "title1");
287        struct skin* spos = getscreennode(LCD_Play, "pos");
288        struct skin* slen = getscreennode(LCD_Play, "len");
289        struct skin* sreverse = getscreennode(LCD_Play, "reverse");
290               
291        if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf75h") == 0)
292        {
293                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
294                startlcd = ostrcat(startlcd, " 1", 1, 0);
295        }
296        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf83h") == 0)
297        {
298                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
299                startlcd = ostrcat(startlcd, " 6", 1, 0);
300        }
301        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87hold") == 0)
302        {
303                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
304                startlcd = ostrcat(startlcd, " 3", 1, 0);
305        }
306        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87h") == 0)
307        {
308                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
309                startlcd = ostrcat(startlcd, " 2", 1, 0);
310        }
311        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf105p") == 0)
312        {
313                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
314                startlcd = ostrcat(startlcd, " 5", 1, 0);
315        }
316        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf107h") == 0)
317        {
318                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
319                startlcd = ostrcat(startlcd, " 4", 1, 0);
320        }
321        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf72h") == 0)
322        {
323                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
324                startlcd = ostrcat(startlcd, " 7", 1, 0);
325        }
326        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85h") == 0)
327        {
328                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
329                startlcd = ostrcat(startlcd, " 8", 1, 0);
330        }
331        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85p") == 0)
332        {
333                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
334                startlcd = ostrcat(startlcd, " 9", 1, 0);
335        }
336        else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "none") == 0)
337        {
338                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
339                startlcd = ostrcat(startlcd, " 99", 1, 0);
340        }
341        else
342        {
343                startlcd = createpluginpath("/lcdsamsung/start.sh", 0);
344                startlcd = ostrcat(startlcd, " 2", 1, 0);
345        }
346       
347       
348        if(ostrcmp(getconfig("lcd_samsung_plugin_standby", NULL), "yes") == 0) 
349        {
350                if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf75h") == 0)
351                        LCD_Standby = getscreen("LCD_spf75_Standby");
352                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf83h") == 0)
353                        LCD_Standby = getscreen("LCD_spf83_Standby");
354                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87h") == 0)
355                        LCD_Standby = getscreen("LCD_spf87_Standby");
356                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf87hold") == 0)
357                        LCD_Standby = getscreen("LCD_spf87_Standby");
358                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf105p") == 0)
359                        LCD_Standby = getscreen("LCD_spf105_Standby");
360                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf107h") == 0)
361                        LCD_Standby = getscreen("LCD_spf107_Standby");
362                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf72h") == 0)
363                        LCD_Standby = getscreen("LCD_spf72_Standby");
364                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85h") == 0)
365                        LCD_Standby = getscreen("LCD_spf85_Standby");
366                else if(ostrcmp(getconfig("lcd_samsung_plugin_type", NULL), "spf85p") == 0)
367                        LCD_Standby = getscreen("LCD_spf85_Standby");
368                else
369                        LCD_Standby = getscreen("LCD_spf87_Standby");
370                akttime_Standby = getscreennode(LCD_Standby, "akttime"); 
371                sday0_t = getscreennode(LCD_Standby, "day0_t");
372                sday0_i = getscreennode(LCD_Standby, "day0_i");
373                sday0_d = getscreennode(LCD_Standby, "day0_d");
374                sday1_t = getscreennode(LCD_Standby, "day1_t");
375                sday1_i = getscreennode(LCD_Standby, "day1_i");
376                sday1_d = getscreennode(LCD_Standby, "day1_d");
377                sday2_t = getscreennode(LCD_Standby, "day2_t");
378                sday2_i = getscreennode(LCD_Standby, "day2_i");
379                sday2_d = getscreennode(LCD_Standby, "day2_d");
380                sday3_t = getscreennode(LCD_Standby, "day3_t");
381                sday3_i = getscreennode(LCD_Standby, "day3_i");
382                sday3_d = getscreennode(LCD_Standby, "day3_d");
383               
384                n_stunde_standby =  getscreennode(LCD_Standby, "stunde");
385                if(n_stunde_standby != NULL)
386                {
387                        pichr_standby = ostrcat(n_stunde_standby->pic, "", 0, 0);
388                        if(ostrstr(pichr_standby, "Digital") != NULL)
389                                digitaluhr_standby = 1;
390                }
391                n_minute_standby =  getscreennode(LCD_Standby, "minute");
392                if(n_minute_standby != NULL)
393                        picmin_standby = ostrcat(n_minute_standby->pic, "", 0, 0);
394                if(digitaluhr_standby == 1)
395                {
396                        n_stunde2_standby =  getscreennode(LCD_Standby, "stunde2");
397                        n_minute2_standby =  getscreennode(LCD_Standby, "minute2");
398                        picmin2_standby = ostrcat(n_minute2_standby->pic, "", 0, 0);
399                        pichr2_standby = ostrcat(n_stunde2_standby->pic, "", 0, 0);
400                }
401        } 
402       
403       
404        int put = 0, typemerk = 0, type = 0;
405        int standby = 0;
406       
407        unsigned long long int pos = 0, len = 0, reverse = 0;
408        int playertype = 0;
409        int loopcount = 0;
410       
411        int hr = 0, min = 0;
412       
413        if(firststart == 1)
414                sleep(8);
415        firststart = 0;
416        status.write_png = 0;
417        //if(ostrcmp(getconfig("write_fb_to_jpg", NULL), "yes") == 0)
418        //      status.write_png = 1;
419       
420        while (LCD_Samsung1thread->aktion != STOP) {
421
422                tmpstr = gettime(NULL, "%H:%M");
423                hr = atoi(gettime(NULL, "%H"));
424                min = atoi(gettime(NULL, "%M"));
425               
426                // TV Programm läuft
427                if(status.infobaraktiv == 1)
428                {
429                        if(ostrcmp(getconfig("write_fb_to_jpg", NULL), "yes") == 0) {
430                                //status.write_png = 1;
431                                if(type == 999)
432                                        system("killall -3 fbread");
433                        }
434                        tmpstr2 = getaktchannelname(NULL);
435                        tmpstr3 = getrec(NULL, NULL);
436                        type = 1;
437                }
438                // Aufzeichnung wird abgespielt
439                else if(status.playspeed != 0 || status.play != 0 || status.pause != 0)
440                {
441                        if(type == 999)
442                                system("killall -3 fbread");
443                        //status.write_png = 0;
444                        loopcount++ ;
445                        type = 2;
446                }
447                // Sonstige Anzeigen
448                else if(type != 999)
449                {
450                        if(ostrcmp(getconfig("write_fb_to_jpg", NULL), "yes") == 0) {
451                                //status.write_png = 1;
452                                system("killall -1 fbread");
453                        }
454                        type = 999;
455                }
456                else
457                        type = 999;
458               
459                if(typemerk != type)
460                {
461                        put = 1;
462                        typemerk = type;
463                        free(sendermerk);sendermerk=NULL;
464                        free(recmerk);recmerk=NULL;
465                        loopcount = 0;
466                }
467                else
468                        put = 0;
469
470                if(status.standby > 0 && standby == 0)
471                {
472                        if(ostrcmp(getconfig("lcd_samsung_plugin_standby", NULL), "yes") == 0)
473                                standby = 2;
474                        else
475                        {
476                                tmpstr = createpluginpath("/lcdsamsung/standby.jpg", 0);
477                                tmpstr = ostrcat("cp ", tmpstr, 0, 1);
478                                tmpstr = ostrcat(tmpstr, " /tmp/titanlcd.png", 1, 0);
479                                system(tmpstr);
480                                free(tmpstr); tmpstr=NULL;
481                                sleep(3);
482                               
483                                tmpstr = createpluginpath("/lcdsamsung/black.jpg", 0);
484                                tmpstr = ostrcat("cp ", tmpstr, 0, 1);
485                                tmpstr = ostrcat(tmpstr, " /tmp/titanlcd.png", 1, 0);
486                                system(tmpstr);
487                                sleep(2);
488                                system("killall fbread");
489                                standby = 1;
490                        }
491                }
492                if(status.standby == 0 && standby > 0)
493                {
494                        if(standby == 1)
495                                system(startlcd);
496                        standby = 0;
497                        put = 1;
498                }
499       
500                if(weatherthread == NULL && weatherwrite == 0) 
501                { 
502                        if(file_exist("/tmp/lcdweather")) 
503                                put = 1; 
504                }                       
505                if(ostrcmp(tmpstr, timemerk) != 0)
506                {
507                        free(timemerk);timemerk=NULL;
508                        timemerk = ostrcat(tmpstr, "", 0, 0);
509                        put = 1;
510                } 
511
512                if(standby == 0 || standby == 2 )
513                {
514                        if(type == 1 && standby == 0)
515                        {
516                                if(ostrcmp(tmpstr2, sendermerk) != 0)
517                                {
518                                        free(sendermerk);sendermerk=NULL;
519                                        sendermerk = ostrcat(tmpstr2, "", 0, 0);
520                                        put = 1;
521                                } 
522                                if(tmpstr3 == NULL && recmerk != NULL)
523                                {
524                                        put = 1;
525                                        free(recmerk);recmerk=NULL;
526                                }
527                                else if(tmpstr3 != NULL && recmerk == NULL)
528                                {
529                                        free(recmerk);recmerk=NULL;
530                                        recmerk = ostrcat(tmpstr3, "", 0, 0);
531                                        put = 1;
532                                }
533                        }
534                        else if(type == 2)
535                        {
536                                if(loopcount >= 15)
537                                {
538                                        put = 1;
539                                        loopcount = 0;
540                                }
541                        }       
542                       
543                        if(put == 1)
544                        {
545                                if(type == 1)
546                                {
547                                        // Wettervorhersage
548                                        printf("lcd_samsung wetter = %s\n", getconfig("lcd_samsung_plugin_wetter", NULL));
549                                        if(ostrcmp(getconfig("lcd_samsung_plugin_wetter", NULL), "yes") == 0)
550                                        {
551                                                if(weatherwrite == 0)
552                                                {
553                                                        printf("lcd_samsung weatherwrite=0\n");
554                                                        if(weatherthread == NULL)
555                                                        {
556                                                                printf("lcd_samsung weatherthread=NULL\n");
557                                                                if(!file_exist("/tmp/lcdweather"))
558                                                                        weatherthread = addtimer(&lcd_writeweather, START, 10000, 1, NULL, NULL, NULL);
559                                                                else
560                                                                {
561                                                                        fileline = malloc(256);
562                                                                        if(fileline != NULL)
563                                                                        {
564                                                                                fd = fopen("/tmp/lcdweather", "r");
565                                                                                if(fd != NULL)
566                                                                                {
567                                                                                        if(ostrcmp(getconfig("lcd_samsung_plugin_standby", NULL), "yes") == 0) 
568                                                                                        {
569                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
570                                                                                                changetext(day0_d, fileline);
571                                                                                                changetext(sday0_d, fileline);
572                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
573                                                                                                changetext(day0_t, fileline);
574                                                                                                changetext(sday0_t, fileline);
575                                                                                                weather_getline(fd, fileline);
576                                                                                                weather_getline(fd, fileline);
577                                                                                                changepic(day0_i, fileline);
578                                                                                                changepic(sday0_i, fileline);
579                                                                                       
580                                                                                                weather_getline(fd, fileline);
581                                                                                                changetext(day1_d, fileline);
582                                                                                                changetext(sday1_d, fileline);
583                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
584                                                                                                changetext(day1_t, fileline);
585                                                                                                changetext(sday1_t, fileline);
586                                                                                                weather_getline(fd, fileline);
587                                                                                                weather_getline(fd, fileline);
588                                                                                                changepic(day1_i, fileline);
589                                                                                                changepic(sday1_i, fileline);
590                                                                                       
591                                                                                                weather_getline(fd, fileline);
592                                                                                                changetext(day2_d, fileline);
593                                                                                                changetext(sday2_d, fileline);
594                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
595                                                                                                changetext(day2_t, fileline);
596                                                                                                changetext(sday2_t, fileline);
597                                                                                                weather_getline(fd, fileline);
598                                                                                                weather_getline(fd, fileline);
599                                                                                                changepic(day2_i, fileline);
600                                                                                                changepic(sday2_i, fileline);
601                                                                                       
602                                                                                                weather_getline(fd, fileline);
603                                                                                                changetext(day3_d, fileline);
604                                                                                                changetext(sday3_d, fileline);
605                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
606                                                                                                changetext(day3_t, fileline);
607                                                                                                changetext(sday3_t, fileline);
608                                                                                                weather_getline(fd, fileline);
609                                                                                                weather_getline(fd, fileline);
610                                                                                                changepic(day3_i, fileline);
611                                                                                                changepic(sday3_i, fileline);
612                                                                                        }
613                                                                                        else
614                                                                                        {
615                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
616                                                                                                changetext(day0_d, fileline);
617                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
618                                                                                                changetext(day0_t, fileline);
619                                                                                                weather_getline(fd, fileline);
620                                                                                                weather_getline(fd, fileline);
621                                                                                                changepic(day0_i, fileline);
622                                                                                       
623                                                                                                weather_getline(fd, fileline);
624                                                                                                changetext(day1_d, fileline);
625                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
626                                                                                                changetext(day1_t, fileline);
627                                                                                                weather_getline(fd, fileline);
628                                                                                                weather_getline(fd, fileline);
629                                                                                                changepic(day1_i, fileline);
630                                                                                       
631                                                                                                weather_getline(fd, fileline);
632                                                                                                changetext(day2_d, fileline);
633                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
634                                                                                                changetext(day2_t, fileline);
635                                                                                                weather_getline(fd, fileline);
636                                                                                                weather_getline(fd, fileline);
637                                                                                                changepic(day2_i, fileline);
638                                                                                       
639                                                                                                weather_getline(fd, fileline);
640                                                                                                changetext(day3_d, fileline);
641                                                                                                weather_getline(fd, fileline);weather_getline(fd, fileline);
642                                                                                                changetext(day3_t, fileline);
643                                                                                                weather_getline(fd, fileline);
644                                                                                                weather_getline(fd, fileline);
645                                                                                                changepic(day3_i, fileline);
646                                                                                        }
647                                                                                        fclose(fd);
648                                                                                }
649                                                                                free(fileline); fileline=NULL;
650                                                                        }
651                                                                        weatherwrite = 1;
652                                                                }                                                               
653                                                        }
654                                                }               
655                                        }
656                                        if(standby == 0)
657                                        {
658                                                if(akttime != NULL)
659                                                        changetext(akttime, tmpstr);
660                                                if(n_minute != NULL && digitaluhr == 0)
661                                                {
662                                                        free(tmpstr);tmpstr=NULL;
663                                                        tmpstr = ostrcat("min_",gettime(NULL, "%M"), 0, 0);
664                                                        free(n_minute->pic);
665                                                        n_minute->pic = string_replace("min_mm", tmpstr, picmin, 0);
666                                                        free(tmpstr);tmpstr=NULL;
667                                                }
668                                                if(n_stunde != NULL && digitaluhr == 0)
669                                                {
670                                                        free(tmpstr);tmpstr=NULL;
671                                                        if(hr >= 12)
672                                                                hr = hr - 12;
673                                                        if(hr < 10)
674                                                                tmpstr = ostrcat("hr_0",oitoa(hr), 0, 1);
675                                                        else
676                                                                tmpstr = ostrcat("hr_",oitoa(hr), 0, 1);
677                                                        if(min < 12)
678                                                                tmpstr = ostrcat(tmpstr,"00", 0, 0);
679                                                        else if(min < 24)
680                                                                tmpstr = ostrcat(tmpstr,"12", 0, 0);
681                                                        else if(min < 36)
682                                                                tmpstr = ostrcat(tmpstr,"24", 0, 0);
683                                                        else if(min < 48)
684                                                         tmpstr = ostrcat(tmpstr,"36", 0, 0);
685                                                        else if(min < 60)
686                                                         tmpstr = ostrcat(tmpstr,"48", 0, 0);                                                           
687                                                        free(n_stunde->pic);
688                                                        n_stunde->pic = string_replace("hr_hhmm", tmpstr, pichr, 0);
689                                                        free(tmpstr);tmpstr=NULL;
690                                                }
691                                                if(digitaluhr == 1)
692                                                {
693                                                        free(tmpstr);tmpstr=NULL;
694                                                        tmpstr = ostrcat("wert_",oitoa(hr/10), 0, 1);
695                                                        n_stunde->pic = string_replace("wert_w", tmpstr, pichr, 0);     
696                                                        free(tmpstr);tmpstr=NULL;
697                                                        tmpstr = ostrcat("wert_",oitoa(hr%10), 0, 1);
698                                                        n_stunde2->pic = string_replace("wert_w", tmpstr, pichr2, 0);   
699                                                        free(tmpstr);tmpstr=NULL;
700                                                        tmpstr = ostrcat("wert_",oitoa(min/10), 0, 1);
701                                                        n_minute->pic = string_replace("wert_w", tmpstr, picmin, 0);   
702                                                        free(tmpstr);tmpstr=NULL;
703                                                        tmpstr = ostrcat("wert_",oitoa(min%10), 0, 1);
704                                                        n_minute2->pic = string_replace("wert_w", tmpstr, picmin2, 0);
705                                                        free(tmpstr);tmpstr=NULL;
706                                                }       
707                                                       
708                                                m_lock(&status.drawingmutex, 0);               
709                                                if(drawscreen(LCD_Samsung1, 0, 2) == -2)
710                                                        printf("nicht genug Speicher fuer drawscreen\n");
711                                                m_unlock(&status.drawingmutex, 0);
712                                        }
713                                        else if(standby == 2)
714                                        {
715                                                if(akttime_Standby != NULL)
716                                                        changetext(akttime_Standby, tmpstr); 
717                                                if(n_minute_standby != NULL && digitaluhr_standby == 0)
718                                                {
719                                                        free(tmpstr);tmpstr=NULL;
720                                                        tmpstr = ostrcat("min_",gettime(NULL, "%M"), 0, 0);
721                                                        free(n_minute_standby->pic);
722                                                        n_minute_standby->pic = string_replace("min_mm", tmpstr, picmin_standby, 0);
723                                                        free(tmpstr);tmpstr=NULL;
724                                                }
725                                                if(n_stunde_standby != NULL && digitaluhr_standby == 0)
726                                                {
727                                                        free(tmpstr);tmpstr=NULL;
728                                                        if(hr >= 12)
729                                                                hr = hr - 12;
730                                                        if(hr < 10)
731                                                                tmpstr = ostrcat("hr_0",oitoa(hr), 0, 1);
732                                                        else
733                                                                tmpstr = ostrcat("hr_",oitoa(hr), 0, 1);
734                                                        if(min < 12)
735                                                                tmpstr = ostrcat(tmpstr,"00", 0, 0);
736                                                        else if(min < 24)
737                                                                tmpstr = ostrcat(tmpstr,"12", 0, 0);
738                                                        else if(min < 36)
739                                                                tmpstr = ostrcat(tmpstr,"24", 0, 0);
740                                                        else if(min < 48)
741                                                         tmpstr = ostrcat(tmpstr,"36", 0, 0);
742                                                        else if(min < 60)
743                                                         tmpstr = ostrcat(tmpstr,"48", 0, 0);                                                           
744                                                        free(n_stunde_standby->pic);
745                                                        n_stunde_standby->pic = string_replace("hr_hhmm", tmpstr, pichr_standby, 0);
746                                                        free(tmpstr);tmpstr=NULL;
747                                                }       
748                                                if(digitaluhr_standby == 1)
749                                                {
750                                                        free(tmpstr);tmpstr=NULL;
751                                                        tmpstr = ostrcat("wert_",oitoa(hr/10), 0, 1);
752                                                        n_stunde_standby->pic = string_replace("wert_w", tmpstr, pichr_standby, 0);     
753                                                        free(tmpstr);tmpstr=NULL;
754                                                        tmpstr = ostrcat("wert_",oitoa(hr%10), 0, 1);
755                                                        n_stunde2_standby->pic = string_replace("wert_w", tmpstr, pichr2_standby, 0);   
756                                                        free(tmpstr);tmpstr=NULL;
757                                                        tmpstr = ostrcat("wert_",oitoa(min/10), 0, 1);
758                                                        n_minute_standby->pic = string_replace("wert_w", tmpstr, picmin_standby, 0);   
759                                                        free(tmpstr);tmpstr=NULL;
760                                                        tmpstr = ostrcat("wert_",oitoa(min%10), 0, 1);
761                                                        n_minute2_standby->pic = string_replace("wert_w", tmpstr, picmin2_standby, 0);
762                                                        free(tmpstr);tmpstr=NULL;
763                                                }       
764                                                m_lock(&status.drawingmutex, 0);
765                                                drawscreen(LCD_Standby, 0, 2); 
766                                                m_unlock(&status.drawingmutex, 0);
767                                                put = 0;
768                                        } 
769                                }
770                                else if(type == 2)
771                                {
772                                        if(status.mcaktiv == 1)
773                                                playertype = 0;
774                                        else   
775                                                playertype = getconfigint("playertype", NULL);
776               
777                                        if(playertype == 1)
778                                        {
779                                                unsigned long long int startpos = 0;
780                                                playergetinfots(&len, &startpos, NULL, &pos, NULL, 0);
781                                                len = len / 90000;
782                                                pos = (pos - startpos) / 90000;
783                                        }
784                                        else
785                                        {
786                                                pos = playergetpts() / 90000;
787                                                len = playergetlength();
788                                        }
789                                        if(pos < 0) pos = 0;
790                                        reverse = len - pos;
791                                        if(len == 0)
792                                                sprogress->progresssize = 0;
793                                        else
794                                                sprogress->progresssize = pos * 100 / len;
795                                       
796                                        tmpstr2 = convert_timesec(pos);
797                                        changetext(spos, tmpstr2);
798                                        free(tmpstr2); tmpstr2 = NULL;
799
800                                        tmpstr2 = convert_timesec(len);
801                                        changetext(slen, tmpstr2);
802                                        free(tmpstr2); tmpstr2 = NULL;
803
804                                        tmpstr2 = convert_timesec(reverse);
805                                        changetext(sreverse, tmpstr2);
806                                        free(tmpstr2); tmpstr2 = NULL;
807                                       
808                                        changetext(akttimeplay, tmpstr);
809                                        changetext(stitle, basename(status.playfile));
810                                        m_lock(&status.drawingmutex, 0);
811                                        if(drawscreen(LCD_Play, 0, 2) == -2)
812                                                printf("nicht genug Speicher fuer drawscreen\n");
813                                        m_unlock(&status.drawingmutex, 0);
814                                }
815                        }
816                }
817                else
818                {
819                        if(standby == 2) 
820                        {       
821                                if(put == 1) 
822                                {       
823                                        changetext(akttime_Standby, tmpstr);
824                                        m_lock(&status.drawingmutex, 0);
825                                        drawscreen(LCD_Standby, 0, 2); 
826                                        m_unlock(&status.drawingmutex, 0);
827                                        put = 0; 
828                                } 
829                        } 
830                }
831
832                free(tmpstr); tmpstr = NULL;
833                free(tmpstr2); tmpstr2 = NULL;
834                free(tmpstr3); tmpstr3 = NULL;
835                //sleep(1);
836                usleep(500000);
837               
838                if(ostrcmp(getconfig("lcd_samsung_plugin_wetter", NULL), "yes") == 0)
839                {
840                        weatherref = weatherref + 1;
841                        if(weatherref == 7200)
842                        {
843                                weatherwrite = 0;
844                                system("rm /tmp/lcdweather");
845                                weatherref = 0;
846                        }
847                }
848        }
849        free(timemerk);timemerk=NULL;
850        free(sendermerk);sendermerk=NULL;
851        free(recmerk);recmerk=NULL;
852        free(startlcd);startlcd=NULL;
853        free(pichr);pichr=NULL;
854        free(picmin);picmin=NULL;
855        free(pichr_standby);pichr=NULL;
856        free(picmin_standby);picmin=NULL;
857        free(pichr2);pichr2=NULL;
858        free(picmin2);picmin2=NULL;
859        free(pichr2_standby);pichr2_standby=NULL;
860        free(picmin2_standby);picmin2_standby=NULL;
861        addconfig("lcd_samsung_plugin_running", "no");
862        LCD_Samsung1thread = NULL;
863        m_lock(&status.drawingmutex, 0);
864        if(drawscreen(LCD_Samsung1, 0, 2) == -2)
865                printf("nicht genug Speicher fuer drawscreen\n");
866        m_unlock(&status.drawingmutex, 0);
867        //status.write_png = 0;
868        return;
869}
870
871void LCD_Samsung1_main()
872{
873        if(LCD_Samsung1thread == NULL)
874        {
875                char* tmpstr = NULL;
876               
877                tmpstr = createpluginpath("/lcdsamsung/start.png", 0);
878                tmpstr = ostrcat("cp ", tmpstr, 0, 1);
879                tmpstr = ostrcat(tmpstr, " /tmp/titanlcd.png", 1, 0);
880                system(tmpstr);
881                free(tmpstr); tmpstr=NULL;
882                addconfig("lcd_samsung_plugin_running", "yes");
883                LCD_Samsung1thread = addtimer(&LCD_Samsung1_thread, START, 10000, 1, NULL, NULL, NULL);
884                addtimer(&LCD_start_lcd4linux, START, 10000, 1, NULL, NULL, NULL);
885                sleep(1);
886        }
887        else
888        {
889                        LCD_Samsung1thread->aktion = STOP;
890                        system("echo ende > /tmp/titanlcd.jpg");
891                        sleep(1);
892                        system("killall fbread");
893        }
894}       
895                       
896//wird beim laden ausgefuehrt
897void init(void)
898{
899        char* tmpstr = NULL;
900        pluginaktiv = 1;
901        firststart = 1;
902
903        tmpstr = ostrcat("/var/usr/local/share/titan/plugins/lcdsamsung/skin2.xml", NULL, 0, 0);
904        if(!file_exist(tmpstr))
905        {
906                free(tmpstr); tmpstr = NULL;
907                tmpstr = ostrcat("/var/swap/usr/local/share/titan/plugins/lcdsamsung/skin2.xml", NULL, 0, 0);
908        }
909        if(!file_exist(tmpstr))
910        {
911                free(tmpstr); tmpstr = NULL;
912                tmpstr = ostrcat("/mnt/swapextensions/usr/local/share/titan/plugins/lcdsamsung/skin2.xml", NULL, 0, 0);
913        }
914        if(!file_exist(tmpstr))
915        {
916                free(tmpstr); tmpstr = NULL;
917                tmpstr = createpluginpath("/lcdsamsung/skin.xml", 0);
918        }
919
920        printf("use skin: %s\n", tmpstr);
921
922        readscreen(tmpstr, 119, 1);
923        free(tmpstr); tmpstr = NULL;
924       
925        tmpstr = createpluginpath("/lcdsamsung/black.jpg", 0);
926        tmpstr = ostrcat("cp ", tmpstr, 0, 1);
927        tmpstr = ostrcat(tmpstr, " /tmp/fbreadstop.jpg", 1, 0);
928               
929        system(tmpstr);
930        free(tmpstr); tmpstr = NULL;
931        system("killall fbread");
932        debug(10, "LCD Samsung SPF.. loadet !!!");
933        tmpstr = getconfig("lcd_samsung_plugin_running", NULL);
934        if(ostrcmp(tmpstr, "yes") == 0)
935                LCD_Samsung1_main();
936        tmpstr = NULL;
937}
938
939//wird beim entladen ausgefuehrt
940void deinit(void)
941{
942        delmarkedscreen(119);
943        pluginaktiv = 0;
944        system("echo ende > /tmp/titanlcd.png");
945        sleep(1);
946        system("killall fbread");
947        debug(10, "LCD Samsung unloadet !!!");
948}
949
950
951//wird in der Pluginverwaltung bzw Menue ausfeguehrt
952void start(void)
953{
954        struct skin* samsung1_main = getscreen("samsung1_main");
955        struct skin* listbox = getscreennode(samsung1_main, "listbox");
956        struct skin* lcdtype = getscreennode(samsung1_main, "lcdtype");
957        struct skin* allmenu = getscreennode(samsung1_main, "allmenu");
958        struct skin* aktstandby = getscreennode(samsung1_main, "aktstandby");
959        struct skin* wettervor = getscreennode(samsung1_main, "wettervor");
960        struct skin* wettervorort = getscreennode(samsung1_main, "wettervorort"); 
961        //struct skin* wettervorplz = getscreennode(samsung1_main, "wettervorplz");
962        //struct skin* wettervorland = getscreennode(samsung1_main, "wettervorland");
963        struct skin* b3 = getscreennode(samsung1_main, "b3");
964        struct skin* tmp = NULL;
965       
966        int rcret = 0;
967        int startstop = 0;
968        int restart = 0;
969       
970  if(getconfig("lcd_samsung_plugin_wetter", NULL) == NULL || ostrcmp(getconfig("lcd_samsung_plugin_wetter", NULL), "no")  == 0)
971  {
972        //wettervorplz->hidden = YES;
973        //wettervorland->hidden = YES;
974        wettervorort->hidden = YES;
975  }
976   
977  addchoicebox(lcdtype, "spf72h", _("SPF-72H"));
978  addchoicebox(lcdtype, "spf75h", _("SPF-75H"));
979  addchoicebox(lcdtype, "spf83h", _("SPF-83H"));
980  addchoicebox(lcdtype, "spf85h", _("SPF-85H"));
981  addchoicebox(lcdtype, "spf85p", _("SPF-85P"));
982  addchoicebox(lcdtype, "spf87h", _("SPF-87H"));
983  addchoicebox(lcdtype, "spf87hold", _("SPF-87H-old"));
984  addchoicebox(lcdtype, "spf105p", _("SPF-105P"));
985  addchoicebox(lcdtype, "spf107h", _("SPF-107H"));
986  addchoicebox(lcdtype, "none", _("tiMote"));
987        setchoiceboxselection(lcdtype, getconfig("lcd_samsung_plugin_type", NULL));
988       
989        addchoicebox(allmenu, "no", _("nein"));
990        addchoicebox(allmenu, "yes", _("ja"));
991        setchoiceboxselection(allmenu, getconfig("write_fb_to_jpg", NULL));
992       
993        addchoicebox(aktstandby, "no", _("nein")); 
994        addchoicebox(aktstandby, "yes", _("ja")); 
995        setchoiceboxselection(aktstandby, getconfig("lcd_samsung_plugin_standby", NULL)); 
996       
997        addchoicebox(wettervor, "no", _("nein"));
998  addchoicebox(wettervor, "yes", _("ja"));
999        setchoiceboxselection(wettervor, getconfig("lcd_samsung_plugin_wetter", NULL));
1000       
1001        //changemask(wettervorplz, "0000");
1002        //if(getconfig("lcd_samsung_plugin_wetterplz", NULL) == NULL)
1003        //      changeinput(wettervorplz, "10407");
1004        //else
1005        //      changeinput(wettervorplz, getconfig("lcd_samsung_plugin_wetterplz", NULL));
1006               
1007        //changemask(wettervorland, "abcdefghijklmnopqrstuvwxyz");
1008        //if(getconfig("lcd_samsung_plugin_wetterland", NULL) == NULL)
1009        //      changeinput(wettervorland, "Germany");
1010        //else
1011        //      changeinput(wettervorland, getconfig("lcd_samsung_plugin_wetterland", NULL));
1012       
1013        changemask(wettervorort, "abcdefghijklmnopqrstuvwxyz"); 
1014        if(getconfig("lcd_samsung_plugin_wetterort", NULL) == NULL) 
1015                changeinput(wettervorort, "Berlin        "); 
1016        else
1017                changeinput(wettervorort, getconfig("lcd_samsung_plugin_wetterort", NULL));     
1018       
1019        if(LCD_Samsung1thread != NULL)
1020                changetext(b3, "STOP");
1021        else
1022                changetext(b3, "START");
1023               
1024        drawscreen(samsung1_main, 0, 0);
1025        addscreenrc(samsung1_main, listbox);
1026        tmp = listbox->select;
1027       
1028        while(1)
1029        {
1030                addscreenrc(samsung1_main, tmp);
1031                rcret = waitrc(samsung1_main, 0, 0);
1032                tmp = listbox->select;
1033               
1034                if((rcret == getrcconfigint("rcleft", NULL) || rcret == getrcconfigint("rcright", NULL)) && listbox->select != NULL && ostrcmp(listbox->select->name, "wettervor") == 0)
1035                {
1036                        if(ostrcmp(wettervor->ret, "yes") == 0)
1037                        {
1038                                //wettervorplz->hidden = NO;
1039                        //wettervorland->hidden = NO;
1040                        wettervorort->hidden = NO;
1041                        } else {
1042                                //wettervorplz->hidden = YES;
1043                        //wettervorland->hidden = YES;
1044                        wettervorort->hidden = YES;
1045                }
1046                       
1047                        drawscreen(samsung1_main, 0, 0);
1048                }
1049                                       
1050                if(rcret == getrcconfigint("rcexit", NULL))
1051                        break;
1052                if(rcret == getrcconfigint("rcgreen", NULL))
1053                {
1054                        addconfig("lcd_samsung_plugin_type", lcdtype->ret);
1055                        addconfig("write_fb_to_jpg", allmenu->ret);
1056                        addconfig("lcd_samsung_plugin_standby", aktstandby->ret);
1057                        addconfig("lcd_samsung_plugin_wetter", wettervor->ret);
1058                        addconfig("lcd_samsung_plugin_wetterort", wettervorort->ret); 
1059                        //addconfig("lcd_samsung_plugin_wetterplz", wettervorplz->ret);
1060                        //addconfig("lcd_samsung_plugin_wetterland", wettervorland->ret);
1061                        restart = 1;
1062                        break;
1063                }
1064                       
1065                if(rcret == getrcconfigint("rcblue", NULL))
1066                {
1067                        addconfig("lcd_samsung_plugin_type", lcdtype->ret);
1068                        addconfig("write_fb_to_jpg", allmenu->ret);
1069                        addconfig("lcd_samsung_plugin_standby", aktstandby->ret);
1070                        addconfig("lcd_samsung_plugin_wetter", wettervor->ret);
1071                        addconfig("lcd_samsung_plugin_wetterort", wettervorort->ret); 
1072                        //addconfig("lcd_samsung_plugin_wetterplz", wettervorplz->ret);
1073                        //addconfig("lcd_samsung_plugin_wetterland", wettervorland->ret);
1074                        startstop = 1;
1075                        break;
1076                }
1077        }
1078        delownerrc(samsung1_main);
1079        clearscreen(samsung1_main);
1080       
1081        if(LCD_Samsung1thread != NULL && restart == 1)
1082        {
1083                LCD_Samsung1thread->aktion = STOP;
1084                system("killall fbread");       
1085                sleep(2);
1086                addtimer(&LCD_start_lcd4linux, START, 10000, 1, NULL, NULL, NULL);
1087                LCD_Samsung1thread = addtimer(&LCD_Samsung1_thread, START, 10000, 1, NULL, NULL, NULL);
1088                sleep(1);
1089                return;
1090        }
1091        if(startstop == 1)
1092        {
1093                if(LCD_Samsung1thread != NULL)
1094                {
1095                        addconfig("lcd_samsung_plugin_running", "no");
1096                        LCD_Samsung1thread->aktion = STOP;
1097                        sleep(1);
1098                        system("killall fbread");
1099                        debug(10, "LCD Samsung unloadet !!!"); 
1100                        sleep(1);
1101                }
1102                else {
1103                        addconfig("lcd_samsung_plugin_running", "yes");
1104                        firststart = 1;
1105                        LCD_Samsung1_main();
1106                }
1107        }
1108}
Note: See TracBrowser for help on using the repository browser.