source: titan/titan/avsettings.h @ 42987

Last change on this file since 42987 was 42144, checked in by gost, 6 years ago

[titan] mutant fix DTSHD

File size: 16.3 KB
Line 
1#ifndef AVSETTINGS_H
2#define AVSETTINGS_H
3
4//flag 0: without vfd output
5//flag 1: with vfd output
6void screenavsettings(int flag)
7{
8        int rcret = 0;
9        char* ret = NULL;
10        struct skin* avsettings = getscreen("avsettings");
11        struct skin* listbox = getscreennode(avsettings, "listbox");
12        struct skin* resolution = getscreennode(avsettings, "resolution");
13        struct skin* aktresolution = getscreennode(avsettings, "aktresolution");
14        struct skin* autoresolution = getscreennode(avsettings, "autoresolution");
15        struct skin* autoressd = getscreennode(avsettings, "autoressd");
16        struct skin* autorests = getscreennode(avsettings, "autorests");
17        struct skin* stepmute = getscreennode(avsettings, "stepmute");
18        struct skin* policy = getscreennode(avsettings, "policy");
19        struct skin* aspect = getscreennode(avsettings, "aspect");
20        struct skin* colformat = getscreennode(avsettings, "colformat");
21        struct skin* colformatscart = getscreennode(avsettings, "colformatscart");
22        struct skin* audiosource = getscreennode(avsettings, "audiosource");
23        struct skin* ac3default = getscreennode(avsettings, "ac3default");
24        struct skin* ac3mode = getscreennode(avsettings, "ac3mode");
25        struct skin* aacmode = getscreennode(avsettings, "aacmode");
26        struct skin* ac3plusmode = getscreennode(avsettings, "ac3plusmode");
27        struct skin* dtshdmode = getscreennode(avsettings, "dtshdmode");
28        struct skin* wmapromode = getscreennode(avsettings, "wmapromode");
29        struct skin* wssmode = getscreennode(avsettings, "wssmode");
30        struct skin* volautochangevalue = getscreennode(avsettings, "volautochangevalue");
31        struct skin* mode3d = getscreennode(avsettings, "mode3d");
32        struct skin* autosubtitle = getscreennode(avsettings, "autosubtitle");
33        struct skin* audiodelaybitstream = getscreennode(avsettings, "audiodelaybitstream");
34        struct skin* audiodelaypcm = getscreennode(avsettings, "audiodelaypcm");
35        struct skin* playerstart = getscreennode(avsettings, "playerstart");
36        struct skin* playerstop = getscreennode(avsettings, "playerstop");
37
38        struct skin* tmp = NULL;
39
40        ret = getvideomodechoices();
41        changeinput(resolution, ret);
42        free(ret); ret = NULL;
43
44        ret = getconfig("av_videomode", NULL);
45        if(ret == NULL)
46        {
47                ret = getvideomode();
48                setchoiceboxselection(resolution, ret);
49                free(ret); ret = NULL;
50        }
51        else
52                setchoiceboxselection(resolution, ret);
53               
54        ret = getvideomode();
55        changeinput(aktresolution, ret);
56        free(ret); ret = NULL;
57       
58        autoressd->hidden=YES;
59        autorests->hidden=YES;
60        if(getconfig("av_videomode_autores", NULL) != NULL)
61        {
62                if(ostrcmp(getconfig("av_videomode_autores", NULL), "off") != 0)
63                {
64                        if(ostrcmp(getconfig("av_videomode_autores", NULL), "auto") != 0)
65                                autoressd->hidden=NO;
66                        else {
67                                autoressd->hidden=NO;
68                                autorests->hidden=NO;
69                        }
70                }
71        }
72        int setlr=0;
73        addchoicebox(autoresolution, "off", _("off"));
74        addchoicebox(autoresolution, "auto", _("auto"));
75        addchoicebox(autoresolution, "key", _("redKey"));
76        setchoiceboxselection(autoresolution, getconfig("av_videomode_autores", NULL));
77
78        ret = getvideomodechoices();
79        changeinput(autoressd, ret);
80        free(ret); ret = NULL;
81        setchoiceboxselection(autoressd, getconfig("av_videomode_autores_sd", NULL));
82
83        addchoicebox(autorests, "2", _("2 sec"));
84        addchoicebox(autorests, "4", _("4 sec"));
85        addchoicebox(autorests, "6", _("6 sec"));
86        addchoicebox(autorests, "8", _("8 sec"));
87        addchoicebox(autorests, "10", _("10 sec"));
88        setchoiceboxselection(autorests, getconfig("av_videomode_autores_ts", NULL));
89        addchoicebox(stepmute, "0", _("off"));
90        addchoicebox(stepmute, "1", _("on"));
91        setchoiceboxselection(stepmute, getconfig("stepmute", NULL));
92
93        changeinput(playerstart, "30\n40\n50\n60\n70\n80\n90\n100\n10\n20");
94        setchoiceboxselection(playerstart, getconfig("vol_playerstart", NULL));
95#ifdef MIPSEL
96                playerstart->hidden = YES;
97#endif
98        changeinput(playerstop, "70\n80\n90\n100\n10\n20\n30\n40\n50\n60");
99        setchoiceboxselection(playerstop, getconfig("vol_playerstop", NULL));
100#ifdef MIPSEL
101                playerstop->hidden = YES;
102#endif
103        ret = getpolicychoices();
104        changeinput(policy, ret);
105        free(ret); ret = NULL;
106        ret = getpolicy();
107        setchoiceboxselection(policy, ret);
108        free(ret); ret = NULL;
109        if(checkrealbox("HD51") == 0)
110        {
111                ret = getaspectchoices();
112                changeinput(aspect, ret);
113                free(ret); ret = NULL;
114                ret = getaspect();
115                setchoiceboxselection(aspect, ret);
116                free(ret); ret = NULL;
117        }
118        else
119                aspect->hidden = YES;
120
121#ifdef MIPSEL
122        aspect->hidden = YES;
123#endif
124
125        if(checkrealbox("HD51") == 0)
126        {
127                ret = getcolorformat(2);
128                if(ret == NULL || strlen(ret) == 0)
129                {
130                        free(ret); ret = NULL;
131                        colformatscart->hidden = YES;
132               
133                        ret = getcolorformatchoices(0);
134                        changeinput(colformat, ret);
135                        free(ret); ret = NULL;
136                        ret = getcolorformat(1);
137                        setchoiceboxselection(colformat, ret);
138                        free(ret); ret = NULL;
139                }
140                else
141                {
142                        free(ret); ret = NULL;
143                        colformatscart->hidden = NO;
144               
145                        ret = getcolorformatchoices(1);
146                        changeinput(colformat, ret);
147                        free(ret); ret = NULL;
148                        ret = getcolorformat(1);
149                        setchoiceboxselection(colformat, ret);
150                        free(ret); ret = NULL;
151               
152                        ret = getcolorformatchoices(2);
153                        changeinput(colformatscart, ret);
154                        free(ret); ret = NULL;
155                        ret = getcolorformat(2);
156                        setchoiceboxselection(colformatscart, ret);
157                        free(ret); ret = NULL;
158                }
159        }
160        else
161        {
162                colformatscart->hidden = YES;
163                colformat->hidden = YES;
164        }
165               
166
167        ret = getaudiosourcechoices();
168        changeinput(audiosource, ret);
169        free(ret); ret = NULL;
170        ret = getaudiosource();
171        setchoiceboxselection(audiosource, ret);
172        free(ret); ret = NULL;
173
174#ifdef MIPSEL
175        audiosource->hidden = YES;
176#endif
177
178        addchoicebox(ac3default, "0", _("no"));
179        addchoicebox(ac3default, "1", _("yes"));
180        setchoiceboxselection(ac3default, getconfig("av_ac3default", NULL));
181
182        ret = getac3choices();
183        changeinput(ac3mode, ret);
184        free(ret); ret = NULL;
185        ret = getac3();
186        setchoiceboxselection(ac3mode, ret);
187        free(ret); ret = NULL;
188
189        if(checkrealbox("HD51") == 0)
190        {
191                ret = getaacchoices();
192                changeinput(aacmode, ret);
193                free(ret); ret = NULL;
194                ret = getaac();
195                setchoiceboxselection(aacmode, ret);
196                free(ret); ret = NULL;
197        }
198        else
199                aacmode->hidden = YES;
200       
201        if((checkrealbox("HD51") == 1 || checkbox("DM900") == 1 || checkbox("DM920") == 1 || checkbox("DM520") == 1 || checkbox("DM525") == 1) && ac3plusmode != NULL)
202        {
203                if(getconfigint("av_can_ac3plusmode", NULL) == YES)
204                {
205                        ac3plusmode->hidden = NO;
206                        ret = getac3pluschoices();
207                        changeinput(ac3plusmode, ret);
208                        free(ret); ret = NULL;
209                        ret = getac3plus();
210                        setchoiceboxselection(ac3plusmode, ret);
211                        free(ret); ret = NULL;
212                }
213                else
214                        ac3plusmode->hidden = YES;
215                       
216                if(getconfigint("av_can_dtshdmode", NULL) == YES)
217                {
218                        dtshdmode->hidden = NO;
219                        ret = getdtshdchoices();
220                        changeinput(dtshdmode, ret);
221                        free(ret); ret = NULL;
222                        ret = getdtshd();
223                        setchoiceboxselection(dtshdmode, ret);
224                        free(ret); ret = NULL;
225                }
226                else
227                        dtshdmode->hidden = YES;
228                       
229                if(getconfigint("av_can_wmapromode", NULL) == YES)
230                {
231                        wmapromode->hidden = NO;
232                        ret = getwmaprochoices();
233                        changeinput(wmapromode, ret);
234                        free(ret); ret = NULL;
235                        ret = getwmapro();
236                        setchoiceboxselection(wmapromode, ret);
237                        free(ret); ret = NULL;
238                }
239                else
240                        wmapromode->hidden = YES;
241        }
242        else
243        {
244                ac3plusmode->hidden = YES;
245                dtshdmode->hidden = YES;
246                wmapromode->hidden = YES;
247        }
248#ifdef SH4
249                aacmode->hidden = YES;
250#endif
251
252        if(checkrealbox("HD51") == 0)
253        {       
254                ret = getwsschoices();
255                changeinput(wssmode, ret);
256                free(ret); ret = NULL;
257                ret = getwss();
258                setchoiceboxselection(wssmode, ret);
259                free(ret); ret = NULL;
260        }
261        else
262                wssmode->hidden = YES;
263               
264#ifdef SH4
265                wssmode->hidden = YES;
266#endif
267       
268        changeinput(volautochangevalue, "0\n5\n10\n15\n20\n25\n30\n35\n40\n45\n50\n55\n60\n65\n70\n75");
269        setchoiceboxselection(volautochangevalue, getconfig("volautochangevalue", NULL));
270
271#ifdef MIPSEL
272                volautochangevalue->hidden = YES;
273#endif
274
275        ret = getmode3dchoices();
276        changeinput(mode3d, ret);
277        free(ret); ret = NULL;
278        ret = getmode3d();
279// does not work
280        /*addchoicebox(mode3d, "off", _("Off"));
281        addchoicebox(mode3d, "sbs", _("SideBySide"));
282        addchoicebox(mode3d, "tab", _("TopAndBottom"));*/       
283        setchoiceboxselection(mode3d, ret);
284        free(ret); ret = NULL;
285
286        addchoicebox(autosubtitle, "0", _("no"));
287        addchoicebox(autosubtitle, "1", _("yes"));
288        setchoiceboxselection(autosubtitle, getconfig("autosubtitle", NULL));
289
290#ifdef MIPSEL
291        addchoicebox(audiodelaybitstream, "0", _("no"));
292        addchoicebox(audiodelaybitstream, "08CA", "25ms");
293        addchoicebox(audiodelaybitstream, "1194", "50ms");
294        addchoicebox(audiodelaybitstream, "1A5E", "75ms");
295        addchoicebox(audiodelaybitstream, "2328", "100ms");
296        addchoicebox(audiodelaybitstream, "34BC", "150ms");
297        addchoicebox(audiodelaybitstream, "4650", "200ms");
298        addchoicebox(audiodelaybitstream, "6978", "300ms");
299        addchoicebox(audiodelaybitstream, "8CA0", "400ms");
300        addchoicebox(audiodelaybitstream, "AFC8", "500ms");
301        setchoiceboxselection(audiodelaybitstream, getconfig("audiodelaybitstream", NULL));
302       
303        addchoicebox(audiodelaypcm, "0", _("no"));
304        addchoicebox(audiodelaypcm, "08CA", "25ms");
305        addchoicebox(audiodelaypcm, "1194", "50ms");
306        addchoicebox(audiodelaypcm, "1A5E", "75ms");
307        addchoicebox(audiodelaypcm, "2328", "100ms");
308        addchoicebox(audiodelaypcm, "34BC", "150ms");
309        addchoicebox(audiodelaypcm, "4650", "200ms");
310        addchoicebox(audiodelaypcm, "6978", "300ms");
311        addchoicebox(audiodelaypcm, "8CA0", "400ms");
312        addchoicebox(audiodelaypcm, "AFC8", "500ms");
313        setchoiceboxselection(audiodelaypcm, getconfig("audiodelaypcm", NULL));
314#else   
315        addchoicebox(audiodelaybitstream, "0", _("no"));
316        addchoicebox(audiodelaybitstream, "350", "10ms");
317        addchoicebox(audiodelaybitstream, "700", "20ms");
318        addchoicebox(audiodelaybitstream, "1050", "30ms");
319        addchoicebox(audiodelaybitstream, "1400", "40ms");
320        addchoicebox(audiodelaybitstream, "1750", "50ms");
321        addchoicebox(audiodelaybitstream, "2100", "60ms");
322        addchoicebox(audiodelaybitstream, "2450", "70ms");
323        addchoicebox(audiodelaybitstream, "2800", "80ms");
324        addchoicebox(audiodelaybitstream, "3150", "90ms");
325        addchoicebox(audiodelaybitstream, "3500", "100ms");
326        setchoiceboxselection(audiodelaybitstream, getconfig("audiodelaybitstream", NULL));
327
328        addchoicebox(audiodelaypcm, "0", _("no"));
329        addchoicebox(audiodelaypcm, "350", "10ms");
330        addchoicebox(audiodelaypcm, "700", "20ms");
331        addchoicebox(audiodelaypcm, "1050", "30ms");
332        addchoicebox(audiodelaypcm, "1400", "40ms");
333        addchoicebox(audiodelaypcm, "1750", "50ms");
334        addchoicebox(audiodelaypcm, "2100", "60ms");
335        addchoicebox(audiodelaypcm, "2450", "70ms");
336        addchoicebox(audiodelaypcm, "2800", "80ms");
337        addchoicebox(audiodelaypcm, "3150", "90ms");
338        addchoicebox(audiodelaypcm, "3500", "100ms");
339        setchoiceboxselection(audiodelaypcm, getconfig("audiodelaypcm", NULL));
340#endif
341       
342        drawscreen(avsettings, 0, 0);
343        addscreenrc(avsettings, listbox);
344
345//      if(flag == 1 && listbox->select != NULL)
346        if(listbox->select != NULL)
347                writevfdmenu(listbox->select->text);
348
349        tmp = listbox->select;
350        while(1)
351        {
352                addscreenrc(avsettings, tmp);
353                rcret = waitrc(avsettings, 0, 0);
354                tmp = listbox->select;
355
356//              if(flag == 1 && listbox->select != NULL)
357//              {
358                        if(rcret == getrcconfigint("rcup", NULL) || rcret == getrcconfigint("rcdown", NULL))
359                                writevfdmenu(listbox->select->text);
360                        if(rcret == getrcconfigint("rcleft", NULL) || rcret == getrcconfigint("rcright", NULL))
361                        {
362                                setlr = 1;
363                                writevfdmenu(listbox->select->ret);
364                        }       
365//              }
366//          else
367//          {
368//                      if(listbox->select != NULL)
369//                      {       
370//                              if(rcret == getrcconfigint("rcleft", NULL) || rcret == getrcconfigint("rcright", NULL))
371//                                      setlr = 1;
372//                      }
373//              }
374                if(setlr == 1 && ostrcmp(listbox->select->name, "autoresolution") == 0)
375                {       
376                        autoressd->hidden=YES;
377                        autorests->hidden=YES;
378                        if(ostrcmp(autoresolution->ret, "off") != 0)
379                        {
380                                if(ostrcmp(autoresolution->ret, "key") == 0)
381                                        autoressd->hidden=NO;
382                                else if(ostrcmp(autoresolution->ret, "auto") == 0)
383                                {       
384                                        autoressd->hidden=NO;
385                                        autorests->hidden=NO;
386                                }
387                        }
388                        drawscreen(avsettings, 0, 0);
389                }
390                setlr = 0;
391       
392                if(rcret == getrcconfigint("rcexit", NULL)) break;
393                if(flag == 1 || rcret == getrcconfigint("rcok", NULL))
394                {
395                        if(resolution->ret != NULL)
396                        {
397                                ret = getvideomode();
398                                if(ostrcmp(ret, resolution->ret) != 0)
399                                {
400                                        setvideomode(resolution->ret, 1);
401                                        changefbresolution(resolution->ret, 0);
402                                        if(flag == 0)
403                                        {
404                                                int tret = textbox(_("Message"), _("Is this Videomode ok ?"), _("OK"), getrcconfigint("rcok", NULL), _("EXIT"), getrcconfigint("rcexit", NULL), NULL, 0, NULL, 0, 600, 200, 10, 0);
405                                                if(tret == 0 || tret == 2)
406                                                {
407                                                        //setvideomode(ret, 0);
408                                                        setvideomode(getconfig("av_videomode", NULL), 1);
409                                                        changefbresolution(ret, 0);
410                                                }
411                                                else
412                                                {
413                                                        addconfig("av_videomode", resolution->ret);
414                                                        writeallconfig(1);
415                                                        debug(10, "resolution->ret: %s", resolution->ret);
416                                                        if(ostrncmp("576", resolution->ret, 3) == 0 || ostrncmp("pal", resolution->ret, 3) == 0)
417                                                        {
418                                                                debug(10, "create /var/etc/.scart");
419                                                                writesys("/var/etc/.scart", "0", 0);
420                                                        }
421                                                        else
422                                                        {
423                                                                debug(10, "unlink /var/etc/.scart");
424                                                                unlink("/var/etc/.scart");
425                                                        }
426                                                }
427                                        }
428                                        if(flag == 1) drawscreen(avsettings, 0, 0);
429                                }
430                                free(ret); ret = NULL;
431                        }
432                        if(autoresolution->ret != NULL)
433                        {
434                                addconfig("av_videomode_autores", autoresolution->ret);
435                                addconfig("av_videomode_autores_sd", autoressd->ret);
436                                addconfig("av_videomode_autores_ts", autorests->ret);
437                        }
438                       
439                        if(stepmute->ret != NULL)
440                                addconfig("stepmute", stepmute->ret);
441                               
442                        if(policy->ret != NULL)
443                        {
444                                ret = getpolicy();
445                                if(ostrcmp(ret, policy->ret) != 0)
446                                        setpolicy(policy->ret);
447                                free(ret); ret = NULL;
448                        }
449#ifndef MIPSEL
450                        if(aspect->ret != NULL)
451                        {
452                                ret = getaspect();
453                                if(ostrcmp(ret, aspect->ret) != 0)
454                                        setaspect(aspect->ret);
455                                free(ret); ret = NULL;
456                        }
457#endif
458                        if(colformat->ret != NULL)
459                        {
460                                setcolorformat(colformat->ret, 0);
461                                ret = getcolorformat(1);
462                                changeinput(colformat, ret);
463                                free(ret); ret = NULL;
464                                drawscreen(avsettings, 0, 0);
465                        }
466                        if(colformatscart->ret != NULL)
467                        {
468                                setcolorformat(colformatscart->ret, 1);
469                                ret = getcolorformat(2);
470                                changeinput(colformatscart, ret);
471                                free(ret); ret = NULL;
472                                drawscreen(avsettings, 0, 0);
473                        }
474                        if(audiosource->ret != NULL)
475                        {
476                                ret = getaudiosource();
477                                if(ostrcmp(ret, audiosource->ret) != 0)
478                                        setaudiosource(audiosource->ret);
479                                free(ret); ret = NULL;
480                        }
481                        if(ac3mode->ret != NULL)
482                        {
483                                ret = getac3();
484                                if(ostrcmp(ret, ac3mode->ret) != 0)
485                                        setac3(ac3mode->ret);
486                                free(ret); ret = NULL;
487                        }
488                        if(aacmode->ret != NULL)
489                        {
490                                ret = getaac();
491                                if(ostrcmp(ret, aacmode->ret) != 0)
492                                        setaac(aacmode->ret);
493                                free(ret); ret = NULL;
494                        }
495                        if(ac3plusmode->ret != NULL)
496                        {
497                                ret = getac3plus();
498                                if(ostrcmp(ret, ac3plusmode->ret) != 0)
499                                        setac3plus(ac3plusmode->ret);
500                                free(ret); ret = NULL;
501                        }
502                        if(dtshdmode->ret != NULL)
503                        {
504                                ret = getdtshd();
505                                if(ostrcmp(ret, dtshdmode->ret) != 0)
506                                        setdtshd(dtshdmode->ret);
507                                free(ret); ret = NULL;
508                        }
509                        if(wmapromode->ret != NULL)
510                        {
511                                ret = getwmapro();
512                                if(ostrcmp(ret, wmapromode->ret) != 0)
513                                        setwmapro(wmapromode->ret);
514                                free(ret); ret = NULL;
515                        }
516                        if(wssmode->ret != NULL)
517                        {
518                                ret = getwss();
519                                if(ostrcmp(ret, wssmode->ret) != 0)
520                                        setwss(wssmode->ret);
521                                free(ret); ret = NULL;
522                                drawscreen(avsettings, 0, 0);
523                        }
524                        if(mode3d->ret != NULL)
525                        {
526                                ret = getmode3d();
527                                if(ostrcmp(ret, mode3d->ret) != 0)
528                                {
529                                        clearscreen(avsettings);
530                                        blitfb(0);
531                                        setmode3d(mode3d->ret);
532                                        drawscreen(avsettings, 0, 0);
533                                }
534                                free(ret); ret = NULL;
535                        }
536                        if(audiodelaybitstream->ret != NULL)
537                        {
538                                ret = getaudiodelaybitstream();
539                                if(ostrcmp(ret, audiodelaybitstream->ret) != 0)
540                                        setaudiodelaybitstream(audiodelaybitstream->ret);
541                                free(ret); ret = NULL;
542                        }
543
544                        if(audiodelaypcm->ret != NULL)
545                        {
546                                ret = getaudiodelaypcm();
547                                if(ostrcmp(ret, audiodelaypcm->ret) != 0)
548                                        setaudiodelaypcm(audiodelaypcm->ret);
549                                free(ret); ret = NULL;
550                        }
551
552                        addconfigscreencheck("volautochangevalue", volautochangevalue, 0);
553                        status.volautochangevalue = getconfigint("volautochangevalue", NULL);
554                        addconfigscreencheck("av_ac3default", ac3default, 0);
555                        addconfigscreencheck("autosubtitle", autosubtitle, 0);
556                        status.autosubtitle = getconfigint("autosubtitle", NULL);
557                        addconfigscreen("vol_playerstart", playerstart);
558                        addconfigscreen("vol_playerstop", playerstop);
559
560                        if(rcret == getrcconfigint("rcok", NULL)) break;
561                }
562        }
563
564        delownerrc(avsettings);
565        clearscreen(avsettings);
566}
567
568#endif
Note: See TracBrowser for help on using the repository browser.