source: titan/titan/skinfunc.h @ 27940

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

fix

File size: 24.9 KB
Line 
1#ifndef SKINFUNC_H
2#define SKINFUNC_H
3
4char* getplaytext(struct skin* node, char* path)
5{
6        char* tmpstr = NULL;
7
8        if(status.pause > 0 && status.slowspeed == 0)
9                tmpstr = ostrcat("Pause", NULL, 0, 0);
10        else if(status.play > 0)
11                tmpstr = ostrcat("Play", NULL, 0, 0);
12        else if(status.playspeed == 1)
13                tmpstr = ostrcat(">> 2x", NULL, 0, 0);
14        else if(status.playspeed == 2)
15                tmpstr = ostrcat(">> 4x", NULL, 0, 0);
16        else if(status.playspeed == 3)
17                tmpstr = ostrcat(">> 8x", NULL, 0, 0);
18        else if(status.playspeed == 4)
19                tmpstr = ostrcat(">> 16x", NULL, 0, 0);
20        else if(status.playspeed == 5)
21                tmpstr = ostrcat(">> 32x", NULL, 0, 0);
22        else if(status.playspeed == 6)
23                tmpstr = ostrcat(">> 64x", NULL, 0, 0);
24        else if(status.playspeed == 7)
25                tmpstr = ostrcat(">> 128x", NULL, 0, 0);
26        else if(status.playspeed == -1)
27                tmpstr = ostrcat("<< 2x", NULL, 0, 0);
28        else if(status.playspeed == -2)
29                tmpstr = ostrcat("<< 4x", NULL, 0, 0);
30        else if(status.playspeed == -3)
31                tmpstr = ostrcat("<< 8x", NULL, 0, 0);
32        else if(status.playspeed == -4)
33                tmpstr = ostrcat("<< 16x", NULL, 0, 0);
34        else if(status.playspeed == -5)
35                tmpstr = ostrcat("<< 32x", NULL, 0, 0);
36        else if(status.playspeed == -6)
37                tmpstr = ostrcat("<< 64x", NULL, 0, 0);
38        else if(status.playspeed == -7)
39                tmpstr = ostrcat("<< 128x", NULL, 0, 0);
40        else if(status.slowspeed == 1)
41                tmpstr = ostrcat("|| 2x", NULL, 0, 0);
42        else if(status.slowspeed == 2)
43                tmpstr = ostrcat("|| 4x", NULL, 0, 0);
44        else if(status.slowspeed == 3)
45                tmpstr = ostrcat("|| 8x", NULL, 0, 0);
46        else if(status.slowspeed == 4)
47                tmpstr = ostrcat("|| 16x", NULL, 0, 0);
48        else if(status.slowspeed == 5)
49                tmpstr = ostrcat("|| 32x", NULL, 0, 0);
50        else if(status.slowspeed == 6)
51                tmpstr = ostrcat("|| 64x", NULL, 0, 0);
52        else if(status.slowspeed == 7)
53                tmpstr = ostrcat("|| 128x", NULL, 0, 0);
54
55        return tmpstr;
56}
57
58char* getplaypic(struct skin* node, char* path)
59{
60        char* tmpstr = NULL;
61
62        if(status.pause > 0 && status.slowspeed == 0)
63                tmpstr = ostrcat("pause.png", NULL, 0, 0);
64        else if(status.play > 0)
65                tmpstr = ostrcat("play.png", NULL, 0, 0);
66        else if(status.playspeed == 1)
67                tmpstr = ostrcat("forward1.png", NULL, 0, 0);
68        else if(status.playspeed == 2)
69                tmpstr = ostrcat("forward1.png", NULL, 0, 0);
70        else if(status.playspeed == 3)
71                tmpstr = ostrcat("forward1.png", NULL, 0, 0);
72        else if(status.playspeed == 4)
73                tmpstr = ostrcat("forward1.png", NULL, 0, 0);
74        else if(status.playspeed == 5)
75                tmpstr = ostrcat("forward1.png", NULL, 0, 0);
76        else if(status.playspeed == 6)
77                tmpstr = ostrcat("forward1.png", NULL, 0, 0);
78        else if(status.playspeed == 7)
79                tmpstr = ostrcat("forward1.png", NULL, 0, 0);
80        else if(status.playspeed == -1)
81                tmpstr = ostrcat("rewind1.png", NULL, 0, 0);
82        else if(status.playspeed == -2)
83                tmpstr = ostrcat("rewind1.png", NULL, 0, 0);
84        else if(status.playspeed == -3)
85                tmpstr = ostrcat("rewind1.png", NULL, 0, 0);
86        else if(status.playspeed == -4)
87                tmpstr = ostrcat("rewind1.png", NULL, 0, 0);
88        else if(status.playspeed == -5)
89                tmpstr = ostrcat("rewind1.png", NULL, 0, 0);
90        else if(status.playspeed == -6)
91                tmpstr = ostrcat("rewind1.png", NULL, 0, 0);
92        else if(status.playspeed == -7)
93                tmpstr = ostrcat("rewind1.png", NULL, 0, 0);
94        else if(status.slowspeed == 1)
95                tmpstr = ostrcat("slow1.png", NULL, 0, 0);
96        else if(status.slowspeed == 2)
97                tmpstr = ostrcat("slow1.png", NULL, 0, 0);
98        else if(status.slowspeed == 3)
99                tmpstr = ostrcat("slow1.png", NULL, 0, 0);
100        else if(status.slowspeed == 4)
101                tmpstr = ostrcat("slow1.png", NULL, 0, 0);
102        else if(status.slowspeed == 5)
103                tmpstr = ostrcat("slow1.png", NULL, 0, 0);
104        else if(status.slowspeed == 6)
105                tmpstr = ostrcat("slow1.png", NULL, 0, 0);
106        else if(status.slowspeed == 7)
107                tmpstr = ostrcat("slow1.png", NULL, 0, 0);
108
109        if(tmpstr != NULL)
110        {
111                if(path != NULL && tmpstr != NULL)
112                        tmpstr = ostrcat("/", tmpstr, 0, 1);
113                tmpstr = ostrcat(path, tmpstr, 0, 1);
114        }
115       
116        return tmpstr;
117}
118
119char* getreccount(struct skin* node)
120{
121        char* tmpstr = NULL;
122
123        if(status.recording > 0)
124                tmpstr = oitoa(status.recording);
125
126        return tmpstr;
127}
128
129char* getrec(struct skin* node, char* path)
130{
131        char* tmpstr = NULL;
132
133        if(status.recording > 0)
134        {
135                tmpstr = ostrcat("rec.png", NULL, 0, 0);
136
137                if(path != NULL)
138                        tmpstr = ostrcat("/", tmpstr, 0, 1);
139                tmpstr = ostrcat(path, tmpstr, 0, 1);
140        }
141       
142        return tmpstr;
143}
144
145char* getcrypt(struct skin* node, char* path)
146{
147        char* tmpstr = NULL;
148
149        if(status.aktservice->channel != NULL)
150        {
151                if(status.aktservice->channel->crypt > 0)
152                        tmpstr = ostrcat("crypt.png", NULL, 0, 0);
153                else
154                        tmpstr = ostrcat("nocrypt.png", NULL, 0, 0);
155
156                if(path != NULL)
157                        tmpstr = ostrcat("/", tmpstr, 0, 1);
158                tmpstr = ostrcat(path, tmpstr, 0, 1);
159        }
160       
161        return tmpstr;
162}
163
164char* getaspectmode(struct skin* node, char* path)
165{
166        char* tmpstr = NULL;
167
168        tmpstr = getaspect();
169        if(ostrcmp(tmpstr, "4:3") == 0)
170        {
171                free(tmpstr); tmpstr = NULL;
172                tmpstr = ostrcat(tmpstr, "4_3.png", 1, 0);
173        }
174        if(ostrcmp(tmpstr, "16:9") == 0)
175        {
176                free(tmpstr); tmpstr = NULL;
177                tmpstr = ostrcat(tmpstr, "16_9.png", 1, 0);
178        }
179
180        if(path != NULL)
181                tmpstr = ostrcat("/", tmpstr, 0, 1);
182        tmpstr = ostrcat(path, tmpstr, 0, 1);
183
184        return tmpstr;
185}
186
187char* getsdhd(struct skin* node, char* path)
188{
189        char* tmpstr = NULL;
190
191        videoreadqwidth(status.aktservice->videodev);
192
193        if(getaktvideosize() == 0) //videosize is ok
194        {
195                if(status.videosize.w == 720)
196                        tmpstr = ostrcat("sd.png", NULL, 0, 0);
197                else if(status.videosize.w == 1280)
198                        tmpstr = ostrcat("hdready.png", NULL, 0, 0);
199                else if(status.videosize.w == 1920)
200                        tmpstr = ostrcat("hd.png", NULL, 0, 0);
201        }
202       
203        if(tmpstr == NULL) tmpstr = ostrcat("novideo.png", NULL, 0, 0);
204
205        if(path != NULL)
206                tmpstr = ostrcat("/", tmpstr, 0, 1);
207        tmpstr = ostrcat(path, tmpstr, 0, 1);
208
209        return tmpstr;
210}
211       
212char* getresolution(struct skin* node, char* path)
213{
214        char* tmpstr = NULL;
215
216        if(fb->width == 720 && fb->height == 576)
217                tmpstr = ostrcat("576.png", NULL, 0, 0);
218        else if(fb->width == 1280 && fb->height == 720)
219                tmpstr = ostrcat("720.png", NULL, 0, 0);
220        else if(fb->width == 1920 && fb->height == 1080)
221                tmpstr = ostrcat("1080.png", NULL, 0, 0);
222
223        if(path != NULL)
224                tmpstr = ostrcat("/", tmpstr, 0, 1);
225        tmpstr = ostrcat(path, tmpstr, 0, 1);
226       
227        return tmpstr;
228}
229
230char* getteletext(struct skin* node, char* path)
231{
232        char* tmpstr = NULL;
233
234        if(status.aktservice->channel != NULL)
235        {
236                if(status.aktservice->channel->txtpid > 0)
237                        tmpstr = ostrcat("teletext.png", NULL, 0, 0);
238                else
239                        tmpstr = ostrcat("noteletext.png", NULL, 0, 0);
240
241                if(path != NULL)
242                        tmpstr = ostrcat("/", tmpstr, 0, 1);
243                tmpstr = ostrcat(path, tmpstr, 0, 1);
244        }
245       
246        return tmpstr;
247}
248
249char* getsoundtype(struct skin* node, char* path)
250{
251        char* tmpstr = NULL;
252
253        if(status.aktservice->channel != NULL)
254        {
255                switch(status.aktservice->channel->audiocodec)
256                {
257                        case AC3:
258                                tmpstr = ostrcat("ac3.png", NULL, 0, 0);
259                                break;
260                        case MPEGA:
261                                tmpstr = ostrcat("mpega.png", NULL, 0, 0);
262                                break;
263                        case DTS:
264                                tmpstr = ostrcat("dts.png", NULL, 0, 0);
265                                break;
266                        case LPCM:
267                                tmpstr = ostrcat("lpcm.png", NULL, 0, 0);
268                                break;
269                        case AAC:
270                                tmpstr = ostrcat("aac.png", NULL, 0, 0);
271                                break;
272                        case AACHE:
273                                tmpstr = ostrcat("aache.png", NULL, 0, 0);
274                                break;
275                }
276                if(path != NULL)
277                        tmpstr = ostrcat("/", tmpstr, 0, 1);
278                tmpstr = ostrcat(path, tmpstr, 0, 1);
279        }
280       
281        return tmpstr;
282}
283
284char* getprovidername(struct skin* node)
285{
286        char* tmpstr = NULL;
287
288        if(status.aktservice->channel != NULL && status.aktservice->channel->provider != NULL)
289                tmpstr = ostrcat(status.aktservice->channel->provider->name, NULL, 0, 0);
290
291        return tmpstr;
292}
293
294char* getsatname(struct skin* node)
295{
296        struct sat* satnode = NULL;
297        char* tmpstr = NULL;
298
299        if(status.aktservice->channel != NULL && status.aktservice->channel->transponder != NULL)
300        {
301                satnode = getsatbyorbitalpos(status.aktservice->channel->transponder->orbitalpos);
302                if(satnode != NULL)
303                        tmpstr = ostrcat(satnode->name, NULL, 0, 0);
304        }
305
306        return tmpstr;
307}
308
309char* getber(struct skin* node, char* format)
310{
311        uint32_t ber = 0;
312        char* buf = NULL, *buf1 = NULL;
313
314        ber = fereadber(status.aktservice->fedev);
315
316        buf = malloc(MINMALLOC);
317        if(buf == NULL)
318        {
319                err("no mem");
320                return NULL;
321        }
322       
323        snprintf(buf, MINMALLOC, format, ber);
324        buf1 = ostrcat(buf, NULL, 1, 0);
325
326        return buf1;
327}
328
329char* getsignal(struct skin* node, char* format)
330{
331        uint16_t signal = 0;
332        char* buf = NULL, *buf1 = NULL;
333
334        signal = fereadsignalstrength(status.aktservice->fedev);
335        signal = (signal * 100) / 0xffff;
336
337        buf = malloc(MINMALLOC);
338        if(buf == NULL)
339        {
340                err("no mem");
341                return NULL;
342        }
343       
344        snprintf(buf, MINMALLOC, format, signal);
345        buf1 = ostrcat(buf, NULL, 1, 0);
346
347        return buf1;
348}
349
350char* getunc(struct skin* node, char* format)
351{
352        uint32_t unc = 0;
353        char* buf = NULL, *buf1 = NULL;
354
355        unc = fereaduncorrectedblocks(status.aktservice->fedev);
356
357        buf = malloc(MINMALLOC);
358        if(buf == NULL)
359        {
360                err("no mem");
361                return NULL;
362        }
363       
364        snprintf(buf, MINMALLOC, format, unc);
365        buf1 = ostrcat(buf, NULL, 1, 0);
366
367        return buf1;
368}
369
370char* getsnr(struct skin* node, char* format)
371{
372        uint16_t snr = 0;
373        char* buf = NULL, *buf1 = NULL;
374
375       
376        snr = fereadsnr(status.aktservice->fedev);
377        snr = (snr * 100) / 0xffff;
378       
379        buf = malloc(MINMALLOC);
380        if(buf == NULL)
381        {
382                err("no mem");
383                return NULL;
384        }
385       
386        snprintf(buf, MINMALLOC, format, snr);
387        buf1 = ostrcat(buf, NULL, 1, 0);
388
389        return buf1;
390}
391
392char* getepgtimeline(struct skin* node, int akt)
393{       
394        struct epg* epgnode = NULL;
395        struct channel* chnode = NULL;
396        char* tmpstr = NULL, *tmpnr = NULL;
397        int proz = 0;
398
399        if(akt == 0) chnode = status.markedchannel;
400        if(akt == 1) chnode = status.aktservice->channel;
401        if(akt == 2 && node != NULL) chnode = (struct channel*)node->handle;
402
403        if(chnode != NULL)
404        {
405                epgnode = getepgakt(chnode);
406                if(epgnode != NULL)
407                {
408                        proz = (time(NULL) - epgnode->starttime) * 100 / (epgnode->endtime - epgnode->starttime);
409                        tmpnr = oitoa(proz);
410                        tmpstr = ostrcat(tmpstr, tmpnr, 1, 1);
411                        return tmpstr;
412                }
413        }
414        return NULL;
415}
416
417char* getepgmarkedtimeline(struct skin* node)
418{
419        return getepgtimeline(node, 0);
420}
421
422char* getepgakttimeline(struct skin* node)
423{
424        return getepgtimeline(node, 1);
425}
426
427char* getepgchanneltimeline(struct skin* node)
428{
429        return getepgtimeline(node, 2);
430}
431
432char* getaktchannelname(struct skin* node)
433{
434        char* tmpstr = NULL;
435
436        if(status.aktservice->channel != NULL)
437        {
438                tmpstr = ostrcat(tmpstr, status.aktservice->channel->name, 1, 0);
439                return tmpstr;
440        }
441        return NULL;
442}
443
444char* getepgtime(struct skin* node, char* format, int akt, int type)
445{
446        // akt 0 = marked channel
447        // akt 1 = akt channel now
448        // akt 2 = akt channel next
449
450        // type 0 = starttime
451        // type 1 = endtime
452        // type 2 = remainingtime
453
454        struct epg* epgnode = NULL;
455        struct tm *loctime = NULL;
456        struct channel* chnode = NULL;
457        char *buf = NULL, *buf1 = NULL;
458        time_t min = 0;
459       
460        if(format == NULL)
461        {
462                err("NULL detect");
463                return NULL;
464        }
465
466        if(akt == 0) chnode = status.markedchannel;
467        if(akt == 1 || akt == 2) chnode = status.aktservice->channel;
468
469        if(chnode != NULL)
470        {
471                epgnode = getepgakt(chnode);
472
473                if(akt == 2)
474                {
475                        if(epgnode != NULL)
476                                epgnode = epgnode->next;
477                }
478
479                if(epgnode != NULL)
480                {
481                        if(type == 0)
482                                loctime = olocaltime(&epgnode->starttime);
483                        else if(type == 1)
484                                loctime = olocaltime(&epgnode->endtime);
485                        else if(type == 2)
486                        {
487                                if(akt == 1)
488                                        min = ((epgnode->endtime - (epgnode->endtime % 60)) - (time(NULL) - (time(NULL) % 60))) / 60;
489                                else if(akt == 2)
490                                        min = ((epgnode->endtime - (epgnode->endtime % 60)) - (epgnode->starttime - (epgnode->starttime % 60))) / 60;
491                                if(min < 0) min = 0;
492                        }
493
494                        buf = malloc(MINMALLOC);
495                        if(buf == NULL)
496                        {
497                                free(loctime);
498                                err("no memory");
499                                return NULL;
500                        }
501
502                        if(type == 2)
503                                snprintf(buf, MINMALLOC, format, min);
504                        else if(loctime != NULL)
505                                ostrftime(buf, MINMALLOC, format, loctime);
506                        buf1 = ostrcat(buf, NULL, 1, 0);
507
508                        free(loctime); loctime = NULL;
509                        return buf1;
510                }
511        }
512        return NULL;
513}
514
515char* getepgakttimeremaining(struct skin* node, char* format)
516{
517        return getepgtime(node, format, 1, 2);
518}
519
520char* getepgnexttimeremaining(struct skin* node, char* format)
521{
522        return getepgtime(node, format, 2, 2);
523}
524
525char* getepgmarkedstart(struct skin* node, char* format)
526{
527        return getepgtime(node, format, 0, 0);
528}
529
530char* getepgmarkedend(struct skin* node, char* format)
531{
532        return getepgtime(node, format, 0, 1);
533}
534
535char* getepgaktstart(struct skin* node, char* format)
536{
537        return getepgtime(node, format, 1, 0);
538}
539
540char* getepgaktend(struct skin* node, char* format)
541{
542        return getepgtime(node, format, 1, 1);
543}
544
545char* getepgnextstart(struct skin* node, char* format)
546{
547        return getepgtime(node, format, 2, 0);
548}
549
550char* getepgnextend(struct skin* node, char* format)
551{
552        return getepgtime(node, format, 2, 1);
553}
554
555char* getepgaktsubtitle(struct skin* node)
556{
557        struct epg* epgnode = NULL;
558        char* tmpstr = NULL;
559
560        epgnode = getepgakt(status.aktservice->channel);
561        if(epgnode != NULL)
562        {
563                tmpstr = ostrcat(tmpstr, epgnode->subtitle, 1, 0);
564                return tmpstr;
565        }
566
567        return NULL;
568}
569
570char* getepgakttitle(struct skin* node)
571{
572        struct epg* epgnode = NULL;
573        char* tmpstr = NULL;
574
575        epgnode = getepgakt(status.aktservice->channel);
576        if(epgnode != NULL)
577        {
578                tmpstr = ostrcat(tmpstr, epgnode->title, 1, 0);
579                return tmpstr;
580        }
581
582        return NULL;
583}
584
585char* getepgnexttitle(struct skin* node)
586{
587        struct epg* epgnode = NULL;
588        char* tmpstr = NULL;
589
590        epgnode = getepgakt(status.aktservice->channel);
591        if(epgnode != NULL)
592        {
593                epgnode = epgnode->next;
594                if(epgnode != NULL)
595                {
596                        tmpstr = ostrcat(tmpstr, epgnode->title, 1, 0);
597                        return tmpstr;
598                }
599        }
600
601        return NULL;
602}
603
604char* getepgaktdesc(struct skin* node)
605{
606        struct epg* epgnode = NULL;
607
608        if(status.aktservice->channel != NULL)
609        {
610                epgnode = getepgakt(status.aktservice->channel);
611                if(epgnode != NULL)
612                        return epgdescunzip(epgnode);
613        }
614
615        return NULL;
616}
617
618char* getepgmarkeddesc(struct skin* node)
619{
620        struct epg* epgnode = NULL;
621
622        if(status.markedchannel != NULL)
623        {
624                epgnode = getepgakt(status.markedchannel);
625                if(epgnode != NULL)
626                        return epgdescunzip(epgnode);
627        }
628
629        return NULL;
630}
631
632char* getepgmarkedlist(struct skin* node, char* ccount)
633{
634        struct epg* epgnode = NULL;
635        char* tmpstr = NULL, *buf = NULL;
636        int count = atoi(ccount);
637        struct tm* loctime = NULL;
638
639        buf = malloc(MINMALLOC);
640        if(buf == NULL)
641        {
642                err("no memory");
643                return NULL;
644        }
645
646        if(status.markedchannel != NULL)
647        {
648                epgnode = getepgakt(status.markedchannel);
649                while(epgnode != NULL)
650                {
651                        epgnode = epgnode->next;
652                        if(epgnode != NULL)
653                        {
654                                loctime = olocaltime(&epgnode->starttime);
655                                if(loctime != NULL)
656                                        strftime(buf, MINMALLOC, "%H:%M", loctime);
657                                free(loctime); loctime = NULL;
658                                tmpstr = ostrcat(tmpstr, buf, 1, 0);
659                                tmpstr = ostrcat(tmpstr, " ", 1, 0);
660                                tmpstr = ostrcat(tmpstr, epgnode->title, 1, 0);
661                                tmpstr = ostrcat(tmpstr, "\n", 1, 0);
662                                count--;
663                        }
664                        if(count < 1) break;
665                }
666        }
667
668        free(buf);
669        return tmpstr;
670}
671
672char* getepgpicon(struct skin* node)
673{
674        char* tmpstr = NULL;
675       
676        if(status.epgchannel != NULL)
677                tmpstr = createpiconpath(status.epgchannel, 0);
678        return tmpstr;
679}
680
681char* getpicon(struct skin* node)
682{
683        char* tmpstr = NULL;
684        tmpstr = createpiconpath(status.aktservice->channel, 0);
685        return tmpstr;
686}
687
688char* getalternatepicon(struct skin* node)
689{
690        char* tmpstr = NULL;
691        tmpstr = createpiconpath(status.aktservice->channel, 1);
692        return tmpstr;
693}
694
695char* gettime(struct skin* node, char* format)
696{
697        time_t sec;
698        struct tm *loctime = NULL;
699        char *buf = NULL, *buf1 = NULL;
700
701        if(format == NULL)
702        {
703                err("NULL detect");
704                return NULL;
705        }
706
707        buf = malloc(MINMALLOC);
708        if(buf == NULL)
709        {
710                err("no memory");
711                return NULL;
712        }
713
714        sec = time(NULL);
715        loctime = olocaltime(&sec);
716
717        if(loctime != NULL)
718        {
719                ostrftime(buf, MINMALLOC, format, loctime);
720                buf1 = ostrcat(buf, NULL, 1, 0);
721        }
722
723        buf1 = string_replace("Mon", "Montag", buf1, 1);
724        buf1 = string_replace("Tue", "Dienstag", buf1, 1);
725        buf1 = string_replace("Wed", "Mittwoch", buf1, 1);
726        buf1 = string_replace("Thu", "Donnerstag", buf1, 1);
727        buf1 = string_replace("Fri", "Freitag", buf1, 1);
728        buf1 = string_replace("Sat", "Samstag", buf1, 1);
729        buf1 = string_replace("Sun", "Sonntag", buf1, 1);
730
731        free(loctime);
732        return buf1;
733}
734
735char* getchannelnr(struct skin* node, struct channel* chnode)
736{
737        char *tmpstr = NULL, *tmpnr = NULL;
738
739        if(chnode == NULL) chnode = status.aktservice->channel;
740
741        if(status.servicetype == 0)
742                tmpstr = getconfig("channellist", NULL);
743        else
744                tmpstr = getconfig("rchannellist", NULL);
745        if(ostrncmp("(BOUQUET)-", tmpstr, 10) == 0 && strlen(tmpstr) > 10)
746        {
747                struct mainbouquet* mainbouquetnode = NULL;
748                int count = 0;
749
750                mainbouquetnode = getmainbouquet(tmpstr + 10);
751                if(mainbouquetnode != NULL && mainbouquetnode->bouquet != NULL)
752                {
753                        struct bouquet* bnode = mainbouquetnode->bouquet;
754
755                        while(bnode != NULL)
756                        {
757                                if(bnode->channel == chnode)
758                                {
759                                        tmpnr = oitoa(mainbouquetnode->bouquet->nr + count);
760                                        return tmpnr;
761                                }
762                                count++;
763                                bnode = bnode->next;
764                        }
765                }
766                return tmpnr;
767        }
768        else
769                return tmpnr;
770}
771
772char* getakttuner(struct skin* node)
773{
774        char* tmpstr = NULL;
775
776        if(status.aktservice->fedev != NULL)
777        {
778                tmpstr = oitoa(status.aktservice->fedev->devnr);
779                return tmpstr;
780        }
781
782        return NULL;
783}
784
785char* getchannellistname(struct skin* node)
786{
787        char* tmpstr = NULL, *tmpstr1 = NULL;
788
789        if(status.servicetype == 0)
790                tmpstr = getconfig("channellist", NULL);
791        else
792                tmpstr = getconfig("rchannellist", NULL);
793
794        if(tmpstr != NULL)
795        {
796                if(ostrncmp("(BOUQUET)-", tmpstr, 10) == 0 && strlen(tmpstr) > 10)
797                        tmpstr1 = ostrcat(tmpstr1, tmpstr + 10, 1, 0);
798
799                else if(ostrncmp("(A-Z)-", tmpstr, 6) == 0 && strlen(tmpstr) > 6)
800                        tmpstr1 = ostrcat(tmpstr1, tmpstr + 6, 1, 0);
801
802                else if(ostrncmp("(SAT)-", tmpstr, 6) == 0 && strlen(tmpstr) > 6)
803                        tmpstr1 = ostrcat(tmpstr1, tmpstr + 6, 1, 0);
804
805                else if(ostrncmp("(PROVIDER)-", tmpstr, 11) == 0 && strlen(tmpstr) > 6)
806                        tmpstr1 = ostrcat(tmpstr1, tmpstr + 11, 1, 0);
807        }
808
809        return tmpstr1;
810}
811
812char* getpowerofftime(struct skin* node, char* format)
813{
814        char* buf = NULL, *buf1 = NULL;
815        int resttime = 0;
816
817        if(format == NULL) return NULL;
818
819        if(status.sd_timer != NULL && status.sd_timer->active)
820        {
821                buf = malloc(MINMALLOC);
822                if(buf == NULL)
823                {
824                        err("no mem");
825                        return NULL;
826                }
827
828                resttime = (status.sd_timer->shutdown_time - time(NULL)) / 60;
829                if(resttime < 0) resttime = 0;
830                snprintf(buf, MINMALLOC, format, resttime);
831                buf1 = ostrcat(buf, NULL, 1, 0);
832        }
833
834        return buf1;
835}
836
837char* gettvpic(struct skin* node, char* pos)
838{
839        struct splitstr* ret = NULL;
840        char* tmpstr = NULL;
841        int count = 0, left = 0, top = 0, width = 0;
842
843        if(pos != NULL)
844        {
845                tmpstr = ostrcat(pos, NULL, 0, 0);
846                ret = strsplit(tmpstr, ":", &count);
847                if(count == 3)
848                {
849                        if((&ret[0])->part != NULL)
850                                left = atoi((&ret[0])->part);
851                        if((&ret[1])->part != NULL)
852                                top = atoi((&ret[1])->part);
853                        if((&ret[2])->part != NULL)
854                                width = atoi((&ret[2])->part);
855                       
856                        setvmpegrect(status.aktservice->videodev, left, top, width, 0);
857                }
858                free(tmpstr); tmpstr = NULL;
859        }
860
861        free(ret); ret = NULL;
862        return NULL;
863}
864
865char* getrecfreesize(struct skin* node)
866{
867        int ret = 0;
868
869        if(status.showrecfreesize > 0)
870        {
871                unsigned long long full = getfullspace(getconfig("rec_path", NULL)) / (1024 * 1024);
872                unsigned long long free = getfreespace(getconfig("rec_path", NULL)) / (1024 * 1024);
873
874                if(full > 0 && full >= free) ret = ((full - free) * 100) / full;
875
876                if(ret < 0) ret = 0;
877                if(ret > 100) ret = 100;
878        }
879
880        return oitoa(ret);
881}
882
883char* getrecfreesizetext(struct skin* node)
884{
885        int ret = 0;
886        char* tmpstr = NULL;
887
888        if(status.showrecfreesize > 0)
889        {
890                unsigned long long full = getfullspace(getconfig("rec_path", NULL)) / (1024 * 1024);
891                unsigned long long free = getfreespace(getconfig("rec_path", NULL)) / (1024 * 1024);
892
893                if(full > 0 && full >= free) ret = ((full - free) * 100) / full;
894
895                if(ret < 0) ret = 0;
896                if(ret > 100) ret = 100;
897               
898                if(status.showrecfreesize == 1)
899                        tmpstr = ostrcat(oitoa(ret), " %", 1, 0);
900                else
901                        tmpstr = ostrcat(ollutoa(free), " MB", 1, 0);
902        }
903
904        return tmpstr;
905}
906
907char* gethbbtv(struct skin* node, char* path)
908{
909        char* tmpstr = NULL;
910
911        if(status.aktservice->channel != NULL)
912        {
913    if(status.aktservice->channel->hbbtvurl != NULL)
914      tmpstr = ostrcat("hbbtv_on.png", "", 0, 0);
915    else
916      tmpstr = ostrcat("hbbtv_off.png", "", 0, 0);
917
918                if(path != NULL)
919                        tmpstr = ostrcat("/", tmpstr, 0, 1);
920                tmpstr = ostrcat(path, tmpstr, 0, 1);
921        }
922       
923        return tmpstr;
924}
925
926char* getimgname(struct skin* node)
927{
928        char* tmpstr = NULL;
929
930        tmpstr = readfiletomem(getconfig("imagenamefile", NULL), 1);
931
932        return tmpstr;
933}
934
935char* getoscamcaid(struct skin* node)
936{
937        char* buf = NULL, *tmpstr = NULL;
938
939        buf = readfiletomem("/tmp/ecm.info", 1);
940        tmpstr = ostrstr(buf, "caid:");
941        if(tmpstr != NULL)
942        {
943                tmpstr = stringreplacecharonce(tmpstr, '\n', '\0');
944                tmpstr = ostrcat(tmpstr, NULL, 0, 0);
945        }
946        free(buf); buf = NULL;
947
948        return tmpstr;
949}
950
951char* getoscampid(struct skin* node)
952{
953        char* buf = NULL, *tmpstr = NULL;
954
955        buf = readfiletomem("/tmp/ecm.info", 1);
956        tmpstr = ostrstr(buf, "pid:");
957        if(tmpstr != NULL)
958        {
959                tmpstr = stringreplacecharonce(tmpstr, '\n', '\0');
960                tmpstr = ostrcat(tmpstr, NULL, 0, 0);
961        }
962        free(buf); buf = NULL;
963
964        return tmpstr;
965}
966
967char* getoscamprov(struct skin* node)
968{
969        char* buf = NULL, *tmpstr = NULL;
970
971        buf = readfiletomem("/tmp/ecm.info", 1);
972        tmpstr = ostrstr(buf, "prov:");
973        if(tmpstr != NULL)
974        {
975                tmpstr = stringreplacecharonce(tmpstr, '\n', '\0');
976                tmpstr = ostrcat(tmpstr, NULL, 0, 0);
977        }
978        free(buf); buf = NULL;
979
980        return tmpstr;
981}
982
983char* getoscamreader(struct skin* node)
984{
985        char* buf = NULL, *tmpstr = NULL;
986
987        buf = readfiletomem("/tmp/ecm.info", 1);
988        tmpstr = ostrstr(buf, "reader:");
989        if(tmpstr != NULL)
990        {
991                tmpstr = stringreplacecharonce(tmpstr, '\n', '\0');
992                tmpstr = ostrcat(tmpstr, NULL, 0, 0);
993        }
994        free(buf); buf = NULL;
995
996        return tmpstr;
997}
998
999char* getoscamfrom(struct skin* node)
1000{
1001        char* buf = NULL, *tmpstr = NULL;
1002
1003        buf = readfiletomem("/tmp/ecm.info", 1);
1004        tmpstr = ostrstr(buf, "from:");
1005        if(tmpstr != NULL)
1006        {
1007                tmpstr = stringreplacecharonce(tmpstr, '\n', '\0');
1008                tmpstr = ostrcat(tmpstr, NULL, 0, 0);
1009        }
1010        free(buf); buf = NULL;
1011
1012        return tmpstr;
1013}
1014
1015char* getoscamprotocol(struct skin* node)
1016{
1017        char* buf = NULL, *tmpstr = NULL;
1018
1019        buf = readfiletomem("/tmp/ecm.info", 1);
1020        tmpstr = ostrstr(buf, "protocol:");
1021        if(tmpstr != NULL)
1022        {
1023                tmpstr = stringreplacecharonce(tmpstr, '\n', '\0');
1024                tmpstr = ostrcat(tmpstr, NULL, 0, 0);
1025        }
1026        free(buf); buf = NULL;
1027
1028        return tmpstr;
1029}
1030
1031char* getoscamhops(struct skin* node)
1032{
1033        char* buf = NULL, *tmpstr = NULL;
1034
1035        buf = readfiletomem("/tmp/ecm.info", 1);
1036        tmpstr = ostrstr(buf, "hops:");
1037        if(tmpstr != NULL)
1038        {
1039                tmpstr = stringreplacecharonce(tmpstr, '\n', '\0');
1040                tmpstr = ostrcat(tmpstr, NULL, 0, 0);
1041        }
1042        free(buf); buf = NULL;
1043
1044        return tmpstr;
1045}
1046
1047char* getoscamecmtime(struct skin* node)
1048{
1049        char* buf = NULL, *tmpstr = NULL;
1050
1051        buf = readfiletomem("/tmp/ecm.info", 1);
1052        tmpstr = ostrstr(buf, "ecm time:");
1053        if(tmpstr != NULL)
1054        {
1055                tmpstr = stringreplacecharonce(tmpstr, '\n', '\0');
1056                tmpstr = ostrcat(tmpstr, NULL, 0, 0);
1057        }
1058        free(buf); buf = NULL;
1059
1060        return tmpstr;
1061}
1062
1063char* getoscamcw0(struct skin* node)
1064{
1065        char* buf = NULL, *tmpstr = NULL;
1066
1067        buf = readfiletomem("/tmp/ecm.info", 1);
1068        tmpstr = ostrstr(buf, "cw0:");
1069        if(tmpstr != NULL)
1070        {
1071                tmpstr = stringreplacecharonce(tmpstr, '\n', '\0');
1072                tmpstr = ostrcat(tmpstr, NULL, 0, 0);
1073        }
1074        free(buf); buf = NULL;
1075
1076        return tmpstr;
1077}
1078
1079char* getoscamcw1(struct skin* node)
1080{
1081        char* buf = NULL, *tmpstr = NULL;
1082
1083        buf = readfiletomem("/tmp/ecm.info", 1);
1084        tmpstr = ostrstr(buf, "cw1:");
1085        if(tmpstr != NULL)
1086        {
1087                tmpstr = stringreplacecharonce(tmpstr, '\n', '\0');
1088                tmpstr = ostrcat(tmpstr, NULL, 0, 0);
1089        }
1090        free(buf); buf = NULL;
1091
1092        return tmpstr;
1093}
1094
1095char* getoscamsystem(struct skin* node)
1096{
1097        char* buf = NULL, *tmpstr = NULL;
1098
1099        buf = readfiletomem("/tmp/ecm.info", 1);
1100        tmpstr = ostrstr(buf, "system:");
1101        if(tmpstr != NULL)
1102        {
1103                tmpstr = stringreplacecharonce(tmpstr, '\n', '\0');
1104                tmpstr = ostrcat(tmpstr, NULL, 0, 0);
1105        }
1106        free(buf); buf = NULL;
1107
1108        return tmpstr;
1109}
1110
1111char* getoscamsource(struct skin* node)
1112{
1113        char* buf = NULL, *tmpstr = NULL;
1114
1115        buf = readfiletomem("/tmp/ecm.info", 1);
1116        tmpstr = ostrstr(buf, "source:");
1117        if(tmpstr != NULL)
1118        {
1119                tmpstr = stringreplacecharonce(tmpstr, '\n', '\0');
1120                tmpstr = ostrcat(tmpstr, NULL, 0, 0);
1121        }
1122        free(buf); buf = NULL;
1123
1124        return tmpstr;
1125}
1126
1127char* getemu(struct skin* node)
1128{
1129        char* tmpstr = NULL;
1130        char* tmpstr1 = NULL;
1131        tmpstr = string_newline(command("emu.sh infoname"));
1132
1133        if(ostrstr(tmpstr, "not found") != NULL)
1134        {
1135                free(tmpstr);
1136                tmpstr = NULL;
1137        }
1138        else
1139        {
1140                        tmpstr1 = ostrcat(tmpstr, NULL, 0, 0);
1141                        free(tmpstr),tmpstr = NULL;                     
1142                        tmpstr = ostrcat("emu: ", tmpstr1, 0, 0);                       
1143                        free(tmpstr1),tmpstr1 = NULL;
1144        }
1145        return tmpstr;
1146}
1147
1148char* getbufferstatus(struct skin* node)
1149{
1150        int ret = 0, size = 0, status = 0;
1151       
1152        size = playergetbuffersize();
1153        if(size > 0)
1154                        status = playergetbufferstatus();
1155
1156        if(size > 0 && size >= status) ret = 100 - (((size - status) * 100) / size);
1157
1158        if(ret < 0) ret = 0;
1159        if(ret > 100) ret = 100;
1160
1161        return oitoa(ret);
1162}
1163
1164char* getwlanlinkquality(struct skin* node)
1165{
1166        int quality = 0;
1167
1168        quality = wlanlinkquality();
1169
1170        if(quality < 0) quality = 0;
1171        if(quality > 100) quality = 100;
1172
1173        return oitoa(quality);
1174}
1175
1176char* getwlanlinkqualitytext(struct skin* node)
1177{
1178        int quality = 0;
1179        char* tmpstr = NULL;
1180
1181        quality = wlanlinkquality();
1182
1183        if(quality < 0) quality = 0;
1184        if(quality > 100) quality = 100;
1185
1186        tmpstr = ostrcat(oitoa(quality), " %", 1, 0);
1187
1188        return tmpstr;
1189}
1190
1191#endif
Note: See TracBrowser for help on using the repository browser.