Skip to content

Commit 90ee894

Browse files
authored
Merge pull request SHA2017-badge#181 from SHA2017-badge/special-draw-on-sleep
Allow services to execute a special draw function just before sleeping
2 parents 0813030 + d2359f7 commit 90ee894

File tree

2 files changed

+15
-10
lines changed

2 files changed

+15
-10
lines changed

esp32/modules/splash.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# File: splash.py
2-
# Version: 5
2+
# Version: 6
33
# Description: Homescreen for SHA2017 badge
44
# License: MIT
55
# Authors: Renze Nicolai <renze@rnplus.nl>
@@ -109,7 +109,7 @@ def splash_input_init():
109109

110110
def onSleep(idleTime):
111111
draw(False, True)
112-
services.force_draw()
112+
services.force_draw(True)
113113
draw(True, True)
114114

115115
### PROGRAM

esp32/modules/tasks/services.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# File: services.py
2-
# Version: 4
2+
# Version: 5
33
# API version: 2
44
# Description: Background services for SHA2017 badge
55
# License: MIT
@@ -111,10 +111,7 @@ def setup(drawCb=None):
111111
print("[SERVICES] Loop requested but not defined in service "+app)
112112

113113
if drawEnabled and drawCb:
114-
try:
115-
drawCallbacks.append(srv.draw)
116-
except:
117-
print("[SERVICES] Draw requested but not defined in service "+app)
114+
drawCallbacks.append(srv)
118115

119116
# Add the script to the global service list
120117
services.append(srv)
@@ -137,9 +134,9 @@ def draw_task():
137134
deleted = []
138135

139136
for i in range(0, len(drawCallbacks)):
140-
cb = drawCallbacks[i]
141137
rqi = 0
142138
try:
139+
cb = drawCallbacks[i].draw
143140
[rqi, space_used] = cb(y)
144141
y = y - space_used
145142
except BaseException as e:
@@ -155,6 +152,7 @@ def draw_task():
155152
deleted.append(cb)
156153

157154
for i in range(0,len(deleted)):
155+
dcb = deleted[i]
158156
print("[DEBUG] Deleted draw callback: ",dcb)
159157
drawCallbacks = list(dcb for dcb in drawCallbacks if dcb!=deleted[i])
160158

@@ -177,12 +175,19 @@ def draw_task():
177175
drawCallback(True) # Complete draw
178176
return retVal
179177

180-
def force_draw():
178+
def force_draw(goingToSleep=False):
181179
global drawCallbacks
182180
if len(drawCallbacks)>0:
183181
y = ugfx.height()
184-
for cb in drawCallbacks:
182+
for srv in drawCallbacks:
185183
try:
184+
if not goingToSleep:
185+
cb = srv.draw
186+
else:
187+
try:
188+
cb = srv.draw_going_to_sleep
189+
except:
190+
cb = srv.draw
186191
[rqi, space_used] = cb(y)
187192
y = y - space_used
188193
except BaseException as e:

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy