Skip to content

Commit 133024f

Browse files
authored
Merge pull request #45 from brentru/pygamer-pybadge-compat
Update library for PyGamer/PyBadge
2 parents b539f43 + 87a67f4 commit 133024f

File tree

2 files changed

+36
-17
lines changed

2 files changed

+36
-17
lines changed

adafruit_pyportal.py

Lines changed: 35 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,15 @@
5050
import busio
5151
from digitalio import DigitalInOut
5252
import pulseio
53-
import adafruit_touchscreen
5453
import neopixel
5554

5655
from adafruit_esp32spi import adafruit_esp32spi, adafruit_esp32spi_wifimanager
5756
import adafruit_esp32spi.adafruit_esp32spi_requests as requests
57+
58+
import adafruit_touchscreen
59+
from adafruit_cursorcontrol.cursorcontrol import Cursor
60+
from adafruit_cursorcontrol.cursorcontrol_cursormanager import CursorManager
61+
5862
try:
5963
from adafruit_display_text.text_area import TextArea # pylint: disable=unused-import
6064
print("*** WARNING ***\nPlease update your library bundle to the latest 'adafruit_display_text' version as we've deprecated 'text_area' in favor of 'label'") # pylint: disable=line-too-long
@@ -163,9 +167,11 @@ def __init__(self, *, url=None, headers=None, json_path=None, regexp_path=None,
163167

164168
self._debug = debug
165169

166-
try:
170+
if hasattr(board, 'TFT_BACKLIGHT'):
167171
self._backlight = pulseio.PWMOut(board.TFT_BACKLIGHT) # pylint: disable=no-member
168-
except ValueError:
172+
elif hasattr(board, 'TFT_LITE'):
173+
self._backlight = pulseio.PWMOut(board.TFT_LITE) # pylint: disable=no-member
174+
else:
169175
self._backlight = None
170176
self.set_backlight(1.0) # turn on backlight
171177

@@ -224,7 +230,12 @@ def __init__(self, *, url=None, headers=None, json_path=None, regexp_path=None,
224230

225231
self._speaker_enable = DigitalInOut(board.SPEAKER_ENABLE)
226232
self._speaker_enable.switch_to_output(False)
227-
self.audio = audioio.AudioOut(board.AUDIO_OUT)
233+
if hasattr(board, 'AUDIO_OUT'):
234+
self.audio = audioio.AudioOut(board.AUDIO_OUT)
235+
elif hasattr(board, 'SPEAKER'):
236+
self.audio = audioio.AudioOut(board.SPEAKER)
237+
else:
238+
raise AttributeError('Board does not have a builtin speaker!')
228239
try:
229240
self.play_file("pyportal_startup.wav")
230241
except OSError:
@@ -347,18 +358,26 @@ def __init__(self, *, url=None, headers=None, json_path=None, regexp_path=None,
347358
self._image_position = (0, 0) # default to top corner
348359
if not self._image_resize:
349360
self._image_resize = (320, 240) # default to full screen
350-
351-
if self._debug:
352-
print("Init touchscreen")
353-
# pylint: disable=no-member
354-
self.touchscreen = adafruit_touchscreen.Touchscreen(board.TOUCH_XL, board.TOUCH_XR,
355-
board.TOUCH_YD, board.TOUCH_YU,
356-
calibration=((5200, 59000),
357-
(5800, 57000)),
358-
size=(320, 240))
359-
# pylint: enable=no-member
360-
361-
self.set_backlight(1.0) # turn on backlight
361+
if hasattr(board, 'TOUCH_XL'):
362+
if self._debug:
363+
print("Init touchscreen")
364+
# pylint: disable=no-member
365+
self.touchscreen = adafruit_touchscreen.Touchscreen(board.TOUCH_XL, board.TOUCH_XR,
366+
board.TOUCH_YD, board.TOUCH_YU,
367+
calibration=((5200, 59000),
368+
(5800, 57000)),
369+
size=(320, 240))
370+
# pylint: enable=no-member
371+
372+
self.set_backlight(1.0) # turn on backlight
373+
elif hasattr(board, 'BUTTON_CLOCK'):
374+
if self._debug:
375+
print("Init cursor")
376+
self.mouse_cursor = Cursor(board.DISPLAY, display_group=self.splash, cursor_speed=8)
377+
self.mouse_cursor.hide()
378+
self.cursor = CursorManager(self.mouse_cursor)
379+
else:
380+
raise AttributeError('PyPortal module requires either a touchscreen or gamepad.')
362381

363382
gc.collect()
364383

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
autodoc_mock_imports = ["rtc", "supervisor", "pulseio", "audioio", "displayio", "neopixel",
2424
"microcontroller", "adafruit_touchscreen", "adafruit_bitmap_font",
2525
"adafruit_display_text", "adafruit_esp32spi", "secrets",
26-
"adafruit_sdcard", "storage", "adafruit_io"]
26+
"adafruit_sdcard", "storage", "adafruit_io", "adafruit_cursorcontrol"]
2727

2828

2929
intersphinx_mapping = {'python': ('https://docs.python.org/3.4', None),'BusDevice': ('https://circuitpython.readthedocs.io/projects/busdevice/en/latest/', None),'CircuitPython': ('https://circuitpython.readthedocs.io/en/latest/', None)}

0 commit comments

Comments
 (0)