You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.2 KiB
45 lines
1.2 KiB
--- a/glcddrivers/framebuffer.c
|
|
+++ b/glcddrivers/framebuffer.c
|
|
@@ -24,6 +24,18 @@
|
|
#include "config.h"
|
|
#include "framebuffer.h"
|
|
|
|
+int proc_put(const char *path, const char *value, const int len)
|
|
+{
|
|
+ int ret, ret2;
|
|
+ int pfd = open(path, O_WRONLY);
|
|
+ if (pfd < 0)
|
|
+ return pfd;
|
|
+ ret = write(pfd, value, len);
|
|
+ ret2 = close(pfd);
|
|
+ if (ret2 < 0)
|
|
+ return ret2;
|
|
+ return ret;
|
|
+}
|
|
|
|
namespace GLCD
|
|
{
|
|
@@ -443,4 +455,13 @@
|
|
bbox[3] = 0;
|
|
}
|
|
|
|
+void cDriverFramebuffer::SetBrightness(unsigned int dimm)
|
|
+{
|
|
+ std::string value = std::to_string((int)(255*dimm*10/100));
|
|
+ if (access("/proc/stb/lcd/oled_brightness", F_OK) == 0)
|
|
+ proc_put("/proc/stb/lcd/oled_brightness", value.c_str(), value.length());
|
|
+ else if (access("/proc/stb/fp/oled_brightness", F_OK) == 0)
|
|
+ proc_put("/proc/stb/fp/oled_brightness", value.c_str(), value.length());
|
|
+}
|
|
+
|
|
} // end of namespace
|
|
--- a/glcddrivers/framebuffer.h
|
|
+++ b/glcddrivers/framebuffer.h
|
|
@@ -53,6 +53,7 @@
|
|
virtual void SetPixel(int x, int y, uint32_t data);
|
|
//virtual void Set8Pixels(int x, int y, unsigned char data);
|
|
virtual void Refresh(bool refreshAll = false);
|
|
+ virtual void SetBrightness(unsigned int);
|
|
};
|
|
|
|
} // end of namespace
|
|
|