2
0
mirror of https://github.com/koreader/koreader synced 2024-10-31 21:20:20 +00:00
koreader/frontend/device/kindle/powerd.lua
NiLuJe 8a8697c382 Future-proof the frontlight handling on Kindle.
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.
2015-04-28 18:25:56 +02:00

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