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

Last change on this file since 32598 was 32598, checked in by obi, 9 years ago

fix gmediarender devicename

File size: 3.8 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, 5000, 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, 5000, 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        if(file_exist("/var/usr/local/share/titan/plugins/gmediarender/gmediarender.sh") == 1)
94                cmd = ostrcat(cmd, "/var/usr/local/share/titan/plugins/gmediarender/gmediarender.sh gmediarender-", 1, 0);
95        else if(file_exist("/var/swap/usr/local/share/titan/plugins/gmediarender/gmediarender.sh") == 1)
96                cmd = ostrcat(cmd, "/var/swap/usr/local/share/titan/plugins/gmediarender/gmediarender.sh gmediarender-", 1, 0);
97        else
98                cmd = ostrcat(cmd, "/mnt/swapextensions/usr/local/share/titan/plugins/gmediarender/gmediarender.sh gmediarender-", 1, 0);
99       
100        cmd = ostrcat(cmd, status.boxtype, 1, 0);
101        cmd = ostrcat(cmd, " &", 1, 0);
102
103        //start renderer
104        debug(10, "cmd: %s", cmd);
105        system(cmd);
106        free(cmd), cmd = NULL;
107
108        tmpstr = ostrcat(tmpstr, _("Servername"), 1, 0);
109        tmpstr = ostrcat(tmpstr, ": gmediarender-", 1, 0);
110        tmpstr = ostrcat(tmpstr, status.boxtype, 1, 0);
111        tmpstr = ostrcat(tmpstr, "\n\n", 1, 0);
112        tmpstr = ostrcat(tmpstr, _("Wait for connect or press EXIT"), 1, 0);
113
114        textbox(_("Message"), tmpstr, _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 7, 0);
115        free(tmpstr), tmpstr = NULL;
116
117        while(1)
118        {
119                rcret = waitrc(NULL, 1000, 0);
120
121                if(fifo > -1)
122                {
123                        ret = read(fifo, buf, MINMALLOC);
124                        if(ret > 0)
125                        {
126                                buf[ret] = '\0';
127                                if(ostrcmp(buf, "clear.png") == 0) //clear screen
128                                        drawscreen(skin, 0, 0);
129                                else
130                                        gmediarendergetpic(gmediarender, buf);
131                        }
132                }
133
134                if(rcret == getrcconfigint("rcexit", NULL)) break;
135                if(rcret == getrcconfigint("rcok", NULL)) break;
136        }
137
138        //stop renderer
139        system("killall -9 gmediarender");
140                       
141        if(status.lastservice != NULL)
142                servicestart(status.lastservice->channel, NULL, NULL, 0);
143
144        free(buf); buf = NULL;
145
146        //close fifo
147        close(fifo);
148        unlink("/tmp/gmediarender");
149        unlink("/tmp/gmediarenderpic.jpg");
150        unlink("/tmp/gmediarenderpic.png");
151}
152
153#endif
Note: See TracBrowser for help on using the repository browser.