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