47 lines
1.1 KiB
Python
47 lines
1.1 KiB
Python
'''
|
|
Python module for Mopidy Pummeluff frontend.
|
|
'''
|
|
|
|
__all__ = (
|
|
'PummeluffFrontend',
|
|
)
|
|
|
|
from threading import Event
|
|
from logging import getLogger
|
|
|
|
import pykka
|
|
from mopidy import core as mopidy_core
|
|
|
|
from .threads import GPIOHandler, TagReader
|
|
|
|
|
|
LOGGER = getLogger(__name__)
|
|
|
|
|
|
class PummeluffFrontend(pykka.ThreadingActor, mopidy_core.CoreListener):
|
|
'''
|
|
Pummeluff frontend which basically reacts to GPIO button pushes and touches
|
|
of RFID tags.
|
|
'''
|
|
|
|
def __init__(self, config, core): # pylint: disable=unused-argument
|
|
super().__init__()
|
|
self.core = core
|
|
self.stop_event = Event()
|
|
self.gpio_handler = GPIOHandler(core=core, stop_event=self.stop_event)
|
|
self.tag_reader = TagReader(core=core, stop_event=self.stop_event)
|
|
|
|
def on_start(self):
|
|
'''
|
|
Start GPIO handler & tag reader threads.
|
|
'''
|
|
self.gpio_handler.start()
|
|
self.tag_reader.start()
|
|
|
|
def on_stop(self):
|
|
'''
|
|
Set threading stop event to tell GPIO handler & tag reader threads to
|
|
stop their operations.
|
|
'''
|
|
self.stop_event.set()
|