source: titan/plugins/instar/instar.h @ 40796

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

[plugins] ip-Kamera add type 5

  • Property svn:executable set to *
File size: 15.3 KB
Line 
1//#ifndef INSTAR_H
2//#define INSTAR_H
3
4char* cam1 = NULL;
5char* cam2 = NULL;
6char* cam11 = NULL;
7char* cam21 = NULL;
8struct skin* instar_screen = NULL; 
9struct skin* instar_pic1 = NULL;
10struct skin* instar_actcam1 = NULL;
11int actcam = 1;
12
13struct clist *myconfig[LISTHASHSIZE] = {NULL};
14char* instarconf = NULL;
15
16int show_control()
17{
18        char* tmpstr = NULL;
19        char* tempcam = NULL;
20        char* position = NULL;
21        char* positionstop = NULL;
22        int rcret = 0;
23        int rcode = 0;
24        int ohnestop = 0;
25       
26        if(actcam == 1)
27                tempcam = cam1;
28        if(actcam == 2)
29                tempcam = cam2;
30       
31        setfbtransparent(255);
32       
33        printf("[ip-cam] Aufruf1: %s\n", cam1);
34        printf("[ip-cam] Aufruf2: %s\n", cam2);
35       
36        while(1)
37        {
38                        if(cam1 != NULL)
39                        {
40                                if(getconfigint("instar_1", NULL) == 1)
41                                        tmpstr = ostrcat(cam1, "/image/jpeg.cgi", 0, 0);
42                                else if(getconfigint("instar_1", NULL) == 2)
43                                        tmpstr = ostrcat(cam1, "/tmpfs/auto.jpg", 0, 0);
44                                else if(getconfigint("instar_1", NULL) == 3)
45                                        tmpstr = ostrcat(cam1, "/onvif/GetSnapshotUri", 0, 0);
46                                else if(getconfigint("instar_1", NULL) == 4)
47                                        tmpstr = ostrcat(cam1, "/image", 0, 0);
48                                else if(getconfigint("instar_1", NULL) == 5)
49                                {
50                                        tmpstr = ostrcat(cam1, "/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2", 0, 0);
51                                        tmpstr = ostrcat(tmpstr, cam11, 1, 0);
52                                }
53                                else
54                                        tmpstr = ostrcat(cam1, "/snapshot.cgi", 0, 0);
55                                if(getconfigint("instar_alterwebif", NULL) == 1)
56                                        tmpstr = ostrcat(tmpstr, " > /tmp/instar1.jpg", 1, 0);
57                                system(tmpstr);
58                                free(tmpstr); tmpstr = NULL;
59                        }
60                        if(cam2 != NULL)
61                        {
62                                if(getconfigint("instar_2", NULL) == 1)
63                                        tmpstr = ostrcat(cam2, "/image/jpeg.cgi", 0, 0);
64                                else if(getconfigint("instar_2", NULL) == 2)
65                                        tmpstr = ostrcat(cam2, "/tmpfs/auto.jpg", 0, 0);
66                                else if(getconfigint("instar_2", NULL) == 3)
67                                        tmpstr = ostrcat(cam2, "/onvif/GetSnapshotUri", 0, 0);
68                                else if(getconfigint("instar_2", NULL) == 4)
69                                        tmpstr = ostrcat(cam2, "/image", 0, 0);
70                                else if(getconfigint("instar_2", NULL) == 5)
71                                {
72                                        tmpstr = ostrcat(cam2, "/cgi-bin/CGIProxy.fcgi?cmd=snapPicture2", 0, 0);
73                                        tmpstr = ostrcat(tmpstr, cam21, 1, 0);
74                                }
75                                else
76                                        tmpstr = ostrcat(cam2, "/snapshot.cgi", 0, 0);
77                                if(getconfigint("instar_alterwebif", NULL) == 1)
78                                        tmpstr = ostrcat(tmpstr, " > /tmp/instar2.jpg", 1, 0);
79                                system(tmpstr);
80                                free(tmpstr); tmpstr = NULL;
81                        }
82                               
83                drawscreen(instar_screen, 0, 0);
84                rcret = waitrc(instar_screen, 100, 0);
85                ohnestop = 0;
86
87                if(rcret == getrcconfigint("rcexit", NULL)) break;
88               
89                if(rcret == getrcconfigint("rcinfo", NULL))
90                {
91                        //addlist(myconfig, "InstarCamAutostart", "nein");
92                        rcode = 1;
93                        break;
94                }       
95                       
96                if(rcret == getrcconfigint("rc1", NULL)) {
97                        position = ostrcat("/decoder_control.cgi?command=", "31", 0 , 0);
98                        ohnestop = 1;
99                }
100                if(rcret == getrcconfigint("rc2", NULL)) {
101                        position = ostrcat("/decoder_control.cgi?command=", "33", 0 , 0);
102                        ohnestop = 1;
103                }
104                if(rcret == getrcconfigint("rc3", NULL)) {
105                        position = ostrcat("/decoder_control.cgi?command=", "35", 0 , 0);
106                        ohnestop = 1;
107                }
108                if(rcret == getrcconfigint("rc4", NULL)) {
109                        position = ostrcat("/decoder_control.cgi?command=", "37", 0 , 0);
110                        ohnestop = 1;
111                }
112                if(rcret == getrcconfigint("rc5", NULL)) { 
113                        position = ostrcat("/decoder_control.cgi?command=", "39", 0 , 0);
114                        ohnestop = 1;
115                }
116                if(rcret == getrcconfigint("rc6", NULL)) {
117                        position = ostrcat("/decoder_control.cgi?command=", "41", 0 , 0);
118                        ohnestop = 1;
119                }
120                if(rcret == getrcconfigint("rc7", NULL)) {
121                        position = ostrcat("/decoder_control.cgi?command=", "43", 0 , 0);
122                        ohnestop = 1;
123                }
124                if(rcret == getrcconfigint("rc8", NULL)) {
125                        position = ostrcat("/decoder_control.cgi?command=", "45", 0 , 0);
126                        ohnestop = 1;
127                }
128                if(rcret == getrcconfigint("rc9", NULL)) {
129                        position = ostrcat("/decoder_control.cgi?command=", "47", 0 , 0);
130                        ohnestop = 1;
131                }
132                if(positionstop == NULL) 
133                {
134                        if(rcret == getrcconfigint("rcup", NULL)) {
135                                position = ostrcat("/decoder_control.cgi?command=", "0", 0 , 0);
136                                positionstop = ostrcat("/decoder_control.cgi?command=", "1", 0 , 0);
137                        }
138                        if(rcret == getrcconfigint("rcdown", NULL)) {
139                                position = ostrcat("/decoder_control.cgi?command=", "2", 0 , 0);
140                                positionstop = ostrcat("/decoder_control.cgi?command=", "3", 0 , 0);
141                        }
142                        if(rcret == getrcconfigint("rcleft", NULL)) {
143                                position = ostrcat("/decoder_control.cgi?command=", "4", 0 , 0);
144                                positionstop = ostrcat("/decoder_control.cgi?command=", "5", 0 , 0);
145                        }
146                        if(rcret == getrcconfigint("rcright", NULL)) {
147                                position = ostrcat("/decoder_control.cgi?command=", "6", 0 , 0);
148                                positionstop = ostrcat("/decoder_control.cgi?command=", "7", 0 , 0);
149                        }
150                        if(rcret == getrcconfigint("rcchup", NULL)) {
151                                position = ostrcat("/decoder_control.cgi?command=", "16", 0 , 0);
152                                positionstop = ostrcat("/decoder_control.cgi?command=", "17", 0 , 0);
153                        }
154                        if(rcret == getrcconfigint("rcchdown", NULL)) {
155                                position = ostrcat("/decoder_control.cgi?command=", "18", 0 , 0);
156                                positionstop = ostrcat("/decoder_control.cgi?command=", "19", 0 , 0);
157                        }
158                }
159               
160                if(tempcam != NULL && rcret != RCTIMEOUT)
161                {
162                        if(positionstop != NULL && ohnestop == 1)
163                        {
164                                tmpstr = ostrcat(tempcam, positionstop, 0, 0);
165                                system(tmpstr);
166                                free(tmpstr); tmpstr = NULL;   
167                                free(positionstop); positionstop = NULL;
168                        }
169                        if(position != NULL)
170                        {
171                                tmpstr = ostrcat(tempcam, position, 0, 0);
172                                system(tmpstr);
173                                free(tmpstr); tmpstr = NULL;   
174                                free(position); position = NULL;
175                        }
176                        else if(positionstop != NULL)
177                        {
178                                tmpstr = ostrcat(tempcam, positionstop, 0, 0);
179                                system(tmpstr);
180                                free(tmpstr); tmpstr = NULL;   
181                                free(positionstop); positionstop = NULL;
182                        }
183                        if(rcret == getrcconfigint("rcred", NULL)) {
184                                if(actcam == 1 && cam2 != NULL) {
185                                        actcam = 2;
186                                        changepic(instar_pic1, "/tmp/instar2.jpg");
187                                        changetext(instar_actcam1, "CAM2");
188                                        tempcam = cam2;
189                                        addlist(myconfig, "InstarActCam", "2");
190                                }
191                                else if(actcam == 2 && cam1 != NULL) {
192                                        actcam = 1;
193                                        changepic(instar_pic1, "/tmp/instar1.jpg");
194                                        changetext(instar_actcam1, "CAM1");
195                                        tempcam = cam1;
196                                        addlist(myconfig, "InstarActCam", "1");
197                                }
198                        }
199                }
200        }
201
202        clearscreen(instar_screen);
203        setosdtransparent(getskinconfigint("osdtransparent", NULL));
204        return rcode;
205}
206
207int instar_settings()
208{
209       
210        int rcret = 0;
211        int rcode = 0;
212       
213        struct skin* instar_einstellungen = getscreen("instar_einstellungen");
214        struct skin* listbox = getscreennode(instar_einstellungen, "listbox");
215        struct skin* alterwebif = getscreennode(instar_einstellungen, "alterwebif");
216        struct skin* autoCam = getscreennode(instar_einstellungen, "autoCam");
217        struct skin* onCam1 = getscreennode(instar_einstellungen, "onCam1");
218        struct skin* typCam1 = getscreennode(instar_einstellungen, "typCam1");
219        struct skin* ipCam1 = getscreennode(instar_einstellungen, "ipCam1");
220        struct skin* portCam1 = getscreennode(instar_einstellungen, "portCam1");
221        struct skin* userCam1 = getscreennode(instar_einstellungen, "userCam1");
222        struct skin* passCam1 = getscreennode(instar_einstellungen, "passCam1");
223        struct skin* onCam2 = getscreennode(instar_einstellungen, "onCam2");
224        struct skin* typCam2 = getscreennode(instar_einstellungen, "typCam2");
225        struct skin* ipCam2 = getscreennode(instar_einstellungen, "ipCam2");
226        struct skin* portCam2 = getscreennode(instar_einstellungen, "portCam2");
227        struct skin* userCam2 = getscreennode(instar_einstellungen, "userCam2");
228        struct skin* passCam2 = getscreennode(instar_einstellungen, "passCam2");
229       
230        struct skin* tmp = NULL;
231
232  addchoicebox(autoCam, "nein", _("nein"));
233        addchoicebox(autoCam, "ja", _("ja"));
234        setchoiceboxselection(autoCam, getlist(myconfig, "InstarCamAutostart", NULL));
235       
236        addchoicebox(alterwebif, "0", "off");
237        addchoicebox(alterwebif, "1", "on");
238        setchoiceboxselection(alterwebif, getconfig("instar_alterwebif", NULL));
239 
240  addchoicebox(onCam1, "aus", _("aus"));
241        addchoicebox(onCam1, "ein", _("ein"));
242        setchoiceboxselection(onCam1, getlist(myconfig, "InstarCam1", NULL));   
243        addchoicebox(typCam1, "0", "0");
244        addchoicebox(typCam1, "1", "1");
245        addchoicebox(typCam1, "2", "2");
246        addchoicebox(typCam1, "3", "3");
247        addchoicebox(typCam1, "4", "4");
248        addchoicebox(typCam1, "5", "5");
249        setchoiceboxselection(typCam1, getconfig("instar_1", NULL));
250        changemask(ipCam1, "abcdefghijklmnopqrstuvwxyz");
251  changeinput(ipCam1, getlist(myconfig, "InstarCam1IP", NULL));
252  changemask(portCam1, "0000");
253  changeinput(portCam1, getlist(myconfig, "InstarCam1Port", NULL));
254  changemask(userCam1, "abcdefghijklmnopqrstuvwxyz");
255  changeinput(userCam1, getlist(myconfig, "InstarCam1User", NULL));
256  changemask(passCam1, "abcdefghijklmnopqrstuvwxyz");
257  changeinput(passCam1, getlist(myconfig, "InstarCam1Pass", NULL));
258 
259  addchoicebox(onCam2, "aus", _("aus"));
260        addchoicebox(onCam2, "ein", _("ein"));
261        setchoiceboxselection(onCam2, getlist(myconfig, "InstarCam2", NULL));   
262        addchoicebox(typCam2, "0", "0");
263        addchoicebox(typCam2, "1", "1");
264        addchoicebox(typCam2, "2", "2");
265        addchoicebox(typCam2, "3", "3");
266        addchoicebox(typCam2, "4", "4");
267        addchoicebox(typCam2, "5", "5");
268        setchoiceboxselection(typCam2, getconfig("instar_2", NULL));
269        changemask(ipCam2, "abcdefghijklmnopqrstuvwxyz");
270  changeinput(ipCam2, getlist(myconfig, "InstarCam2IP", NULL));
271  changemask(portCam2, "0000");
272  changeinput(portCam2, getlist(myconfig, "InstarCam2Port", NULL));
273  changemask(userCam2, "abcdefghijklmnopqrstuvwxyz");
274  changeinput(userCam2, getlist(myconfig, "InstarCam2User", NULL));
275  changemask(passCam2, "abcdefghijklmnopqrstuvwxyz");
276  changeinput(passCam2, getlist(myconfig, "InstarCam2Pass", NULL));
277 
278        drawscreen(instar_einstellungen, 0, 0);
279        addscreenrc(instar_einstellungen, listbox);
280        tmp = listbox->select;
281       
282        while(1)
283        {
284                addscreenrc(instar_einstellungen, tmp);
285                rcret = waitrc(instar_einstellungen, 1000, 0);
286                tmp = listbox->select;
287               
288                if(rcret == getrcconfigint("rcexit", NULL)) break;
289                if(rcret == getrcconfigint("rcgreen", NULL) || rcret == getrcconfigint("rcblue", NULL))
290                {
291                        addlist(myconfig, "InstarCamAutostart", autoCam->ret);
292                        addlist(myconfig, "InstarCam1", onCam1->ret);
293                        addlist(myconfig, "InstarCam1IP", ipCam1->ret);
294                        addlist(myconfig, "InstarCam1Port", portCam1->ret);
295                        addlist(myconfig, "InstarCam1User", userCam1->ret);
296                        addlist(myconfig, "InstarCam1Pass", passCam1->ret);
297                        addlist(myconfig, "InstarCam2", onCam2->ret);
298                        addlist(myconfig, "InstarCam2IP", ipCam2->ret);
299                        addlist(myconfig, "InstarCam2Port", portCam2->ret);
300                        addlist(myconfig, "InstarCam2User", userCam2->ret);
301                        addlist(myconfig, "InstarCam2Pass", passCam2->ret);
302                        writelist(myconfig, instarconf);
303                        addconfig("instar_1", typCam1->ret);
304                        addconfig("instar_2", typCam2->ret);
305                        addconfig("instar_alterwebif", alterwebif->ret);
306                        if(rcret == getrcconfigint("rcblue", NULL))
307                        {
308                                rcode = 1;
309                                break;
310                        }
311                }
312        }
313        delownerrc(instar_einstellungen);
314        clearscreen(instar_einstellungen);
315        return rcode;   
316}
317
318
319
320void instar_main()
321{
322        int rcode = 0;
323        int ext = 0;
324       
325        instarconf = createpluginpath("/instar/instar.conf", 0);
326        readconfig(instarconf, myconfig);
327
328        char* CURL = NULL;
329        CURL = createpluginpath("/instar/curl", 0);
330        if(!file_exist(CURL))
331        {
332                free(CURL); CURL = NULL;
333                CURL = ostrcat("curl", NULL, 0, 0);
334        }
335
336        if(file_exist("/tmp/callcam1"))
337        {
338                ext = 1;
339                system("rm /callcam*");
340        }
341  else if(file_exist("/tmp/callcam2"))
342        {
343                ext = 2;
344                system("rm /callcam*");
345        }
346  else
347        ext = 0;
348 
349  if(ext > 0)
350        rcode = 1;
351  else if(ostrcmp(getlist(myconfig, "InstarCamAutostart", NULL), "ja") == 0)
352                rcode = 1;
353        else
354                rcode = instar_settings();
355       
356        if(rcode == 1)
357        {
358                if(checkbox("ATEMIO5200") == 1)
359                        addconfig("pic_scale", "1");
360                while(1)
361                {
362                        if(ostrcmp(getlist(myconfig, "InstarCam1", NULL), "ein") == 0 || ext == 1)
363                        {
364                                if(getconfigint("instar_1", NULL) != 5)
365                                {
366                                        if(getconfigint("instar_alterwebif", NULL) == 0)
367                                                cam1 = ostrcat("wget --output-document=/tmp/instar1.jpg http://", getlist(myconfig, "InstarCam1User", NULL), 0, 0);
368                                        else
369                                        {
370                                                cam1 = ostrcat(CURL, " http://", 0, 0);
371                                                cam1 = ostrcat(cam1, getlist(myconfig, "InstarCam1User", NULL), 1, 0);
372                                        }
373                                        cam1 = ostrcat(cam1, ":",1, 0);
374                                        cam1 = ostrcat(cam1, getlist(myconfig, "InstarCam1Pass", NULL), 1, 0);
375                                        cam1 = ostrcat(cam1, "@",1, 0);
376                                        cam1 = ostrcat(cam1, getlist(myconfig, "InstarCam1IP", NULL), 1, 0);
377                                        cam1 = ostrcat(cam1, ":",1, 0);
378                                        cam1 = ostrcat(cam1, getlist(myconfig, "InstarCam1Port", NULL), 1, 0);
379                                }
380                                else
381                                {
382                                        if(getconfigint("instar_alterwebif", NULL) == 0)
383                                                cam1 = ostrcat("wget --output-document=/tmp/instar1.jpg http://", NULL, 0, 0);
384                                        else
385                                        {
386                                                cam1 = ostrcat(CURL, " http://", 0, 0);
387                                                cam1 = ostrcat(cam1, getlist(myconfig, "InstarCam1IP", NULL), 1, 0);
388                                                cam1 = ostrcat(cam1, ":",1, 0);
389                                                cam1 = ostrcat(cam1, getlist(myconfig, "InstarCam1Port", NULL), 1, 0);
390                                                cam11 = ostrcat("&usr=", getlist(myconfig, "InstarCam1User", NULL), 0, 0);
391                                                cam11 = ostrcat(cam11, "&pwd=", 1, 0);
392                                                cam11 = ostrcat(cam11, getlist(myconfig, "InstarCam1Pass", NULL), 1, 0);
393                                                cam11 = ostrcat(cam11, "&", 1, 0);
394                                        }
395                                }
396                        }
397                       
398               
399                       
400                        if(ostrcmp(getlist(myconfig, "InstarCam2", NULL), "ein") == 0 || ext == 2)
401                        {
402                                if(getconfigint("instar_2", NULL) != 5)
403                                {                               
404                                        if(getconfigint("instar_alterwebif", NULL) == 0)
405                                                cam2 = ostrcat("wget --output-document=/tmp/instar2.jpg http://", getlist(myconfig, "InstarCam2User", NULL), 0, 0);
406                                        else
407                                        {
408                                                cam2 = ostrcat(CURL, " http://", 0, 0);
409                                                cam2 = ostrcat(cam2, getlist(myconfig, "InstarCam2User", NULL), 1, 0);
410                                        }
411                                        cam2 = ostrcat(cam2, ":",1, 0);
412                                        cam2 = ostrcat(cam2, getlist(myconfig, "InstarCam2Pass", NULL), 1, 0);
413                                        cam2 = ostrcat(cam2, "@",1, 0);
414                                        cam2 = ostrcat(cam2, getlist(myconfig, "InstarCam2IP", NULL), 1, 0);
415                                        cam2 = ostrcat(cam2, ":",1, 0);
416                                        cam2 = ostrcat(cam2, getlist(myconfig, "InstarCam2Port", NULL), 1, 0);
417                                }
418                                else
419                                {
420                                        if(getconfigint("instar_alterwebif", NULL) == 0)
421                                                cam2 = ostrcat("wget --output-document=/tmp/instar2.jpg http://", NULL, 0, 0);
422                                        else
423                                        {
424                                                cam2 = ostrcat(CURL, " http://", 0, 0);
425                                                cam2 = ostrcat(cam2, getlist(myconfig, "InstarCam2IP", NULL), 1, 0);
426                                                cam2 = ostrcat(cam2, ":",1, 0);
427                                                cam2 = ostrcat(cam2, getlist(myconfig, "InstarCam2Port", NULL), 1, 0);
428                                                cam21 = ostrcat("&usr=", getlist(myconfig, "InstarCam2User", NULL), 0, 0);
429                                                cam21 = ostrcat(cam21, "&pwd=", 1, 0);
430                                                cam21 = ostrcat(cam21, getlist(myconfig, "InstarCam2Pass", NULL), 1, 0);
431                                                cam21 = ostrcat(cam21, "&", 1, 0);
432                                        }
433                                }                               
434                        }
435                                       
436                        instar_screen = getscreen("instar_full");
437                        instar_pic1 = getscreennode(instar_screen, "pic1");
438                        instar_actcam1 = getscreennode(instar_screen, "actcam1");
439       
440                        if(ostrcmp(getlist(myconfig, "InstarActCam", NULL), "2") == 0 && ext != 1)
441                        {
442                                actcam = 2;
443                                changepic(instar_pic1, "/tmp/instar2.jpg");
444                                changetext(instar_actcam1, "CAM2");
445                        }
446                        else
447                        {
448                                actcam = 1;
449                                changepic(instar_pic1, "/tmp/instar1.jpg");
450                                changetext(instar_actcam1, "CAM1");
451                        }
452                       
453                        rcode = show_control();
454       
455                        free(cam1), cam1 = NULL;
456                        free(cam2), cam2 = NULL;
457                        free(cam11), cam11 = NULL;
458                        free(cam21), cam21 = NULL;
459                       
460                        if(rcode == 0)
461                                break;
462                        rcode = 0;
463                       
464                        rcode = instar_settings();
465                        if(rcode == 0)
466                                break;
467                }
468                if(checkbox("ATEMIO5200") == 1)
469                        addconfig("pic_scale", "0");
470        }
471        writelist(myconfig, instarconf);
472        freelist(myconfig);
473        free(instarconf); instarconf = NULL;
474        free(CURL); CURL = NULL;
475}
Note: See TracBrowser for help on using the repository browser.