Merge branch 'bug_518_add_demux_reserve_from_python'
[enigma2.git] / lib / gdi / lcd.cpp
index 3911719466e7e1c6b5b37db45585db5161867b5a..0908d890994bc896091bf7844898ff1ce1c27ed0 100644 (file)
@@ -49,7 +49,9 @@ eDBoxLCD::eDBoxLCD(): eLCD(eSize(132, 64))
        lcdfd = open("/dev/dbox/oled0", O_RDWR);
        if (lcdfd < 0)
        {
-               FILE *f=fopen("/proc/stb/fp/oled_brightness", "w");
+               FILE *f=fopen("/proc/stb/lcd/oled_brightness", "w");
+               if (!f)
+                       f = fopen("/proc/stb/fp/oled_brightness", "w");
                if (f)
                {
                        is_oled = 2;
@@ -102,11 +104,13 @@ int eDBoxLCD::setLCDContrast(int contrast)
 int eDBoxLCD::setLCDBrightness(int brightness)
 {
        eDebug("setLCDBrightness %d", brightness);
-       FILE *f=fopen("/proc/stb/fp/oled_brightness", "w");
+       FILE *f=fopen("/proc/stb/lcd/oled_brightness", "w");
+       if (!f)
+               f = fopen("/proc/stb/fp/oled_brightness", "w");
        if (f)
        {
                if (fprintf(f, "%d", brightness) == 0)
-                       eDebug("write /proc/stb/fp/oled_brightness failed!! (%m)");
+                       eDebug("write /proc/stb/lcd/oled_brightness failed!! (%m)");
                fclose(f);
        }
        else
@@ -166,8 +170,14 @@ void eDBoxLCD::update()
                memset(raw, 0, 64*64);
                for (y=0; y<64; y++)
                {
+                       int pix=0;
                        for (x=0; x<128 / 2; x++)
-                               raw[y*64+x] = (_buffer[y*132 + x * 2 + 2] & 0xF0) |(_buffer[y*132 + x * 2 + 1 + 2] >> 4);
+                       {
+                               pix = (_buffer[y*132 + x * 2 + 2] & 0xF0) |(_buffer[y*132 + x * 2 + 1 + 2] >> 4);
+                               if (inverted)
+                                       pix = 0xFF - pix;
+                               raw[y*64+x] = pix;
+                       }
                }
                if (lcdfd >= 0)
                        write(lcdfd, raw, 64*64);