1
0
Fork 0
wasp-os/wasp/apps/demo.py

73 lines
1.7 KiB
Python
Raw Normal View History

# SPDX-License-Identifier: LGPL-3.0-or-later
# Copyright (C) 2020 Daniel Thompson
"""Logo demo for PineTime
~~~~~~~~~~~~~~~~~~~~~~~~~
This demo is simply an alternating sweep of the Pine64 and
MicroPython logos. It cycles through a variety of colours
and swaps between the logos every 5 images (so if you change
anything make sure len(colors) is not a multiple of 5).
"""
import wasp
import logo
import icons
colors = (
0xffff,
0xf800, # red
0xffff,
0xffe0, # yellow
0xffff,
0x07e0, # green
0xffff,
0x07ff, # cyan
0xffff,
0x001f, # blue
0xffff,
0xf81f, # magenta
)
class DemoApp():
"""Application for live demos.
Start this to give the watch something "interesting" to do when talking
over demos!
"""
NAME = 'Demo'
ICON = icons.app
def __init__(self):
self._logo = logo.pine64
self._color = 0
self._i = 0
def foreground(self):
"""Draw the first frame and establish the tick."""
self._draw()
wasp.system.request_tick(2000)
def tick(self, ticks):
"""Handle the tick."""
self._draw()
wasp.system.keep_awake()
def _draw(self):
"""Draw the next frame."""
draw = wasp.watch.drawable
if self._i < 5:
self._i += 1
else:
self._i = 0
if self._logo == logo.pine64:
self._logo = logo.micropython
else:
self._logo = logo.pine64
draw.fill()
draw.rleblit(self._logo, fg=colors[self._color])
self._color += 1
if self._color >= len(colors):
self._color = 0