mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Guard against trying to get any kind of frontlight info on devices without one. So far the flIntensity prop has always been there, even on devices without one, but better not assume that'll always be the case ;). That, and be consistent with the other lipc_handle tests.
70 lines
1.9 KiB
Lua
70 lines
1.9 KiB
Lua
local BasePowerD = require("device/generic/powerd")
|
|
-- liblipclua, see require below
|
|
|
|
local KindlePowerD = BasePowerD:new{
|
|
fl_min = 0, fl_max = 24,
|
|
|
|
flIntensity = nil,
|
|
battCapacity = nil,
|
|
is_charging = nil,
|
|
lipc_handle = nil,
|
|
}
|
|
|
|
function KindlePowerD:init()
|
|
local lipc = require("liblipclua")
|
|
if lipc then
|
|
self.lipc_handle = lipc.init("com.github.koreader.kindlepowerd")
|
|
end
|
|
if self.device.hasFrontlight() then
|
|
if self.lipc_handle ~= nil then
|
|
self.flIntensity = self.lipc_handle:get_int_property("com.lab126.powerd", "flIntensity")
|
|
else
|
|
self.flIntensity = self:read_int_file(self.fl_intensity_file)
|
|
end
|
|
end
|
|
end
|
|
|
|
function KindlePowerD:toggleFrontlight()
|
|
local sysint = self:read_int_file(self.fl_intensity_file)
|
|
if sysint == 0 then
|
|
self:setIntensity(self.flIntensity)
|
|
else
|
|
os.execute("echo -n 0 > " .. self.fl_intensity_file)
|
|
end
|
|
end
|
|
|
|
function KindlePowerD:setIntensityHW()
|
|
if self.lipc_handle ~= nil then
|
|
self.lipc_handle:set_int_property("com.lab126.powerd", "flIntensity", self.flIntensity)
|
|
else
|
|
os.execute("echo -n ".. self.flIntensity .." > " .. self.fl_intensity_file)
|
|
end
|
|
end
|
|
|
|
function KindlePowerD:getCapacityHW()
|
|
if self.lipc_handle ~= nil then
|
|
self.battCapacity = self.lipc_handle:get_int_property("com.lab126.powerd", "battLevel")
|
|
else
|
|
self.battCapacity = self:read_int_file(self.batt_capacity_file)
|
|
end
|
|
return self.battCapacity
|
|
end
|
|
|
|
function KindlePowerD:isChargingHW()
|
|
if self.lipc_handle ~= nil then
|
|
self.is_charging = self.lipc_handle:get_int_property("com.lab126.powerd", "isCharging")
|
|
else
|
|
self.is_charging = self:read_int_file(self.is_charging_file)
|
|
end
|
|
return self.is_charging == 1
|
|
end
|
|
|
|
function KindlePowerD:__gc()
|
|
if self.lipc_handle then
|
|
self.lipc_handle:close()
|
|
self.lipc_handle = nil
|
|
end
|
|
end
|
|
|
|
return KindlePowerD
|