From c8be27481c8dee2336ab0fa3e22cb91da3f047ee Mon Sep 17 00:00:00 2001 From: Hzj_jie Date: Wed, 21 Jun 2017 19:10:44 -0700 Subject: [PATCH] Fix synchronizing issue of Kobo front light between KOReader and nickel (#2977) --- frontend/device/generic/powerd.lua | 3 ++- frontend/device/kobo/powerd.lua | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/frontend/device/generic/powerd.lua b/frontend/device/generic/powerd.lua index d2a4cf2e4..fda9ba81c 100644 --- a/frontend/device/generic/powerd.lua +++ b/frontend/device/generic/powerd.lua @@ -35,6 +35,7 @@ function BasePowerD:setIntensityHW(intensity) end function BasePowerD:getCapacityHW() return 0 end function BasePowerD:isChargingHW() return false end function BasePowerD:frontlightIntensityHW() return 0 end +function BasePowerD:isFrontlightOnHW() return self.fl_intensity > self.fl_min end function BasePowerD:turnOffFrontlightHW() self:_setIntensity(self.fl_min) end function BasePowerD:turnOnFrontlightHW() self:_setIntensity(self.fl_intensity) end -- Anything needs to be done before do a real hardware suspend. Such as turn off @@ -52,7 +53,7 @@ end function BasePowerD:_decideFrontlightState() assert(self ~= nil) assert(self.device.hasFrontlight()) - self.is_fl_on = (self.fl_intensity > self.fl_min) + self.is_fl_on = self:isFrontlightOnHW() end function BasePowerD:isFrontlightOff() diff --git a/frontend/device/kobo/powerd.lua b/frontend/device/kobo/powerd.lua index 119b87b0c..7faebeacf 100644 --- a/frontend/device/kobo/powerd.lua +++ b/frontend/device/kobo/powerd.lua @@ -32,7 +32,7 @@ end function KoboPowerD:_syncNickelConf() if self.has_fl_state_cfg and KOBO_SYNC_BRIGHTNESS_WITH_NICKEL then NickelConf.frontLightState.set(self:isFrontlightOn()) - NickelConf.frontLightLevel.set(self:frontlightIntensity()) + NickelConf.frontLightLevel.set(self.fl_intensity) end end @@ -43,6 +43,13 @@ function KoboPowerD:frontlightIntensityHW() return 20 end +function KoboPowerD:isFrontlightOnHW() + if self.has_fl_state_cfg then + return NickelConf.frontLightState.get() + end + return BasePowerD.isFrontlightOnHW(self) +end + function KoboPowerD:turnOffFrontlightHW() self:_setIntensity(0) end function KoboPowerD:setIntensityHW(intensity)