source: titan/plugins/sispmctl/sispmctl.h @ 41771

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

[plugin] sispmctl fix

  • Property svn:executable set to *
File size: 28.2 KB
Line 
1//#ifndef SISPMCTL_H
2//#define SISPMCTL_H
3
4
5
6struct clist *myconfig[LISTHASHSIZE] = {NULL};
7char* sispmctlconf = NULL;
8struct stimerthread* sispmctl_checkthread = NULL;
9int startextern = 0;
10int stopextern = 0;
11
12int sispmctl_Anzeige()
13{
14        int anzmenu = 0;
15        int ende = 0;
16        int rcret = 0;
17        int statb1 = 0;
18        int statb2 = 0;
19        int statb3 = 0;
20        int statb4 = 0;
21       
22        char* zeile = NULL;
23        char* cmd = NULL;
24       
25        char* red = NULL;
26        char* yellow = NULL;
27        char* green = NULL;
28        char* menu = NULL;
29
30        struct skin* load = getscreen("loading");
31
32        struct skin* sis_anzeige = getscreen("sis_anzeige");
33        struct skin* buttonbar = getscreennode(sis_anzeige, "buttonbar");
34        struct skin* b1 = getscreennode(sis_anzeige, "b1");
35        struct skin* b2 = getscreennode(sis_anzeige, "b2");
36        struct skin* b3 = getscreennode(sis_anzeige, "b3");
37        struct skin* b4 = getscreennode(sis_anzeige, "b4");
38        struct skin* m1 = getscreennode(sis_anzeige, "m1");
39       
40        struct skin* tmp = NULL;
41       
42        red = createpluginpath("/sispmctl/picons/key_red_22.png", 0);
43        yellow = createpluginpath("/sispmctl/picons/key_yellow_22.png", 0);
44        green = createpluginpath("/sispmctl/picons/key_green_22.png", 0);
45        menu = createpluginpath("/sispmctl/picons/key_menu_70x40.png", 0);
46       
47        changetext(b1, getlist(myconfig, "g1_name", NULL));
48        changetext(b2, getlist(myconfig, "g2_name", NULL));
49        changetext(b3, getlist(myconfig, "g3_name", NULL));
50        changetext(b4, getlist(myconfig, "g4_name", NULL));
51       
52       
53        while(1)
54        {       
55                drawscreen(load, 0, 0);
56                ende = 0;
57                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -g1 > /tmp/helpsis", 0, 0);
58                system(cmd);
59                free(cmd); cmd = NULL;
60                zeile = readsys("/tmp/helpsis", 2);
61                printf("->%s<-\n", zeile);
62                if(zeile == NULL)
63                {
64                        changepic(b1, yellow);
65                        changepic(b2, yellow);
66                        changepic(b3, yellow);
67                        changepic(b4, yellow);
68                        statb1 = 2;
69                        statb2 = 2;
70                        statb3 = 2;
71                        statb4 = 2;
72                }
73                else
74                {
75                        if(ostrstr(zeile, "on") != NULL)
76                        {
77                                changepic(b1, green);
78                                statb1 = 1;
79                        }
80                        else
81                        {
82                                changepic(b1, red);
83                                statb1 = 0;
84                        }
85                        free(zeile); zeile = NULL;
86               
87                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -g2 > /tmp/helpsis", 0, 0);
88                        system(cmd);
89                        free(cmd); cmd = NULL;
90                        zeile = readsys("/tmp/helpsis", 2);
91                        if(ostrstr(zeile, "on") != NULL)
92                        {
93                                changepic(b2, green);
94                                statb2 = 1;
95                        }
96                        else
97                        {
98                                changepic(b2, red);
99                                statb2 = 0;
100                        }
101                        free(zeile); zeile = NULL;
102                       
103                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -g3 > /tmp/helpsis", 0, 0);
104                        system(cmd);
105                        free(cmd); cmd = NULL;
106                        zeile = readsys("/tmp/helpsis", 2);
107                        if(ostrstr(zeile, "on") != NULL)
108                        {
109                                changepic(b3, green);
110                                statb3 = 1;
111                        }
112                        else
113                        {
114                                changepic(b3, red);
115                                statb3 = 0;
116                        }
117                        free(zeile); zeile = NULL;
118               
119                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -g4 > /tmp/helpsis", 0, 0);
120                        system(cmd);
121                        free(cmd); cmd = NULL;
122                        zeile = readsys("/tmp/helpsis", 2);
123                        if(ostrstr(zeile, "on") != NULL)
124                        {
125                                changepic(b4, green);
126                                statb4 = 1;
127                        }
128                        else
129                        {
130                                changepic(b4, red);
131                                statb4 = 0;
132                        }
133                        free(zeile); zeile = NULL;
134                }
135                changepic(m1, menu);
136               
137                clearscreen(load);
138       
139                drawscreen(sis_anzeige, 0, 0);
140                addscreenrc(sis_anzeige, buttonbar);
141                tmp = buttonbar->select;
142       
143                while(1)
144                {
145                        addscreenrc(sis_anzeige, tmp);
146                        rcret = waitrc(sis_anzeige, 1000, 0);
147                        tmp = buttonbar->select;
148                        if(rcret == getrcconfigint("rcok", NULL))
149                        {                       
150                                if(buttonbar->select != NULL && ostrcmp(buttonbar->select->name, "b1") == 0)
151                                {
152                                        if(statb1 == 0) 
153                                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o1 > /tmp/helpsis", 0, 0);
154                                        else
155                                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -f1 > /tmp/helpsis", 0, 0);
156                                        system(cmd);
157                                        free(cmd); cmd = NULL;
158                                        break;
159                                }
160                                if(buttonbar->select != NULL && ostrcmp(buttonbar->select->name, "b2") == 0)
161                                {
162                                        if(statb2 == 0) 
163                                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o2 > /tmp/helpsis", 0, 0);
164                                        else
165                                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -f2 > /tmp/helpsis", 0, 0);
166                                        system(cmd);
167                                        free(cmd); cmd = NULL;
168                                        break;
169                                }
170                                if(buttonbar->select != NULL && ostrcmp(buttonbar->select->name, "b3") == 0)
171                                {
172                                        if(statb3 == 0) 
173                                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o3 > /tmp/helpsis", 0, 0);
174                                        else
175                                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -f3 > /tmp/helpsis", 0, 0);
176                                        system(cmd);
177                                        free(cmd); cmd = NULL;
178                                        break;
179                                }
180                                if(buttonbar->select != NULL && ostrcmp(buttonbar->select->name, "b4") == 0)
181                                {
182                                        if(statb4 == 0) 
183                                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o4 > /tmp/helpsis", 0, 0);
184                                        else
185                                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -f4 > /tmp/helpsis", 0, 0);
186                                        system(cmd);
187                                        free(cmd); cmd = NULL;
188                                        break;
189                                }
190                                if(buttonbar->select != NULL && ostrcmp(buttonbar->select->name, "m1") == 0)
191                                {
192                                        ende = 1;
193                                        anzmenu = 1;
194                                        break; 
195                                }                               
196                        }
197                        if(rcret == getrcconfigint("rcexit", NULL))
198                        {
199                                anzmenu = 0;
200                                ende = 1;
201                                break;
202                        }
203                        if(rcret == getrcconfigint("rcmenu", NULL))
204                        {
205                                ende = 1;
206                                anzmenu = 1;
207                                break;
208                        }                       
209                }
210                delownerrc(sis_anzeige);
211                clearscreen(sis_anzeige);
212                if(ende == 1)
213                        break;
214        }
215       
216        free(red);
217        free(yellow);
218        free(green);
219        free(menu);
220       
221        return anzmenu; 
222}
223       
224       
225
226void sispmctl_start(int flag)
227{
228        char* cmd = NULL;
229       
230        if(getwaswakuptimer() != 1)
231        {
232       
233                if(flag == 3 || ostrcmp(getlist(myconfig, "g1_auto_on", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g1_auto_on", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g1_auto_on", NULL), "deep") == 0 && flag == 2))
234                {
235                        if(flag == 3)
236                                writesys("/mnt/plugin/ps01sispm", "#!/bin/sh", 1);
237                       
238                        if(ostrcmp(getlist(myconfig, "g1_script", NULL), "yes") == 0)
239                        {
240                                cmd = ostrcat(createpluginpath("/sispmctl/bin/g1_script.sh", 0), " start", 0, 0);       
241                                if(flag == 3)
242                                        writesys("/mnt/plugin/ps01sispm", cmd, 3);
243                                else
244                                        system(cmd);
245                                free(cmd); cmd = NULL;
246                        }
247                               
248                        if(ostrcmp(getlist(myconfig, "g1_delay", NULL), "0") == 0)
249                        {
250                                if(ostrcmp(getlist(myconfig, "g1_delayhard", NULL), "0") == 0)
251                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o1 > /tmp/helpsis", 0, 0);
252                                else
253                                {
254                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A1 --Aafter ", 0, 0);
255                                        cmd = ostrcat(cmd, getlist(myconfig, "g1_delayhard", NULL), 1, 0);
256                                        cmd = ostrcat(cmd, " --Ado on", 1, 0);
257                                }
258                        }
259                        else
260                        {
261                                cmd = ostrcat("(sleep ", getlist(myconfig, "g1_delay", NULL), 0, 0);
262                                cmd = ostrcat(cmd, "; ", 1, 0);
263                                cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
264                                cmd = ostrcat(cmd, " -o1) &", 1, 0);
265                        }
266                        if(flag == 3)
267                                writesys("/mnt/plugin/ps01sispm", cmd, 3);
268                        else
269                                system(cmd);
270                        printf("%s\n", cmd);
271                        free(cmd); cmd = NULL;
272                }
273                if(ostrcmp(getlist(myconfig, "g2_auto_on", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g2_auto_on", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g2_auto_on", NULL), "deep") == 0 && flag == 2))
274                {
275                        if(ostrcmp(getlist(myconfig, "g2_script", NULL), "yes") == 0)
276                        {
277                                cmd = ostrcat(createpluginpath("/sispmctl/bin/g2_script.sh", 0), " start", 0, 0);       
278                                if(flag == 3)
279                                        writesys("/mnt/plugin/ps01sispm", cmd, 3);
280                                else
281                                        system(cmd);
282                                free(cmd); cmd = NULL;
283                        }
284                        if(ostrcmp(getlist(myconfig, "g2_delay", NULL), "0") == 0)
285                        {
286                                if(ostrcmp(getlist(myconfig, "g2_delayhard", NULL), "0") == 0)
287                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o2 > /tmp/helpsis", 0, 0);
288                                else
289                                {
290                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A2 --Aafter ", 0, 0);
291                                        cmd = ostrcat(cmd, getlist(myconfig, "g2_delayhard", NULL), 1, 0);
292                                        cmd = ostrcat(cmd, " --Ado on", 1, 0);
293                                }
294                        }
295                        else
296                        {
297                                cmd = ostrcat("(sleep ", getlist(myconfig, "g2_delay", NULL), 0, 0);
298                                cmd = ostrcat(cmd, "; ", 1, 0);
299                                cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
300                                cmd = ostrcat(cmd, " -o2) &", 1, 0);                           
301                        }
302                        if(flag == 3)
303                                writesys("/mnt/plugin/ps01sispm", cmd, 3);
304                        else
305                                system(cmd);
306                        printf("%s\n", cmd);
307                        free(cmd); cmd = NULL;
308                }
309                if(ostrcmp(getlist(myconfig, "g3_auto_on", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g3_auto_on", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g3_auto_on", NULL), "deep") == 0 && flag == 2))
310                {
311                        if(ostrcmp(getlist(myconfig, "g3_script", NULL), "yes") == 0)
312                        {
313                                cmd = ostrcat(createpluginpath("/sispmctl/bin/g3_script.sh", 0), " start", 0, 0);       
314                                if(flag == 3)
315                                        writesys("/mnt/plugin/ps01sispm", cmd, 3);
316                                else
317                                        system(cmd);
318                                free(cmd); cmd = NULL;
319                        }
320                        if(ostrcmp(getlist(myconfig, "g3_delay", NULL), "0") == 0)
321                        {
322                                if(ostrcmp(getlist(myconfig, "g3_delayhard", NULL), "0") == 0)
323                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o3 > /tmp/helpsis", 0, 0);
324                                else
325                                {
326                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A3 --Aafter ", 0, 0);
327                                        cmd = ostrcat(cmd, getlist(myconfig, "g3_delayhard", NULL), 1, 0);
328                                        cmd = ostrcat(cmd, " --Ado on", 1, 0);
329                                }
330                        }
331                        else
332                        {
333                                cmd = ostrcat("(sleep ", getlist(myconfig, "g3_delay", NULL), 0, 0);
334                                cmd = ostrcat(cmd, "; ", 1, 0);
335                                cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
336                                cmd = ostrcat(cmd, " -o3) &", 1, 0);
337
338                        }
339                        if(flag == 3)
340                                writesys("/mnt/plugin/ps01sispm", cmd, 3);
341                        else
342                                system(cmd);
343                        printf("%s\n", cmd);
344                        free(cmd); cmd = NULL;
345                }
346                if(ostrcmp(getlist(myconfig, "g4_auto_on", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g4_auto_on", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g4_auto_on", NULL), "deep") == 0 && flag == 2))
347                {
348                        if(ostrcmp(getlist(myconfig, "g4_script", NULL), "yes") == 0)
349                        {
350                                cmd = ostrcat(createpluginpath("/sispmctl/bin/g4_script.sh", 0), " start", 0, 0);       
351                                if(flag == 3)
352                                        writesys("/mnt/plugin/ps01sispm", cmd, 3);
353                                else
354                                        system(cmd);
355                                free(cmd); cmd = NULL;
356                        }
357                        if(ostrcmp(getlist(myconfig, "g4_delay", NULL), "0") == 0)
358                        {
359                                if(ostrcmp(getlist(myconfig, "g4_delayhard", NULL), "0") == 0)
360                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -o4 > /tmp/helpsis", 0, 0);
361                                else
362                                {
363                                        cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A4 --Aafter ", 0, 0);
364                                        cmd = ostrcat(cmd, getlist(myconfig, "g4_delay", NULL), 1, 0);
365                                        cmd = ostrcat(cmd, " --Ado on", 1, 0);
366                                }
367                        }
368                        else
369                        {
370                                cmd = ostrcat("(sleep ", getlist(myconfig, "g4_delayhard", NULL), 0, 0);
371                                cmd = ostrcat(cmd, "; ", 1, 0);
372                                cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
373                                cmd = ostrcat(cmd, " -o4) &", 1, 0);                           
374                        }
375                        if(flag == 3)
376                                writesys("/mnt/plugin/ps01sispm", cmd, 3);
377                        else
378                                system(cmd);
379                        printf("%s\n", cmd);
380                        free(cmd); cmd = NULL;
381                }
382        }
383}
384
385void sispmctl_stop(int flag)
386{
387        char* cmd = NULL;
388        int maxsleep = 0;
389        if(flag == 3 || ostrcmp(getlist(myconfig, "g1_auto_off", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g1_auto_off", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g1_auto_off", NULL), "deep") == 0 && flag == 2))
390        {
391                if(flag == 3)
392                                writesys("/mnt/plugin/pe01sispm", "#!/bin/sh", 1);
393               
394                if(ostrcmp(getlist(myconfig, "g1_script", NULL), "yes") == 0)
395                {
396                        cmd = ostrcat(createpluginpath("/sispmctl/bin/g1_script.sh", 0), " stop", 0, 0);       
397                        if(flag == 3)
398                                writesys("/mnt/plugin/pe01sispm", cmd, 3);
399                        else
400                                system(cmd);
401                        free(cmd); cmd = NULL;
402                }
403                if(ostrcmp(getlist(myconfig, "g1_delay", NULL), "0") == 0)
404                {
405                        if(ostrcmp(getlist(myconfig, "g1_delayhard", NULL), "0") == 0)
406                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -f1 > /tmp/helpsis", 0, 0);
407                        else
408                        {
409                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A1 --Aafter ", 0, 0);
410                                cmd = ostrcat(cmd, getlist(myconfig, "g1_delayhard", NULL), 1, 0);
411                                cmd = ostrcat(cmd, " --Ado off", 1, 0);
412                        }
413                }
414                else
415                {
416                        cmd = ostrcat("(sleep ", getlist(myconfig, "g1_delay", NULL), 0, 0);
417                        cmd = ostrcat(cmd, "; ", 1, 0);
418                        cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
419                        cmd = ostrcat(cmd, " -f1) &", 1, 0);
420                        if(maxsleep < atoi(getlist(myconfig, "g1_delay", NULL)))
421                                maxsleep = atoi(getlist(myconfig, "g1_delay", NULL));                   
422                }
423                if(flag == 3)
424                        writesys("/mnt/plugin/pe01sispm", cmd, 3);
425                else
426                        system(cmd);
427                printf("%s\n", cmd);
428                free(cmd); cmd = NULL;
429        }
430        if(ostrcmp(getlist(myconfig, "g2_auto_off", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g2_auto_off", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g2_auto_off", NULL), "deep") == 0 && flag == 2))
431        {
432                if(ostrcmp(getlist(myconfig, "g2_script", NULL), "yes") == 0)
433                {
434                        cmd = ostrcat(createpluginpath("/sispmctl/bin/g2_script.sh", 0), " stop", 0, 0);       
435                        if(flag == 3)
436                                writesys("/mnt/plugin/pe01sispm", cmd, 3);
437                        else
438                                system(cmd);
439                        free(cmd); cmd = NULL;
440                }
441                if(ostrcmp(getlist(myconfig, "g2_delay", NULL), "0") == 0)
442                {
443                        if(ostrcmp(getlist(myconfig, "g2_delayhard", NULL), "0") == 0)
444                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -f2 > /tmp/helpsis", 0, 0);
445                        else
446                        {
447                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A2 --Aafter ", 0, 0);
448                                cmd = ostrcat(cmd, getlist(myconfig, "g2_delayhard", NULL), 1, 0);
449                                cmd = ostrcat(cmd, " --Ado off", 1, 0); 
450                        }
451                }
452                else
453                {
454                        cmd = ostrcat("(sleep ", getlist(myconfig, "g2_delay", NULL), 0, 0);
455                        cmd = ostrcat(cmd, "; ", 1, 0);
456                        cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
457                        cmd = ostrcat(cmd, " -f2) &", 1, 0);
458                        if(maxsleep < atoi(getlist(myconfig, "g2_delay", NULL)))
459                                maxsleep = atoi(getlist(myconfig, "g2_delay", NULL));                   
460                }
461                if(flag == 3)
462                        writesys("/mnt/plugin/pe01sispm", cmd, 3);
463                else
464                        system(cmd);
465                printf("%s\n", cmd);
466                free(cmd); cmd = NULL;
467        }
468        if(ostrcmp(getlist(myconfig, "g3_auto_off", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g3_auto_off", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g3_auto_off", NULL), "deep") == 0 && flag == 2))
469        {
470                if(ostrcmp(getlist(myconfig, "g3_script", NULL), "yes") == 0)
471                {
472                        cmd = ostrcat(createpluginpath("/sispmctl/bin/g3_script.sh", 0), " stop", 0, 0);       
473                        if(flag == 3)
474                                writesys("/mnt/plugin/pe01sispm", cmd, 3);
475                        else
476                                system(cmd);
477                        free(cmd); cmd = NULL;
478                }
479                if(ostrcmp(getlist(myconfig, "g3_delay", NULL), "0") == 0)
480                {
481                        if(ostrcmp(getlist(myconfig, "g3_delayhard", NULL), "0") == 0)
482                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -f3 > /tmp/helpsis", 0, 0);
483                        else
484                        {
485                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A3 --Aafter ", 0, 0);
486                                cmd = ostrcat(cmd, getlist(myconfig, "g3_delayhard", NULL), 1, 0);
487                                cmd = ostrcat(cmd, " --Ado off", 1, 0); 
488                        }
489                }
490                else
491                {
492                        cmd = ostrcat("(sleep ", getlist(myconfig, "g3_delay", NULL), 0, 0);
493                        cmd = ostrcat(cmd, "; ", 1, 0);
494                        cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
495                        cmd = ostrcat(cmd, " -f3) &", 1, 0);
496                        if(maxsleep < atoi(getlist(myconfig, "g3_delay", NULL)))
497                                maxsleep = atoi(getlist(myconfig, "g3_delay", NULL));                   
498                }
499                if(flag == 3)
500                        writesys("/mnt/plugin/pe01sispm", cmd, 3);
501                else
502                        system(cmd);
503                printf("%s\n", cmd);
504                free(cmd); cmd = NULL;
505        }
506        if(ostrcmp(getlist(myconfig, "g4_auto_off", NULL), "both") == 0 || (ostrcmp(getlist(myconfig, "g4_auto_off", NULL), "standby") == 0 && flag == 1) || (ostrcmp(getlist(myconfig, "g4_auto_off", NULL), "deep") == 0 && flag == 2))
507        {
508                if(ostrcmp(getlist(myconfig, "g4_script", NULL), "yes") == 0)
509                {
510                        cmd = ostrcat(createpluginpath("/sispmctl/bin/g4_script.sh", 0), " stop", 0, 0);       
511                        if(flag == 3)
512                                writesys("/mnt/plugin/pe01sispm", cmd, 3);
513                        else
514                                system(cmd);
515                        free(cmd); cmd = NULL;
516                }
517                if(ostrcmp(getlist(myconfig, "g4_delay", NULL), "0") == 0)
518                {
519                        if(ostrcmp(getlist(myconfig, "g4_delayhard", NULL), "0") == 0)
520                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -f4 > /tmp/helpsis", 0, 0);
521                        else
522                        {
523                                cmd = ostrcat(createpluginpath("/sispmctl/bin/sispmctl", 0), " -A4 --Aafter ", 0, 0);
524                                cmd = ostrcat(cmd, getlist(myconfig, "g4_delayhard", NULL), 1, 0);
525                                cmd = ostrcat(cmd, " --Ado off", 1, 0);
526                        }
527                }
528                else
529                {
530                        cmd = ostrcat("(sleep ", getlist(myconfig, "g4_delay", NULL), 0, 0);
531                        cmd = ostrcat(cmd, "; ", 1, 0);
532                        cmd = ostrcat(cmd, createpluginpath("/sispmctl/bin/sispmctl", 0), 1, 0);
533                        cmd = ostrcat(cmd, " -f4) &", 1, 0);
534                        if(maxsleep < atoi(getlist(myconfig, "g4_delay", NULL)))
535                                maxsleep = atoi(getlist(myconfig, "g4_delay", NULL));                   
536                }
537                if(flag == 3)
538                        writesys("/mnt/plugin/pe01sispm", cmd, 3);
539                else
540                        system(cmd);
541                printf("%s\n", cmd);
542                free(cmd); cmd = NULL;
543        }
544        if(maxsleep > 0)
545                sleep(maxsleep);
546}
547
548void sispmctl_check_thread()
549{
550        int standby = 0;
551        while (sispmctl_checkthread->aktion != STOP) 
552        {
553                if(status.standby > 0 && standby == 0)
554                {
555                        sispmctl_stop(1);
556                        standby = 1;
557                }
558                if(status.standby == 0 && standby == 1)
559                {
560                        sispmctl_start(1);
561                        standby = 0;
562                }
563                sleep(2);
564        }
565        sispmctl_checkthread = NULL;
566}
567
568void sispmctl_settings()
569{
570       
571        int rcret = 0;
572        int rcode = 0;
573       
574        struct skin* load = getscreen("loading");
575       
576        struct skin* sis_einstellungen = getscreen("sis_einstellungen");
577        struct skin* listbox = getscreennode(sis_einstellungen, "listbox");
578       
579        struct skin* g1_name = getscreennode(sis_einstellungen, "g1_name");
580        struct skin* g1_auto_on = getscreennode(sis_einstellungen, "g1_auto_on");
581        struct skin* g1_timer = getscreennode(sis_einstellungen, "g1_timer");
582        struct skin* g1_auto_off = getscreennode(sis_einstellungen, "g1_auto_off");
583        struct skin* g1_delay = getscreennode(sis_einstellungen, "g1_delay");
584        struct skin* g1_delayhard = getscreennode(sis_einstellungen, "g1_delayhard");
585        struct skin* g1_script = getscreennode(sis_einstellungen, "g1_script");
586       
587        struct skin* g2_name = getscreennode(sis_einstellungen, "g2_name");
588        struct skin* g2_auto_on = getscreennode(sis_einstellungen, "g2_auto_on");
589        struct skin* g2_timer = getscreennode(sis_einstellungen, "g2_timer");
590        struct skin* g2_auto_off = getscreennode(sis_einstellungen, "g2_auto_off");
591        struct skin* g2_delay = getscreennode(sis_einstellungen, "g2_delay");
592        struct skin* g2_delayhard = getscreennode(sis_einstellungen, "g2_delayhard");
593        struct skin* g2_script = getscreennode(sis_einstellungen, "g2_script");
594       
595        struct skin* g3_name = getscreennode(sis_einstellungen, "g3_name");
596        struct skin* g3_auto_on = getscreennode(sis_einstellungen, "g3_auto_on");
597        struct skin* g3_timer = getscreennode(sis_einstellungen, "g3_timer");
598        struct skin* g3_auto_off = getscreennode(sis_einstellungen, "g3_auto_off");
599        struct skin* g3_delay = getscreennode(sis_einstellungen, "g3_delay");
600        struct skin* g3_delayhard = getscreennode(sis_einstellungen, "g3_delayhard");
601        struct skin* g3_script = getscreennode(sis_einstellungen, "g3_script");
602       
603        struct skin* g4_name = getscreennode(sis_einstellungen, "g4_name");
604        struct skin* g4_auto_on = getscreennode(sis_einstellungen, "g4_auto_on");
605        struct skin* g4_timer = getscreennode(sis_einstellungen, "g4_timer");
606        struct skin* g4_auto_off = getscreennode(sis_einstellungen, "g4_auto_off");
607        struct skin* g4_delay = getscreennode(sis_einstellungen, "g4_delay");
608        struct skin* g4_delayhard = getscreennode(sis_einstellungen, "g4_delayhard");
609        struct skin* g4_script = getscreennode(sis_einstellungen, "g4_script");
610       
611        struct skin* tmp = NULL;
612       
613        changemask(g1_name, "abcdefghijklmnopqrstuvwxyz");
614  changeinput(g1_name, getlist(myconfig, "g1_name", NULL));
615 
616  addchoicebox(g1_auto_on, "off", _("off"));
617        addchoicebox(g1_auto_on, "both", _("both"));
618        addchoicebox(g1_auto_on, "standby", _("standby"));
619        addchoicebox(g1_auto_on, "deep", _("deep"));
620        setchoiceboxselection(g1_auto_on, getlist(myconfig, "g1_auto_on", NULL));
621       
622        addchoicebox(g1_timer, "yes", _("yes"));
623        addchoicebox(g1_timer, "no", _("no"));
624        setchoiceboxselection(g1_timer, getlist(myconfig, "g1_timer", NULL));
625       
626        addchoicebox(g1_script, "yes", _("yes"));
627        addchoicebox(g1_script, "no", _("no"));
628        setchoiceboxselection(g1_script, getlist(myconfig, "g1_script", NULL));
629       
630        addchoicebox(g1_auto_off, "off", _("off"));
631        addchoicebox(g1_auto_off, "both", _("both"));
632        addchoicebox(g1_auto_off, "standby", _("standby"));
633        addchoicebox(g1_auto_off, "deep", _("deep"));
634        setchoiceboxselection(g1_auto_off, getlist(myconfig, "g1_auto_off", NULL));
635       
636        addchoicebox(g1_delay, "0", "0");
637        addchoicebox(g1_delay, "1", "1");
638        addchoicebox(g1_delay, "2", "2");
639        addchoicebox(g1_delay, "3", "3");
640        addchoicebox(g1_delay, "4", "4");
641        addchoicebox(g1_delay, "5", "5");
642        addchoicebox(g1_delay, "6", "6");
643        addchoicebox(g1_delay, "7", "7");
644        addchoicebox(g1_delay, "8", "8");
645        addchoicebox(g1_delay, "9", "9");
646        addchoicebox(g1_delay, "10", "10");
647        setchoiceboxselection(g1_delay, getlist(myconfig, "g1_delay", NULL));
648       
649        addchoicebox(g1_delayhard, "0", "0");
650        addchoicebox(g1_delayhard, "1", "1");
651        addchoicebox(g1_delayhard, "2", "2");
652        addchoicebox(g1_delayhard, "3", "3");
653        addchoicebox(g1_delayhard, "4", "4");
654        addchoicebox(g1_delayhard, "5", "5");
655        setchoiceboxselection(g1_delayhard, getlist(myconfig, "g1_delayhard", NULL));
656 
657  changemask(g2_name, "abcdefghijklmnopqrstuvwxyz");
658  changeinput(g2_name, getlist(myconfig, "g2_name", NULL));
659 
660  addchoicebox(g2_auto_on, "off", _("off"));
661        addchoicebox(g2_auto_on, "both", _("both"));
662        addchoicebox(g2_auto_on, "standby", _("standby"));
663        addchoicebox(g2_auto_on, "deep", _("deep"));
664        setchoiceboxselection(g2_auto_on, getlist(myconfig, "g2_auto_on", NULL));
665       
666        addchoicebox(g2_timer, "yes", _("yes"));
667        addchoicebox(g2_timer, "no", _("no"));
668        setchoiceboxselection(g2_timer, getlist(myconfig, "g2_timer", NULL));
669       
670        addchoicebox(g2_script, "yes", _("yes"));
671        addchoicebox(g2_script, "no", _("no"));
672        setchoiceboxselection(g2_script, getlist(myconfig, "g2_script", NULL));
673       
674        addchoicebox(g2_auto_off, "off", _("off"));
675        addchoicebox(g2_auto_off, "both", _("both"));
676        addchoicebox(g2_auto_off, "standby", _("standby"));
677        addchoicebox(g2_auto_off, "deep", _("deep"));
678        setchoiceboxselection(g2_auto_off, getlist(myconfig, "g2_auto_off", NULL));
679       
680        addchoicebox(g2_delay, "0", "0");
681        addchoicebox(g2_delay, "1", "1");
682        addchoicebox(g2_delay, "2", "2");
683        addchoicebox(g2_delay, "3", "3");
684        addchoicebox(g2_delay, "4", "4");
685        addchoicebox(g2_delay, "5", "5");
686        addchoicebox(g2_delay, "6", "6");
687        addchoicebox(g2_delay, "7", "7");
688        addchoicebox(g2_delay, "8", "8");
689        addchoicebox(g2_delay, "9", "9");
690        addchoicebox(g2_delay, "10", "10");
691        setchoiceboxselection(g2_delay, getlist(myconfig, "g2_delay", NULL));
692       
693        addchoicebox(g2_delayhard, "0", "0");
694        addchoicebox(g2_delayhard, "1", "1");
695        addchoicebox(g2_delayhard, "2", "2");
696        addchoicebox(g2_delayhard, "3", "3");
697        addchoicebox(g2_delayhard, "4", "4");
698        addchoicebox(g2_delayhard, "5", "5");
699        setchoiceboxselection(g2_delayhard, getlist(myconfig, "g2_delayhard", NULL));
700       
701        changemask(g3_name, "abcdefghijklmnopqrstuvwxyz");
702  changeinput(g3_name, getlist(myconfig, "g3_name", NULL));
703 
704  addchoicebox(g3_auto_on, "off", _("off"));
705        addchoicebox(g3_auto_on, "both", _("both"));
706        addchoicebox(g3_auto_on, "standby", _("standby"));
707        addchoicebox(g3_auto_on, "deep", _("deep"));
708        setchoiceboxselection(g3_auto_on, getlist(myconfig, "g3_auto_on", NULL));
709       
710        addchoicebox(g3_timer, "yes", _("yes"));
711        addchoicebox(g3_timer, "no", _("no"));
712        setchoiceboxselection(g3_timer, getlist(myconfig, "g3_timer", NULL));
713       
714        addchoicebox(g3_script, "yes", _("yes"));
715        addchoicebox(g3_script, "no", _("no"));
716        setchoiceboxselection(g3_script, getlist(myconfig, "g3_script", NULL));
717       
718        addchoicebox(g3_auto_off, "off", _("off"));
719        addchoicebox(g3_auto_off, "both", _("both"));
720        addchoicebox(g3_auto_off, "standby", _("standby"));
721        addchoicebox(g3_auto_off, "deep", _("deep"));
722        setchoiceboxselection(g3_auto_off, getlist(myconfig, "g3_auto_off", NULL));
723       
724        addchoicebox(g3_delay, "0", "0");
725        addchoicebox(g3_delay, "1", "1");
726        addchoicebox(g3_delay, "2", "2");
727        addchoicebox(g3_delay, "3", "3");
728        addchoicebox(g3_delay, "4", "4");
729        addchoicebox(g3_delay, "5", "5");
730        addchoicebox(g3_delay, "6", "6");
731        addchoicebox(g3_delay, "7", "7");
732        addchoicebox(g3_delay, "8", "8");
733        addchoicebox(g3_delay, "9", "9");
734        addchoicebox(g3_delay, "10", "10");
735        setchoiceboxselection(g3_delay, getlist(myconfig, "g3_delay", NULL));
736       
737        addchoicebox(g3_delayhard, "0", "0");
738        addchoicebox(g3_delayhard, "1", "1");
739        addchoicebox(g3_delayhard, "2", "2");
740        addchoicebox(g3_delayhard, "3", "3");
741        addchoicebox(g3_delayhard, "4", "4");
742        addchoicebox(g3_delayhard, "5", "5");
743        setchoiceboxselection(g3_delayhard, getlist(myconfig, "g3_delayhard", NULL));
744       
745        changemask(g4_name, "abcdefghijklmnopqrstuvwxyz");
746  changeinput(g4_name, getlist(myconfig, "g4_name", NULL));
747 
748  addchoicebox(g4_auto_on, "off", _("off"));
749        addchoicebox(g4_auto_on, "both", _("both"));
750        addchoicebox(g4_auto_on, "standby", _("standby"));
751        addchoicebox(g4_auto_on, "deep", _("deep"));
752        setchoiceboxselection(g4_auto_on, getlist(myconfig, "g4_auto_on", NULL));
753       
754        addchoicebox(g4_timer, "yes", _("yes"));
755        addchoicebox(g4_timer, "no", _("no"));
756        setchoiceboxselection(g4_timer, getlist(myconfig, "g4_timer", NULL));
757       
758        addchoicebox(g4_script, "yes", _("yes"));
759        addchoicebox(g4_script, "no", _("no"));
760        setchoiceboxselection(g4_script, getlist(myconfig, "g4_script", NULL));
761       
762        addchoicebox(g4_auto_off, "off", _("off"));
763        addchoicebox(g4_auto_off, "both", _("both"));
764        addchoicebox(g4_auto_off, "standby", _("standby"));
765        addchoicebox(g4_auto_off, "deep", _("deep"));
766        setchoiceboxselection(g4_auto_off, getlist(myconfig, "g4_auto_off", NULL));
767       
768        addchoicebox(g4_delay, "0", "0");
769        addchoicebox(g4_delay, "1", "1");
770        addchoicebox(g4_delay, "2", "2");
771        addchoicebox(g4_delay, "3", "3");
772        addchoicebox(g4_delay, "4", "4");
773        addchoicebox(g4_delay, "5", "5");
774        addchoicebox(g4_delay, "6", "6");
775        addchoicebox(g4_delay, "7", "7");
776        addchoicebox(g4_delay, "8", "8");
777        addchoicebox(g4_delay, "9", "9");
778        addchoicebox(g4_delay, "10", "10");
779        setchoiceboxselection(g4_delay, getlist(myconfig, "g4_delay", NULL));
780       
781        addchoicebox(g4_delayhard, "0", "0");
782        addchoicebox(g4_delayhard, "1", "1");
783        addchoicebox(g4_delayhard, "2", "2");
784        addchoicebox(g4_delayhard, "3", "3");
785        addchoicebox(g4_delayhard, "4", "4");
786        addchoicebox(g4_delayhard, "5", "5");
787        setchoiceboxselection(g4_delayhard, getlist(myconfig, "g4_delayhard", NULL));
788       
789 
790        drawscreen(sis_einstellungen, 0, 0);
791        addscreenrc(sis_einstellungen, listbox);
792        tmp = listbox->select;
793       
794        while(1)
795        {
796                addscreenrc(sis_einstellungen, tmp);
797                rcret = waitrc(sis_einstellungen, 1000, 0);
798                tmp = listbox->select;
799               
800                if(rcret == getrcconfigint("rcexit", NULL)) break;
801                if(rcret == getrcconfigint("rcgreen", NULL))
802                {
803                        //drawscreen(load, 0, 0);
804                        addlist(myconfig, "g1_name", g1_name->ret);
805                        addlist(myconfig, "g1_auto_on", g1_auto_on->ret);
806                        addlist(myconfig, "g1_timer", g1_timer->ret);
807                        addlist(myconfig, "g1_auto_off", g1_auto_off->ret);
808                        addlist(myconfig, "g1_delay", g1_delay->ret);
809                        addlist(myconfig, "g1_delayhard", g1_delayhard->ret);
810                        addlist(myconfig, "g1_script", g1_script->ret);
811
812                        addlist(myconfig, "g2_name", g2_name->ret);
813                        addlist(myconfig, "g2_auto_on", g2_auto_on->ret);
814                        addlist(myconfig, "g2_timer", g2_timer->ret);
815                        addlist(myconfig, "g2_auto_off", g2_auto_off->ret);
816                        addlist(myconfig, "g2_delay", g2_delay->ret);
817                        addlist(myconfig, "g2_delayhard", g2_delayhard->ret);
818                        addlist(myconfig, "g2_script", g2_script->ret);
819                       
820                        addlist(myconfig, "g3_name", g3_name->ret);
821                        addlist(myconfig, "g3_auto_on", g3_auto_on->ret);
822                        addlist(myconfig, "g3_timer", g3_timer->ret);
823                        addlist(myconfig, "g3_auto_off", g3_auto_off->ret);
824                        addlist(myconfig, "g3_delay", g3_delay->ret);
825                        addlist(myconfig, "g3_delayhard", g3_delayhard->ret);
826                        addlist(myconfig, "g3_script", g3_script->ret);
827                       
828                        addlist(myconfig, "g4_name", g4_name->ret);
829                        addlist(myconfig, "g4_auto_on", g4_auto_on->ret);
830                        addlist(myconfig, "g4_timer", g4_timer->ret);
831                        addlist(myconfig, "g4_auto_off", g4_auto_off->ret);
832                        addlist(myconfig, "g4_delay", g4_delay->ret);
833                        addlist(myconfig, "g4_delayhard", g4_delayhard->ret);
834                        addlist(myconfig, "g4_script", g4_script->ret);
835                        writelist(myconfig, sispmctlconf);
836                        if(startextern == 1)
837                                sispmctl_start(3);
838                        if(stopextern == 1)
839                                sispmctl_stop(3);
840                        sleep(1);
841                        //clearscreen(load);
842                }
843        }
844        delownerrc(sis_einstellungen);
845        clearscreen(sis_einstellungen);
846        return; 
847}
848
849void sispmctl_main()
850{
851        int rcret = 0;
852       
853        rcret = sispmctl_Anzeige();
854        if(rcret == 1)
855                sispmctl_settings();   
856
857}
Note: See TracBrowser for help on using the repository browser.