source: titan/plugins/gmediarender/gmediarender.h @ 19038

Last change on this file since 19038 was 19038, checked in by obi, 11 years ago

disable wget workarounds back to http1.0 fixt this

File size: 3.3 KB
Line 
1#ifndef GMEDIARENDER_H
2#define GMEDIARENDER_H
3
4extern struct skin* skin;
5struct fb *fb = NULL;
6
7void gmediarendergetpic(struct skin* gmediarender, char* buf)
8{
9        char *tmpip = NULL, *pos = NULL, *pos1 = NULL, *path = NULL;
10        int port = 80;
11        printf("dlna download link: %s\n", buf);
12               
13        if(buf == NULL) return;
14
15        tmpip = string_replace("http://", "", buf, 0);
16
17        if(tmpip != NULL)
18        {
19                pos = strchr(tmpip, '/');
20                pos1 = strchr(tmpip, ':');
21        }
22        if(pos != NULL)
23        {
24                pos[0] = '\0';
25                path = pos + 1;
26        }
27        if(pos1 != NULL)
28        {
29                pos1[0] = '\0';
30                port = atoi(pos1 + 1);
31        }
32
33        if(cmpfilenameext(path, ".jpg") == 0)
34        {
35                unlink("/tmp/gmediarenderpic.jpg");
36/*
37                char* cmd = NULL;
38                cmd = ostrcat(cmd, "wget ", 1, 0);
39                cmd = ostrcat(cmd, buf, 1, 0);
40                cmd = ostrcat(cmd, " -O /tmp/gmediarenderpic.jpg", 1, 0);
41                printf("cmd: %s\n", cmd);
42                system(cmd);
43                free(cmd), cmd = NULL;
44*/
45                gethttp(tmpip, path, port, "/tmp/gmediarenderpic.jpg", NULL, NULL, 0);
46                changepic(gmediarender, "/tmp/gmediarenderpic.jpg");
47                drawscreen(gmediarender, 0, 0);
48        }
49        if(cmpfilenameext(path, ".png") == 0)
50        {
51                unlink("/tmp/gmediarenderpic.png");
52/*
53                char* cmd = NULL;
54                cmd = ostrcat(cmd, "wget ", 1, 0);
55                cmd = ostrcat(cmd, buf, 1, 0);
56                cmd = ostrcat(cmd, " -O /tmp/gmediarenderpic.png", 1, 0);
57                printf("cmd: %s\n", cmd);
58                system(cmd);
59                free(cmd), cmd = NULL;
60*/
61                gethttp(tmpip, path, port, "/tmp/gmediarenderpic.png", NULL, NULL, 0);
62                changepic(gmediarender, "/tmp/gmediarenderpic.png");
63                drawscreen(gmediarender, 0, 0);
64        }
65}
66
67void screengmediarender()
68{
69        int rcret = -1, ret = 0;
70        char* cmd = NULL, *buf = NULL;
71        char* tmpstr = NULL;
72        int fifo = -1;
73        struct skin* gmediarender = getscreen("gmediarender");
74       
75        ret = servicestop(status.aktservice, 1, 1);
76        if(ret == 1) return;
77
78        buf = malloc(MINMALLOC);
79        if(buf == NULL)
80        {
81                err("no mem");
82                return;
83        }
84
85        //create fifo
86        mkfifo("/tmp/gmediarender", 0666);
87
88        //open fifo
89        fifo = open("/tmp/gmediarender", O_RDONLY | O_NONBLOCK);
90
91        drawscreen(skin, 0, 0);
92
93        cmd = ostrcat(cmd, "/var/swap/titanplugins/gmediarender/gmediarender.sh gmediarender-", 1, 0);
94        cmd = ostrcat(cmd, status.boxtype, 1, 0);
95        cmd = ostrcat(cmd, " &", 1, 0);
96       
97        //start renderer
98        system(cmd);
99        free(cmd), cmd = NULL;
100
101        tmpstr = ostrcat(tmpstr, _("Servername"), 1, 0);
102        tmpstr = ostrcat(tmpstr, ": gmediarender-", 1, 0);
103        tmpstr = ostrcat(tmpstr, status.boxtype, 1, 0);
104        tmpstr = ostrcat(tmpstr, "\n\n", 1, 0);
105        tmpstr = ostrcat(tmpstr, _("Wait for connect or press EXIT"), 1, 0);
106
107        textbox(_("Message"), tmpstr, _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 7, 0);
108        free(tmpstr), tmpstr = NULL;
109
110        while(1)
111        {
112                rcret = waitrc(NULL, 1000, 0);
113
114                if(fifo > -1)
115                {
116                        ret = read(fifo, buf, MINMALLOC);
117                        if(ret > 0)
118                        {
119                                buf[ret] = '\0';
120                                if(ostrcmp(buf, "clear.png") == 0) //clear screen
121                                        drawscreen(skin, 0, 0);
122                                else
123                                        gmediarendergetpic(gmediarender, buf);
124                        }
125                }
126
127                if(rcret == getrcconfigint("rcexit", NULL)) break;
128                if(rcret == getrcconfigint("rcok", NULL)) break;
129        }
130
131        //stop renderer
132        system("killall -9 gmediarender");
133                       
134        if(status.lastservice != NULL)
135                servicestart(status.lastservice->channel, NULL, NULL, 0);
136
137        free(buf); buf = NULL;
138
139        //close fifo
140        close(fifo);
141        unlink("/tmp/gmediarender");
142        unlink("/tmp/gmediarenderpic.jpg");
143        unlink("/tmp/gmediarenderpic.png");
144}
145
146#endif
Note: See TracBrowser for help on using the repository browser.