From 0b5545f1258a2578ec6e213389edc6a37c7f7aaf Mon Sep 17 00:00:00 2001 From: Hans-Werner Hilse Date: Fri, 9 Jan 2015 14:10:25 +0000 Subject: [PATCH 1/3] rump implementation for PocketBook devices, to be extended. --- frontend/device.lua | 10 +++++++ frontend/device/pocketbook/device.lua | 39 +++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 frontend/device/pocketbook/device.lua diff --git a/frontend/device.lua b/frontend/device.lua index d68c5bbce..da86f3cc2 100644 --- a/frontend/device.lua +++ b/frontend/device.lua @@ -21,6 +21,16 @@ local function probeDevice() return require("device/kobo/device") end + local pbook_test_fd = lfs.attributes("/ebrmain") + if pbook_test_fd then + return require("device/pocketbook/device") + end + + -- add new ports here: + if --[[ implement a proper test instead --]] false then + return require("device/newport/device") + end + error("did not find a hardware abstraction for this platform") end diff --git a/frontend/device/pocketbook/device.lua b/frontend/device/pocketbook/device.lua new file mode 100644 index 000000000..555e71b04 --- /dev/null +++ b/frontend/device/pocketbook/device.lua @@ -0,0 +1,39 @@ +local Generic = require("device/generic/device") -- <= look at this file! +local DEBUG = require("dbg") + +local function yes() return true end + +local PocketBook = Generic:new{ + -- both the following are just for testing similar behaviour + -- see ffi/framebuffer_mxcfb.lua + model = "KindlePaperWhite", + isKindle = yes, + + isTouchDevice = yes, + display_dpi = 212, + touch_dev = "/dev/input/event0", +} + +function PocketBook:init() + -- this example uses the mxcfb framebuffer driver: + self.screen = require("ffi/framebuffer_mxcfb"):new{device = self, debug = DEBUG} + + -- we inject an input hook for debugging purposes. You probably don't want + -- it after everything is implemented. + self.input:registerEventAdjustHook(function(event) + DEBUG("got event:", event) + end) + + -- no backlight management yet + + self.input.open("/dev/input/event0") + self.input.open("/dev/input/event1") + self.input.open("/dev/input/event2") + self.input.open("/dev/input/event3") + Generic.init(self) +end + +-- maybe additional implementations are needed for other models, +-- testing on PocketBook Lux 2 for now. + +return PocketBook From c28d97394101a193cbed7c0b01378831b60194e6 Mon Sep 17 00:00:00 2001 From: Hans-Werner Hilse Date: Fri, 9 Jan 2015 15:46:33 +0000 Subject: [PATCH 2/3] fix: load input driver before configuring it --- frontend/device/pocketbook/device.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/frontend/device/pocketbook/device.lua b/frontend/device/pocketbook/device.lua index 555e71b04..f6ea818de 100644 --- a/frontend/device/pocketbook/device.lua +++ b/frontend/device/pocketbook/device.lua @@ -18,6 +18,7 @@ function PocketBook:init() -- this example uses the mxcfb framebuffer driver: self.screen = require("ffi/framebuffer_mxcfb"):new{device = self, debug = DEBUG} + self.input = require("device/input"):new{device = self} -- we inject an input hook for debugging purposes. You probably don't want -- it after everything is implemented. self.input:registerEventAdjustHook(function(event) From d016858d752e03557e2728a8a4cd01688768491f Mon Sep 17 00:00:00 2001 From: Hans-Werner Hilse Date: Fri, 9 Jan 2015 15:55:04 +0000 Subject: [PATCH 3/3] only device event0 and event1 do exist, remove others. --- frontend/device/pocketbook/device.lua | 2 -- 1 file changed, 2 deletions(-) diff --git a/frontend/device/pocketbook/device.lua b/frontend/device/pocketbook/device.lua index f6ea818de..afec886f0 100644 --- a/frontend/device/pocketbook/device.lua +++ b/frontend/device/pocketbook/device.lua @@ -29,8 +29,6 @@ function PocketBook:init() self.input.open("/dev/input/event0") self.input.open("/dev/input/event1") - self.input.open("/dev/input/event2") - self.input.open("/dev/input/event3") Generic.init(self) end