diff --git a/espmusicmouse/host_driver/main.py b/espmusicmouse/host_driver/main.py index a66ebba..5e009f5 100644 --- a/espmusicmouse/host_driver/main.py +++ b/espmusicmouse/host_driver/main.py @@ -4,36 +4,39 @@ from led_cmds import (ColorRGBW, ColorHSV, EffectStaticConfig, EffectRandomTwoColorInterpolationConfig, EffectAlexaSwipeConfig, EffectSwipeAndChange) from host_driver import MusicMouseProtocol, RfidTokenRead +from player import AudioPlayer +from glob import glob +import os + +MUSIC_FOLDER = "/home/martin/code/musicmouse/espmusicmouse/host_driver/music" + +audio_player = AudioPlayer() rfid_token_map = { bytes.fromhex("0000000000"): "None", - bytes.fromhex("88041174e9"): "Elephant", - bytes.fromhex("8804ce7230"): "Fox", - bytes.fromhex("88040d71f0"): "Owl", + bytes.fromhex("88041174e9"): "elefant", + bytes.fromhex("8804ce7230"): "fuchs", + bytes.fromhex("88040d71f0"): "eule", } def on_firmware_msg(protocol, message): print("Got message", message) if isinstance(message, RfidTokenRead) and message.id in rfid_token_map: - if rfid_token_map[message.id] == "Elephant": - print("Elephant") - eff = EffectStaticConfig(ColorRGBW(0, 0, 1, 0)) - protocol.send_message(eff) - elif rfid_token_map[message.id] == "Fox": - print("Fox") - eff = EffectRandomTwoColorInterpolationConfig() - protocol.send_message(eff) - elif rfid_token_map[message.id] == "Owl": - print("Owl") - eff = EffectSwipeAndChange() - eff.swipe.primary_color = ColorRGBW(1, 1, 0, 0) - protocol.send_message(eff) - elif rfid_token_map[message.id] == "None": + if rfid_token_map[message.id] == "None": eff = EffectAlexaSwipeConfig() eff.forward = False print("Nothing") protocol.send_message(eff) + audio_player.pause() + else: + eff = EffectSwipeAndChange() + eff.swipe.primary_color = ColorRGBW(1, 1, 0, 0) + protocol.send_message(eff) + figure = rfid_token_map[message.id] + glob_result = glob(os.path.join(MUSIC_FOLDER, figure, "*.mp3")) + audio_player.set_file(glob_result[0]) + audio_player.play() loop = asyncio.get_event_loop() diff --git a/espmusicmouse/host_driver/player.py b/espmusicmouse/host_driver/player.py new file mode 100644 index 0000000..dca1d65 --- /dev/null +++ b/espmusicmouse/host_driver/player.py @@ -0,0 +1,17 @@ +import vlc + + +class AudioPlayer: + def __init__(self): + self.instance = vlc.Instance() + self.mediaplayer = self.instance.media_player_new() + + def set_file(self, filename): + media = self.instance.media_new(filename) + self.mediaplayer.set_media(media) + + def play(self): + self.mediaplayer.play() + + def pause(self): + self.mediaplayer.pause()