diff --git a/src/driver/simple_display.cpp b/src/driver/simple_display.cpp index 569dc5b53..19a7d0c9d 100644 --- a/src/driver/simple_display.cpp +++ b/src/driver/simple_display.cpp @@ -26,6 +26,7 @@ #include #include +#include #include #include @@ -62,20 +63,6 @@ static bool timer_icon = false; #include static bool usb_icon = false; static bool timer_icon = false; -static int proc_put(const char *path, bool state) -{ - int ret, ret2; - int pfd = open(path, O_WRONLY); - if (pfd < 0) - return pfd; - ret = write(pfd, state ? "1" : "0", 1); - ret2 = close(pfd); - if (ret2 < 0) - return ret2; - return ret; -} -#else -static int proc_put(const char *, bool) {return 0;} #endif static char volume = 0; @@ -558,10 +545,7 @@ void CLCD::setBrightness(int dimm) } #elif HAVE_ARM_HARDWARE std::string value = to_string(255/15*dimm); - int pfd = open("/proc/stb/lcd/oled_brightness", O_WRONLY); - if (pfd) - write(pfd, value.c_str(), value.length()); - close(pfd); + proc_put("/proc/stb/lcd/oled_brightness", value.c_str(), value.length()); #else (void)dimm; // avoid compiler warning #endif @@ -807,7 +791,7 @@ void CLCD::ShowIcon(fp_icon i, bool on) led_r = on; if (g_info.hw_caps->display_type == HW_DISPLAY_LINE_TEXT) { SetIcons(SPARK_REC1, on); - proc_put("/proc/stb/lcd/symbol_recording",on);} + proc_put("/proc/stb/lcd/symbol_recording", on ? "1" : "0", 1);} else setled(led_r, -1); /* switch instant on / switch off if disabling */ break; @@ -815,18 +799,18 @@ void CLCD::ShowIcon(fp_icon i, bool on) led_g = on; if (g_info.hw_caps->display_type == HW_DISPLAY_LINE_TEXT) { SetIcons(SPARK_PLAY, on); - proc_put("/proc/stb/lcd/symbol_playback",on);} + proc_put("/proc/stb/lcd/symbol_playback", on ? "1" : "0", 1);} else setled(-1, led_g); break; case FP_ICON_USB: usb_icon = on; SetIcons(SPARK_USB, on); - proc_put("/proc/stb/lcd/symbol_usb",on); + proc_put("/proc/stb/lcd/symbol_usb", on ? "1" : "0", 1); break; case FP_ICON_HDD: SetIcons(SPARK_HDD, on); - proc_put("/proc/stb/lcd/symbol_hdd",on); + proc_put("/proc/stb/lcd/symbol_hdd", on ? "1" : "0", 1); break; case FP_ICON_PAUSE: SetIcons(SPARK_PAUSE, on); @@ -843,14 +827,14 @@ void CLCD::ShowIcon(fp_icon i, bool on) break; case FP_ICON_LOCK: SetIcons(SPARK_CA, on); - proc_put("/proc/stb/lcd/symbol_scrambled",on); + proc_put("/proc/stb/lcd/symbol_scrambled", on ? "1" : "0", 1); break; case FP_ICON_RADIO: SetIcons(SPARK_AUDIO, on); break; case FP_ICON_TV: SetIcons(SPARK_TVMODE_LOG, on); - proc_put("/proc/stb/lcd/symbol_tv",on); + proc_put("/proc/stb/lcd/symbol_tv", on ? "1" : "0", 1); break; case FP_ICON_HD: SetIcons(SPARK_DOUBLESCREEN, on); @@ -858,14 +842,14 @@ void CLCD::ShowIcon(fp_icon i, bool on) case FP_ICON_CLOCK: timer_icon = on; SetIcons(SPARK_CLOCK, on); - proc_put("/proc/stb/lcd/symbol_timeshift",on); + proc_put("/proc/stb/lcd/symbol_timeshift", on ? "1" : "0", 1); break; default: break; } } -void CVFD::ShowText(const char * str, bool update_timestamp) +void CLCD::ShowText(const char * str, bool update_timestamp) { int fd = dev_open(); int len = strlen(str);