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

Last change on this file since 33179 was 33179, checked in by gost, 5 years ago

[plugins] ip-camera.. new camera type

  • Property svn:executable set to *
File size: 10.9 KB
Line 
1//#ifndef INSTAR_H
2//#define INSTAR_H
3
4char* cam1 = NULL;
5char* cam2 = NULL;
6struct skin* instar_screen = NULL; 
7struct skin* instar_pic1 = NULL;
8struct skin* instar_actcam1 = NULL;
9int actcam = 1;
10
11struct clist *myconfig[LISTHASHSIZE] = {NULL};
12char* instarconf = NULL;
13
14int show_control()
15{
16        char* tmpstr = NULL;
17        char* tempcam = NULL;
18        char* position = NULL;
19        char* positionstop = NULL;
20        int rcret = 0;
21        int rcode = 0;
22        int ohnestop = 0;
23       
24        if(actcam == 1)
25                tempcam = cam1;
26        if(actcam == 2)
27                tempcam = cam2;
28       
29        setfbtransparent(255);
30       
31        while(1)
32        {
33                if(cam1 != NULL)
34                {
35                        if(getconfigint("instar_1", NULL) == 1)
36                                tmpstr = ostrcat(cam1, "/image/jpeg.cgi", 0, 0);
37                        else
38                                tmpstr = ostrcat(cam1, "/snapshot.cgi", 0, 0);
39                        system(tmpstr);
40                        free(tmpstr); tmpstr = NULL;
41                }
42                if(cam2 != NULL)
43                {
44                        if(getconfigint("instar_2", NULL) == 1)
45                                tmpstr = ostrcat(cam1, "/image/jpeg.cgi", 0, 0);
46                        else
47                                tmpstr = ostrcat(cam1, "/snapshot.cgi", 0, 0);
48                        system(tmpstr);
49                        free(tmpstr); tmpstr = NULL;
50                }
51               
52                drawscreen(instar_screen, 0, 0);
53                rcret = waitrc(instar_screen, 100, 0);
54                ohnestop = 0;
55
56                if(rcret == getrcconfigint("rcexit", NULL)) break;
57               
58                if(rcret == getrcconfigint("rcinfo", NULL))
59                {
60                        //addlist(myconfig, "InstarCamAutostart", "nein");
61                        rcode = 1;
62                        break;
63                }       
64                       
65                if(rcret == getrcconfigint("rc1", NULL)) {
66                        position = ostrcat("/decoder_control.cgi?command=", "31", 0 , 0);
67                        ohnestop = 1;
68                }
69                if(rcret == getrcconfigint("rc2", NULL)) {
70                        position = ostrcat("/decoder_control.cgi?command=", "33", 0 , 0);
71                        ohnestop = 1;
72                }
73                if(rcret == getrcconfigint("rc3", NULL)) {
74                        position = ostrcat("/decoder_control.cgi?command=", "35", 0 , 0);
75                        ohnestop = 1;
76                }
77                if(rcret == getrcconfigint("rc4", NULL)) {
78                        position = ostrcat("/decoder_control.cgi?command=", "37", 0 , 0);
79                        ohnestop = 1;
80                }
81                if(rcret == getrcconfigint("rc5", NULL)) { 
82                        position = ostrcat("/decoder_control.cgi?command=", "39", 0 , 0);
83                        ohnestop = 1;
84                }
85                if(rcret == getrcconfigint("rc6", NULL)) {
86                        position = ostrcat("/decoder_control.cgi?command=", "41", 0 , 0);
87                        ohnestop = 1;
88                }
89                if(rcret == getrcconfigint("rc7", NULL)) {
90                        position = ostrcat("/decoder_control.cgi?command=", "43", 0 , 0);
91                        ohnestop = 1;
92                }
93                if(rcret == getrcconfigint("rc8", NULL)) {
94                        position = ostrcat("/decoder_control.cgi?command=", "45", 0 , 0);
95                        ohnestop = 1;
96                }
97                if(rcret == getrcconfigint("rc9", NULL)) {
98                        position = ostrcat("/decoder_control.cgi?command=", "47", 0 , 0);
99                        ohnestop = 1;
100                }
101                if(positionstop == NULL) 
102                {
103                        if(rcret == getrcconfigint("rcup", NULL)) {
104                                position = ostrcat("/decoder_control.cgi?command=", "0", 0 , 0);
105                                positionstop = ostrcat("/decoder_control.cgi?command=", "1", 0 , 0);
106                        }
107                        if(rcret == getrcconfigint("rcdown", NULL)) {
108                                position = ostrcat("/decoder_control.cgi?command=", "2", 0 , 0);
109                                positionstop = ostrcat("/decoder_control.cgi?command=", "3", 0 , 0);
110                        }
111                        if(rcret == getrcconfigint("rcleft", NULL)) {
112                                position = ostrcat("/decoder_control.cgi?command=", "4", 0 , 0);
113                                positionstop = ostrcat("/decoder_control.cgi?command=", "5", 0 , 0);
114                        }
115                        if(rcret == getrcconfigint("rcright", NULL)) {
116                                position = ostrcat("/decoder_control.cgi?command=", "6", 0 , 0);
117                                positionstop = ostrcat("/decoder_control.cgi?command=", "7", 0 , 0);
118                        }
119                        if(rcret == getrcconfigint("rcchup", NULL)) {
120                                position = ostrcat("/decoder_control.cgi?command=", "16", 0 , 0);
121                                positionstop = ostrcat("/decoder_control.cgi?command=", "17", 0 , 0);
122                        }
123                        if(rcret == getrcconfigint("rcchdown", NULL)) {
124                                position = ostrcat("/decoder_control.cgi?command=", "18", 0 , 0);
125                                positionstop = ostrcat("/decoder_control.cgi?command=", "19", 0 , 0);
126                        }
127                }
128               
129                if(tempcam != NULL && rcret != RCTIMEOUT)
130                {
131                        if(positionstop != NULL && ohnestop == 1)
132                        {
133                                tmpstr = ostrcat(tempcam, positionstop, 0, 0);
134                                system(tmpstr);
135                                free(tmpstr); tmpstr = NULL;   
136                                free(positionstop); positionstop = NULL;
137                        }
138                        if(position != NULL)
139                        {
140                                tmpstr = ostrcat(tempcam, position, 0, 0);
141                                system(tmpstr);
142                                free(tmpstr); tmpstr = NULL;   
143                                free(position); position = NULL;
144                        }
145                        else if(positionstop != NULL)
146                        {
147                                tmpstr = ostrcat(tempcam, positionstop, 0, 0);
148                                system(tmpstr);
149                                free(tmpstr); tmpstr = NULL;   
150                                free(positionstop); positionstop = NULL;
151                        }
152                        if(rcret == getrcconfigint("rcred", NULL)) {
153                                if(actcam == 1 && cam2 != NULL) {
154                                        actcam = 2;
155                                        changepic(instar_pic1, "/tmp/instar2.jpg");
156                                        changetext(instar_actcam1, "CAM2");
157                                        tempcam = cam2;
158                                        addlist(myconfig, "InstarActCam", "2");
159                                }
160                                else if(actcam == 2 && cam1 != NULL) {
161                                        actcam = 1;
162                                        changepic(instar_pic1, "/tmp/instar1.jpg");
163                                        changetext(instar_actcam1, "CAM1");
164                                        tempcam = cam1;
165                                        addlist(myconfig, "InstarActCam", "1");
166                                }
167                        }
168                }
169        }
170
171        clearscreen(instar_screen);
172        setosdtransparent(getskinconfigint("osdtransparent", NULL));
173        return rcode;
174}
175
176int instar_settings()
177{
178       
179        int rcret = 0;
180        int rcode = 0;
181       
182        struct skin* instar_einstellungen = getscreen("instar_einstellungen");
183        struct skin* listbox = getscreennode(instar_einstellungen, "listbox");
184        struct skin* autoCam = getscreennode(instar_einstellungen, "autoCam");
185        struct skin* onCam1 = getscreennode(instar_einstellungen, "onCam1");
186        struct skin* ipCam1 = getscreennode(instar_einstellungen, "ipCam1");
187        struct skin* portCam1 = getscreennode(instar_einstellungen, "portCam1");
188        struct skin* userCam1 = getscreennode(instar_einstellungen, "userCam1");
189        struct skin* passCam1 = getscreennode(instar_einstellungen, "passCam1");
190        struct skin* onCam2 = getscreennode(instar_einstellungen, "onCam2");
191        struct skin* ipCam2 = getscreennode(instar_einstellungen, "ipCam2");
192        struct skin* portCam2 = getscreennode(instar_einstellungen, "portCam2");
193        struct skin* userCam2 = getscreennode(instar_einstellungen, "userCam2");
194        struct skin* passCam2 = getscreennode(instar_einstellungen, "passCam2");
195       
196        struct skin* tmp = NULL;
197
198  addchoicebox(autoCam, "nein", _("nein"));
199        addchoicebox(autoCam, "ja", _("ja"));
200        setchoiceboxselection(autoCam, getlist(myconfig, "InstarCamAutostart", NULL));
201 
202  addchoicebox(onCam1, "aus", _("aus"));
203        addchoicebox(onCam1, "ein", _("ein"));
204        setchoiceboxselection(onCam1, getlist(myconfig, "InstarCam1", NULL));   
205        addchoicebox(typCam1, "0", "0");
206        addchoicebox(typCam1, "1", "1");
207        setchoiceboxselection(typCam1, getconfigint("instar_1", NULL));
208        changemask(ipCam1, "abcdefghijklmnopqrstuvwxyz");
209  changeinput(ipCam1, getlist(myconfig, "InstarCam1IP", NULL));
210  changemask(portCam1, "0000");
211  changeinput(portCam1, getlist(myconfig, "InstarCam1Port", NULL));
212  changemask(userCam1, "abcdefghijklmnopqrstuvwxyz");
213  changeinput(userCam1, getlist(myconfig, "InstarCam1User", NULL));
214  changemask(passCam1, "abcdefghijklmnopqrstuvwxyz");
215  changeinput(passCam1, getlist(myconfig, "InstarCam1Pass", NULL));
216 
217  addchoicebox(onCam2, "aus", _("aus"));
218        addchoicebox(onCam2, "ein", _("ein"));
219        setchoiceboxselection(onCam2, getlist(myconfig, "InstarCam2", NULL));   
220        addchoicebox(typCam2, "0", "0");
221        addchoicebox(typCam2, "1", "1");
222        setchoiceboxselection(typCam2, getconfigint("instar_2", NULL));
223        changemask(ipCam2, "abcdefghijklmnopqrstuvwxyz");
224  changeinput(ipCam2, getlist(myconfig, "InstarCam2IP", NULL));
225  changemask(portCam2, "0000");
226  changeinput(portCam2, getlist(myconfig, "InstarCam2Port", NULL));
227  changemask(userCam2, "abcdefghijklmnopqrstuvwxyz");
228  changeinput(userCam2, getlist(myconfig, "InstarCam2User", NULL));
229  changemask(passCam2, "abcdefghijklmnopqrstuvwxyz");
230  changeinput(passCam2, getlist(myconfig, "InstarCam2Pass", NULL));
231 
232        drawscreen(instar_einstellungen, 0, 0);
233        addscreenrc(instar_einstellungen, listbox);
234        tmp = listbox->select;
235       
236        while(1)
237        {
238                addscreenrc(instar_einstellungen, tmp);
239                rcret = waitrc(instar_einstellungen, 1000, 0);
240                tmp = listbox->select;
241               
242                if(rcret == getrcconfigint("rcexit", NULL)) break;
243                if(rcret == getrcconfigint("rcgreen", NULL) || rcret == getrcconfigint("rcblue", NULL))
244                {
245                        addlist(myconfig, "InstarCamAutostart", autoCam->ret);
246                        addlist(myconfig, "InstarCam1", onCam1->ret);
247                        addlist(myconfig, "InstarCam1IP", ipCam1->ret);
248                        addlist(myconfig, "InstarCam1Port", portCam1->ret);
249                        addlist(myconfig, "InstarCam1User", userCam1->ret);
250                        addlist(myconfig, "InstarCam1Pass", passCam1->ret);
251                        addlist(myconfig, "InstarCam2", onCam2->ret);
252                        addlist(myconfig, "InstarCam2IP", ipCam2->ret);
253                        addlist(myconfig, "InstarCam2Port", portCam2->ret);
254                        addlist(myconfig, "InstarCam2User", userCam2->ret);
255                        addlist(myconfig, "InstarCam2Pass", passCam2->ret);
256                        writelist(myconfig, instarconf);
257                        addconfig("instar_1", typCam1->ret);
258                        addconfig("instar_2", typCam2->ret);
259                        if(rcret == getrcconfigint("rcblue", NULL))
260                        {
261                                rcode = 1;
262                                break;
263                        }
264                }
265        }
266        delownerrc(instar_einstellungen);
267        clearscreen(instar_einstellungen);
268        return rcode;   
269}
270
271
272
273void instar_main()
274{
275        int rcode = 0;
276
277        instarconf = createpluginpath("/instar/instar.conf", 0);
278        readconfig(instarconf, myconfig);
279       
280  if(ostrcmp(getlist(myconfig, "InstarCamAutostart", NULL), "ja") == 0)
281                rcode = 1;
282        else
283                rcode = instar_settings();
284       
285        if(rcode == 1)
286        {
287                if(checkbox("ATEMIO5200") == 1)
288                        addconfig("pic_scale", "1");
289                while(1)
290                {
291                        if(ostrcmp(getlist(myconfig, "InstarCam1", NULL), "ein") == 0)
292                        {
293                                cam1 = ostrcat("wget --output-document=/tmp/instar1.jpg http://", getlist(myconfig, "InstarCam1User", NULL), 0, 0);
294                                cam1 = ostrcat(cam1, ":",1, 0);
295                                cam1 = ostrcat(cam1, getlist(myconfig, "InstarCam1Pass", NULL), 1, 0);
296                                cam1 = ostrcat(cam1, "@",1, 0);
297                                cam1 = ostrcat(cam1, getlist(myconfig, "InstarCam1IP", NULL), 1, 0);
298                                cam1 = ostrcat(cam1, ":",1, 0);
299                                cam1 = ostrcat(cam1, getlist(myconfig, "InstarCam1Port", NULL), 1, 0);
300                        }
301                       
302               
303                       
304                        if(ostrcmp(getlist(myconfig, "InstarCam2", NULL), "ein") == 0)
305                        {
306                                cam2 = ostrcat("wget --output-document=/tmp/instar2.jpg http://", getlist(myconfig, "InstarCam2User", NULL), 0, 0);
307                                cam2 = ostrcat(cam2, ":",1, 0);
308                                cam2 = ostrcat(cam2, getlist(myconfig, "InstarCam2Pass", NULL), 1, 0);
309                                cam2 = ostrcat(cam2, "@",1, 0);
310                                cam2 = ostrcat(cam2, getlist(myconfig, "InstarCam2IP", NULL), 1, 0);
311                                cam2 = ostrcat(cam2, ":",1, 0);
312                                cam2 = ostrcat(cam2, getlist(myconfig, "InstarCam2Port", NULL), 1, 0);
313                        }
314                       
315                               
316                        instar_screen = getscreen("instar_full");
317                        instar_pic1 = getscreennode(instar_screen, "pic1");
318                        instar_actcam1 = getscreennode(instar_screen, "actcam1");
319       
320                        if(ostrcmp(getlist(myconfig, "InstarActCam", NULL), "2") == 0)
321                        {
322                                actcam = 2;
323                                changepic(instar_pic1, "/tmp/instar2.jpg");
324                                changetext(instar_actcam1, "CAM2");
325                        }
326                        else
327                        {
328                                actcam = 1;
329                                changepic(instar_pic1, "/tmp/instar1.jpg");
330                                changetext(instar_actcam1, "CAM1");
331                        }
332                       
333                        rcode = show_control();
334       
335                        free(cam1), cam1 = NULL;
336                        free(cam2), cam2 = NULL;
337                       
338                        if(rcode == 0)
339                                break;
340                        rcode = 0;
341                       
342                        rcode = instar_settings();
343                        if(rcode == 0)
344                                break;
345                }
346                if(checkbox("ATEMIO5200") == 1)
347                        addconfig("pic_scale", "0");
348        }
349        writelist(myconfig, instarconf);
350        freelist(myconfig);
351        free(instarconf); instarconf = NULL;
352}
Note: See TracBrowser for help on using the repository browser.