From 7d81aa5cf4857861d441159ff9a68953496eab4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20M=C3=BCller-Knapp?= Date: Tue, 3 Oct 2017 14:59:41 +0200 Subject: [PATCH] [feat] Pocketbook840 enable frontlight (#3294) * Detect PocketBook840 by GetSoftwareVersion() * implement Frontlight-support for 840 via inkview --- frontend/device/pocketbook/device.lua | 1 + frontend/device/pocketbook/powerd.lua | 23 +++++++++++++++++++++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/frontend/device/pocketbook/device.lua b/frontend/device/pocketbook/device.lua index c979951bc..ed96dfce9 100644 --- a/frontend/device/pocketbook/device.lua +++ b/frontend/device/pocketbook/device.lua @@ -106,6 +106,7 @@ end local PocketBook840 = PocketBook:new{ isTouchDevice = yes, hasKeys = yes, + hasFrontlight = yes, display_dpi = 250, emu_events_dev = "/var/dev/shm/emu_events", } diff --git a/frontend/device/pocketbook/powerd.lua b/frontend/device/pocketbook/powerd.lua index a1e23c171..6c5d1fc30 100644 --- a/frontend/device/pocketbook/powerd.lua +++ b/frontend/device/pocketbook/powerd.lua @@ -1,18 +1,37 @@ local BasePowerD = require("device/generic/powerd") local ffi = require("ffi") --- local inkview = ffi.load("inkview") +local inkview = ffi.load("inkview") ffi.cdef[[ -int IsCharging(); +void OpenScreen(); +int GetFrontlightState(void); +void SetFrontlightState(int flstate); ]] local PocketBookPowerD = BasePowerD:new{ is_charging = nil, + fl_min = 0, + fl_max = 100, batt_capacity_file = "/sys/devices/platform/sun5i-i2c.0/i2c-0/0-0034/axp20-supplyer.28/power_supply/battery/capacity", is_charging_file = "/sys/devices/platform/sun5i-i2c.0/i2c-0/0-0034/axp20-supplyer.28/power_supply/battery/status", } function PocketBookPowerD:init() + -- needed for SetFrontlightState / GetFrontlightState + inkview.OpenScreen() +end + +function PocketBookPowerD:frontlightIntensityHW() + if not self.device.hasFrontlight() then return 0 end + return inkview.GetFrontlightState() +end + +function PocketBookPowerD:setIntensityHW(intensity) + if intensity == 0 then + inkview.SetFrontlightState(-1) + else + inkview.SetFrontlightState(intensity) + end end function PocketBookPowerD:getCapacityHW()