move debug function handover, set viewport for Kobo Mini

in order to have debugging facilities in framebuffer:init(), we hand
over the debug function as soon as we can.

Also, set a viewport for Kobo Mini. Hopefully, it fits most people -
I can only test on my unit.
pull/1271/head
Hans-Werner Hilse 10 years ago
parent 4a497cfcfb
commit dacb59f6b2

@ -13,7 +13,7 @@ local Device = Generic:new{
}
function Device:init()
self.screen = require("ffi/framebuffer_android"):new{device = self}
self.screen = require("ffi/framebuffer_android"):new{device = self, debug = DEBUG}
self.powerd = require("device/android/powerd"):new{device = self}
self.input = require("device/input"):new{
device = self,

@ -1,5 +1,6 @@
local Generic = require("device/generic/device")
local util = require("ffi/util")
local DEBUG = require("dbg")
local function yes() return true end
@ -19,21 +20,33 @@ function Device:init()
if viewport then
self.viewport = require("ui/geometry"):new(loadstring("return " .. viewport)())
end
local portrait = os.getenv("EMULATE_READER_FORCE_PORTRAIT")
if portrait then
self.isAlwaysPortrait = yes
end
if util.haveSDL2() then
self.screen = require("ffi/framebuffer_SDL2_0"):new{device = self}
self.screen = require("ffi/framebuffer_SDL2_0"):new{device = self, debug = DEBUG}
self.input = require("device/input"):new{
device = self,
event_map = require("device/emulator/event_map_sdl2"),
}
else
self.screen = require("ffi/framebuffer_SDL1_2"):new{device = self}
self.screen = require("ffi/framebuffer_SDL1_2"):new{device = self, debug = DEBUG}
self.input = require("device/input"):new{
device = self,
event_map = require("device/emulator/event_map_sdl"),
}
end
if portrait then
self.input:registerEventAdjustHook(self.input.adjustTouchSwitchXY)
self.input:registerEventAdjustHook(
self.input.adjustTouchMirrorX,
self.screen:getScreenWidth()
)
end
Generic.init(self)
end

@ -29,6 +29,8 @@ local Device = {
-- some devices have part of their screen covered by the bezel
viewport = nil,
-- enforce portrait orientation on display, no matter how configured at startup
isAlwaysPortrait = no,
}
function Device:new(o)
@ -42,7 +44,6 @@ function Device:init()
if not self.screen then
error("screen/framebuffer must be implemented")
end
self.screen.debug = DEBUG
DEBUG("initializing for device", self.model)
DEBUG("framebuffer resolution:", self.screen:getSize())

@ -69,7 +69,7 @@ local KindleVoyage = Kindle:new{
}
function Kindle2:init()
self.screen = require("ffi/framebuffer_einkfb"):new{device = self}
self.screen = require("ffi/framebuffer_einkfb"):new{device = self, debug = DEBUG}
self.input = require("device/input"):new{
device = self,
event_map = require("device/kindle/event_map_keyboard"),
@ -79,7 +79,7 @@ function Kindle2:init()
end
function KindleDXG:init()
self.screen = require("ffi/framebuffer_einkfb"):new{device = self}
self.screen = require("ffi/framebuffer_einkfb"):new{device = self, debug = DEBUG}
self.input = require("device/input"):new{
device = self,
event_map = require("device/kindle/event_map_keyboard"),
@ -90,7 +90,7 @@ function KindleDXG:init()
end
function Kindle3:init()
self.screen = require("ffi/framebuffer_einkfb"):new{device = self}
self.screen = require("ffi/framebuffer_einkfb"):new{device = self, debug = DEBUG}
self.input = require("device/input"):new{
device = self,
event_map = require("device/kindle/event_map_keyboard"),
@ -101,7 +101,7 @@ function Kindle3:init()
end
function Kindle4:init()
self.screen = require("ffi/framebuffer_einkfb"):new{device = self}
self.screen = require("ffi/framebuffer_einkfb"):new{device = self, debug = DEBUG}
self.input = require("device/input"):new{
device = self,
event_map = require("device/kindle/event_map_kindle4"),
@ -114,7 +114,7 @@ end
local ABS_MT_POSITION_X = 53
local ABS_MT_POSITION_Y = 54
function KindleTouch:init()
self.screen = require("ffi/framebuffer_mxcfb"):new{device = self}
self.screen = require("ffi/framebuffer_mxcfb"):new{device = self, debug = DEBUG}
self.powerd = require("device/kindle/powerd"):new{
device = self,
batt_capacity_file = "/sys/devices/system/yoshi_battery/yoshi_battery0/battery_capacity",
@ -138,7 +138,7 @@ function KindleTouch:init()
end
function KindlePaperWhite:init()
self.screen = require("ffi/framebuffer_mxcfb"):new{device = self}
self.screen = require("ffi/framebuffer_mxcfb"):new{device = self, debug = DEBUG}
self.powerd = require("device/kindle/powerd"):new{
device = self,
fl_intensity_file = "/sys/devices/system/fl_tps6116x/fl_tps6116x0/fl_intensity",
@ -153,7 +153,7 @@ function KindlePaperWhite:init()
end
function KindlePaperWhite2:init()
self.screen = require("ffi/framebuffer_mxcfb"):new{device = self}
self.screen = require("ffi/framebuffer_mxcfb"):new{device = self, debug = DEBUG}
self.powerd = require("device/kindle/powerd"):new{
device = self,
fl_intensity_file = "/sys/class/backlight/max77696-bl/brightness",
@ -168,7 +168,7 @@ function KindlePaperWhite2:init()
end
function KindleBasic:init()
self.screen = require("ffi/framebuffer_mxcfb"):new{device = self}
self.screen = require("ffi/framebuffer_mxcfb"):new{device = self, debug = DEBUG}
self.powerd = require("device/kindle/powerd"):new{
device = self,
batt_capacity_file = "/sys/devices/system/wario_battery/wario_battery0/battery_capacity",
@ -183,7 +183,7 @@ function KindleBasic:init()
end
function KindleVoyage:init()
self.screen = require("ffi/framebuffer_mxcfb"):new{device = self}
self.screen = require("ffi/framebuffer_mxcfb"):new{device = self, debug = DEBUG}
self.powerd = require("device/kindle/powerd"):new{
device = self,
fl_intensity_file = "/sys/class/backlight/max77696-bl/brightness",

@ -1,6 +1,7 @@
local Generic = require("device/generic/device")
local lfs = require("libs/libkoreader-lfs")
local Geom = require("ui/geometry")
local DEBUG = require("dbg")
local function yes() return true end
@ -13,6 +14,8 @@ local Kobo = Generic:new{
touch_switch_xy = true,
-- most Kobos have also mirrored X coordinates
touch_mirrored_x = true,
-- enforce protrait mode on Kobos:
isAlwaysPortrait = yes,
}
-- TODO: hasKeys for some devices?
@ -27,6 +30,8 @@ local KoboTrilogy = Kobo:new{
local KoboPixie = Kobo:new{
model = "Kobo_pixie",
display_dpi = 200,
-- bezel:
viewport = Geom:new{x=0, y=2, w=596, h=794},
}
-- Kobo Aura H2O:
@ -64,7 +69,7 @@ local KoboPhoenix = Kobo:new{
}
function Kobo:init()
self.screen = require("ffi/framebuffer_mxcfb"):new{device = self}
self.screen = require("ffi/framebuffer_mxcfb"):new{device = self, debug = DEBUG}
self.powerd = require("device/kobo/powerd"):new{device = self}
self.input = require("device/input"):new{
device = self,

Loading…
Cancel
Save