Add firmware detection for kobo, adjust input accordingly.

pull/206/head
Giorgio Micotti 11 years ago
parent d9b210c315
commit a145ee19aa

@ -4,6 +4,7 @@ Device = {
survive_screen_saver = false,
touch_dev = nil,
model = nil,
firmware_rev = nil,
}
function Device:getModel()
@ -37,6 +38,9 @@ function Device:getModel()
local std_out = io.popen("/bin/kobo_config.sh", "r")
local codename = std_out:read()
self.model = "Kobo_" .. codename
local version_file = io.open("/mnt/onboard/.kobo/version", "r")
self.firmware_rev = string.sub(version_file:read(),24,28)
version_file:close()
elseif kt_test_fd then
self.model = "KindleTouch"
else
@ -53,6 +57,13 @@ function Device:getModel()
return self.model
end
function Device:getFirmVer()
if not self.model then
self.model = self:getModel()
end
return self.firmware_rev
end
function Device:isKindle4()
return (self:getModel() == "Kindle4")
end

@ -316,12 +316,14 @@ function Input:init()
end
print(_("Auto-detected Kindle Touch"))
elseif Device:isKobo() then
firm_rev = Device:getFirmVer()
input.open("/dev/input/event1")
Device:setTouchInputDev("/dev/input/event1")
input.open("/dev/input/event0") -- Light button and sleep slider
print(_("Auto-detected Kobo"))
self:adjustKoboEventMap()
if dev_mod ~= 'Kobo_trilogy' then
if dev_mod ~= 'Kobo_trilogy' and firm_rev == "2.6.1"
or dev_mod == 'Kobo_dragon' then
function Input:eventAdjustHook(ev)
if ev.type == EV_ABS then
if ev.code == ABS_X then
@ -339,6 +341,19 @@ function Input:init()
end
return ev
end
else
function Input:eventAdjustHook(ev)
if ev.code == ABS_X then
-- We always have to substract from the physical x,
-- regardless of the orientation
if (Screen.width<Screen.height) then
ev.value = Screen.width - ev.value
else
ev.value = Screen.height - ev.value
end
end
return ev
end
end
elseif dev_mod == "Kindle4" then
print(_("Auto-detected Kindle 4"))

Loading…
Cancel
Save