Skip to content

Commit 9e89672

Browse files
author
Bart Lauret
committed
Import DisplayOff-v0.1.zip
0 parents  commit 9e89672

File tree

2 files changed

+146
-0
lines changed

2 files changed

+146
-0
lines changed

DisplayOffApplet.lua

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
--[[
2+
3+
Display Off Applet based on BlankScreen screensaver
4+
5+
--]]
6+
7+
local oo = require("loop.simple")
8+
local io = require("io")
9+
local Framework = require("jive.ui.Framework")
10+
local Window = require("jive.ui.Window")
11+
local Surface = require("jive.ui.Surface")
12+
local Icon = require("jive.ui.Icon")
13+
local Timer = require("jive.ui.Timer")
14+
local Applet = require("jive.Applet")
15+
16+
local jnt = jnt
17+
local appletManager = appletManager
18+
19+
module(..., Framework.constants)
20+
oo.class(_M, Applet)
21+
22+
23+
function openScreensaver(self, menuItem)
24+
log:info("open screensaver")
25+
self.window = Window("text_list")
26+
27+
-- blank screen
28+
self.sw, self.sh = Framework:getScreenSize()
29+
self.bg = Surface:newRGBA(self.sw, self.sh)
30+
self.bg:filledRectangle(0, 0, self.sw, self.sh, 0x000000FF)
31+
32+
self.bgicon = Icon("icon", self.bg)
33+
self.window:addWidget(self.bgicon)
34+
35+
self.window:setShowFrameworkWidgets(false)
36+
37+
-- listeners to allow us to cancel from events, added after window is shown
38+
self.window:addListener(EVENT_WINDOW_ACTIVE | EVENT_HIDE,
39+
function(event)
40+
local type = event:getType()
41+
if type == EVENT_WINDOW_ACTIVE then
42+
self:_screen("off")
43+
else
44+
self:_screen("on")
45+
end
46+
return EVENT_UNUSED
47+
end,
48+
true
49+
)
50+
51+
self.window:addListener(EVENT_MOTION,
52+
function()
53+
self:_screen("on")
54+
self.window:hide()
55+
return EVENT_CONSUME
56+
end)
57+
58+
local manager = appletManager:getAppletInstance("ScreenSavers")
59+
manager:screensaverWindow(self.window, _, _, _, "DisplayOff")
60+
61+
self.window:show(Window.transitionFadeIn)
62+
end
63+
64+
65+
function closeScreensaver(self)
66+
log:info("close screensaver")
67+
self:_screen("on")
68+
end
69+
70+
71+
function onOverlayWindowShown(self)
72+
self:_screen("on")
73+
end
74+
75+
76+
function onOverlayWindowHidden(self)
77+
self:_screen("off")
78+
end
79+
80+
81+
local onTimer = Timer(200, function() _write("/sys/class/backlight/mxc_ipu_bl.0/bl_power", "0") end, true)
82+
83+
function _screen(self, state)
84+
log:info("screen: ", state)
85+
if state == "on" then
86+
Framework:setUpdateScreen(true)
87+
_write("/sys/class/backlight/mxc_ipu_bl.0/bl_power", "1")
88+
_write("/sys/devices/platform/fab4_gpio.0/LCD_DISP", "1")
89+
-- turn on backlight on timer to avoid white flash
90+
onTimer:restart()
91+
else
92+
Framework:setUpdateScreen(false)
93+
_write("/sys/class/backlight/mxc_ipu_bl.0/bl_power", "1")
94+
_write("/sys/devices/platform/fab4_gpio.0/LCD_DISP", "0")
95+
onTimer:stop()
96+
end
97+
end
98+
99+
100+
function _write(file, val)
101+
local fh, err = io.open(file, "w")
102+
if err then
103+
log:warn("Can't write to ", file)
104+
return
105+
end
106+
fh:write(val)
107+
fh:close()
108+
end
109+

DisplayOffMeta.lua

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
--[[
2+
3+
Display Off Applet based on BlankScreen screensaver
4+
5+
--]]
6+
7+
local oo = require("loop.simple")
8+
9+
local AppletMeta = require("jive.AppletMeta")
10+
11+
local appletManager = appletManager
12+
13+
module(...)
14+
oo.class(_M, AppletMeta)
15+
16+
17+
function jiveVersion(self)
18+
return 1, 1
19+
end
20+
21+
22+
function registerApplet(self)
23+
end
24+
25+
26+
function configureApplet(self)
27+
-- remove original
28+
appletManager:callService("removeScreenSaver", "BlankScreen", "openScreensaver")
29+
30+
-- add ourselves
31+
appletManager:callService("addScreenSaver",
32+
"Display Off",
33+
"DisplayOff",
34+
"openScreensaver", _, _, 100,
35+
"closeScreensaver"
36+
)
37+
end

0 commit comments

Comments
 (0)