X-Git-Url: https://git.cweiske.de/enigma2.git/blobdiff_plain/e809534d8af6a2f742dbc6d1341c7df804a42234..e2396e2fde72ce1e605623e46cb4f2ddfb63740b:/lib/driver/avswitch.cpp diff --git a/lib/driver/avswitch.cpp b/lib/driver/avswitch.cpp index 9d2ae007..80c7755b 100644 --- a/lib/driver/avswitch.cpp +++ b/lib/driver/avswitch.cpp @@ -65,28 +65,24 @@ void eAVSwitch::setAspectRatio(int ratio) 3-16:9 forced */ - char *any="any"; - char *norm="4:3"; - char *wide="16:9"; - int fd; + char *aspect[] = {"4:3", "4:3", "any", "16:9"}; + char *policy[] = {"letterbox", "panscan", "bestfit", "panscan"}; + int fd; if((fd = open("/proc/stb/video/aspect", O_WRONLY)) < 0) { printf("cannot open /proc/stb/video/aspect\n"); return; } - switch(ratio) { - case 0: - write(fd, any, strlen(any)); - break; - case 1: - write(fd, norm, strlen(norm)); - break; - case 2: - case 3: - write(fd, wide, strlen(wide)); - break; - } + write(fd, aspect[ratio], strlen(aspect[ratio])); close(fd); + + if((fd = open("/proc/stb/video/policy", O_WRONLY)) < 0) { + printf("cannot open /proc/stb/video/policy\n"); + return; + } + write(fd, policy[ratio], strlen(policy[ratio])); + close(fd); + } void eAVSwitch::setVideomode(int mode) @@ -95,7 +91,7 @@ void eAVSwitch::setVideomode(int mode) char *ntsc="ntsc"; int fd; - return 0; + return; //FIXME: bug in driver (cannot set PAL) if((fd = open("/proc/stb/video/videomode", O_WRONLY)) < 0) { printf("cannot open /proc/stb/video/videomode\n"); @@ -105,7 +101,7 @@ void eAVSwitch::setVideomode(int mode) case 0: write(fd, pal, strlen(pal)); break; - case 3: + case 1: write(fd, ntsc, strlen(ntsc)); break; }