mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
Add firmware detection for kobo, adjust input accordingly.
This commit is contained in:
@@ -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"))
|
||||
|
||||
Reference in New Issue
Block a user