Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions modules/events/emote.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from events import Event

class EmoteEvent(Event): ...

class EmotePositiveEvent(EmoteEvent): ...

class EmoteNegativeEvent(EmoteEvent): ...
4 changes: 4 additions & 0 deletions modules/firmware_apps/app_store.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import shutil
import machine
from app_components import Menu, fourteen_pt, sixteen_pt, ten_pt
from events.emote import EmoteNegativeEvent, EmotePositiveEvent
from events.input import BUTTON_TYPES, ButtonDownEvent
from requests import get
from system.eventbus import eventbus
Expand Down Expand Up @@ -157,11 +158,13 @@ def install_app(self, app):
self.update_state("main_menu")
eventbus.emit(InstallNotificationEvent())
eventbus.emit(ShowNotificationEvent("Installed the app!"))
eventbus.emit(EmotePositiveEvent())
except MemoryError:
self.update_state("install_oom")
except Exception as e:
print(e)
eventbus.emit(ShowNotificationEvent("Couldn't install app"))
eventbus.emit(EmoteNegativeEvent())
self.update_state("main_menu")

def update_state(self, state):
Expand Down Expand Up @@ -305,6 +308,7 @@ def compare_version(v1, v2):
else:
self.update_state("main_menu")
eventbus.emit(ShowNotificationEvent("All apps up to date!"))
eventbus.emit(EmotePositiveEvent())

def prepare_installed_menu(self):
def on_cancel():
Expand Down
3 changes: 3 additions & 0 deletions modules/firmware_apps/sponsors.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from app import App
from app_components import Menu
from app_components.background import Background as bg
from events.emote import EmotePositiveEvent
from system.eventbus import eventbus

main_menu_items = [
"AND Digital",
Expand All @@ -22,6 +24,7 @@ def __init__(self):
back_handler=self.back_handler,
)
self.notification = None
eventbus.emit(EmotePositiveEvent())

def back_handler(self):
self.minimise()
Expand Down
5 changes: 5 additions & 0 deletions modules/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
from system.scheduler import scheduler
from system.hexpansion.app import HexpansionManagerApp
from system.patterndisplay.app import PatternDisplay
from system.emotebackleds.app import EmoteBackLEDs
from system.notification.app import NotificationService
from system.launcher.app import Launcher
from system.power.handler import PowerEventHandler
Expand All @@ -22,6 +23,10 @@
# Start led pattern displayer app
scheduler.start_app(PatternDisplay())

# Start back-leds emoter

scheduler.start_app(EmoteBackLEDs())

# Start root app
scheduler.start_app(Launcher(), foreground=True)

Expand Down
39 changes: 39 additions & 0 deletions modules/system/emotebackleds/app.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# BUGS: overrides what hexpansion driver has set to and
# doesn't restore them.

import asyncio
import time
from tildagonos import tildagonos

from machine import PWM

from app import App
from app_components import clear_background
from events.input import BUTTON_TYPES, ButtonDownEvent
from system.hexpansion.config import HexpansionConfig
from system.eventbus import eventbus

from events.emote import EmotePositiveEvent, EmoteNegativeEvent

class EmoteBackLEDs(App):
def __init__(self):
eventbus.on_async(EmotePositiveEvent, self._positive_event, self)
eventbus.on_async(EmoteNegativeEvent, self._negative_event, self)

async def _positive_event(self, event):
for lednum in range(13,19):
tildagonos.leds[lednum] = (0,255,0)
tildagonos.leds.write()
await asyncio.sleep(0.5)
for lednum in range(13,19):
tildagonos.leds[lednum] = (0,0,0)
tildagonos.leds.write()

async def _negative_event(self, event):
for lednum in range(13,19):
tildagonos.leds[lednum] = (255,0,0)
tildagonos.leds.write()
await asyncio.sleep(0.5)
for lednum in range(13,19):
tildagonos.leds[lednum] = (0,0,0)
tildagonos.leds.write()
Loading