mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
This adds screenshot functionality for the Kobo Aura. The pam-files generated can be read and converted using Imagemagick for linux/windows. I've added the infomessage because it takes 5+ tries to get a screenshot by tapping the lower left and upper right corners. The other diagonal is not working for the Kobo Aura yet.
42 lines
1.0 KiB
Lua
42 lines
1.0 KiB
Lua
local InputContainer = require("ui/widget/container/inputcontainer")
|
|
local Screen = require("ui/screen")
|
|
local GestureRange = require("ui/gesturerange")
|
|
local UIManager = require("ui/uimanager")
|
|
|
|
local ReaderScreenshot = InputContainer:new{}
|
|
|
|
function ReaderScreenshot:init()
|
|
local diagonal = math.sqrt(
|
|
math.pow(Screen:getWidth(), 2) +
|
|
math.pow(Screen:getHeight(), 2)
|
|
)
|
|
self.ges_events = {
|
|
Screenshot = {
|
|
GestureRange:new{
|
|
ges = "two_finger_tap",
|
|
scale = {diagonal - Screen:scaleByDPI(100), diagonal},
|
|
rate = 1.0,
|
|
}
|
|
},
|
|
}
|
|
end
|
|
|
|
function ReaderScreenshot:onScreenshot()
|
|
if Device:getModel() ~= 'Kobo_phoenix' then
|
|
os.execute("screenshot")
|
|
else Screen.bb:invert()
|
|
local screenshot_name = os.date("screenshots/Screenshot_%Y-%B-%d_%Hh%M.pam")
|
|
UIManager:show(InfoMessage:new{
|
|
text = _("Writing screen to "..screenshot_name),
|
|
timeout = 2,
|
|
})
|
|
Screen.bb:writePAM(screenshot_name)
|
|
DEBUG(screenshot_name)
|
|
Screen.bb:invert()
|
|
end
|
|
UIManager.full_refresh = true
|
|
return true
|
|
end
|
|
|
|
return ReaderScreenshot
|