From d3fb278daa3cbd9b2899c8fec9911a46389e931e Mon Sep 17 00:00:00 2001 From: eRnEgIi Date: Mon, 25 Nov 2024 17:47:07 +0100 Subject: [PATCH 1/5] Replace simpleaudio with PySide6.QtMultimedia QSoundEffect --- mypy.ini | 2 -- src/main/python/main/ayab/audio.py | 11 +++++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/mypy.ini b/mypy.ini index c6c137ec..dbbe6d61 100644 --- a/mypy.ini +++ b/mypy.ini @@ -11,8 +11,6 @@ exclude = (?x)( follow_imports= silent strict= True -[mypy-simpleaudio] -ignore_missing_imports= True [mypy-sliplib] ignore_missing_imports= True [mypy-fbs_runtime.*] diff --git a/src/main/python/main/ayab/audio.py b/src/main/python/main/ayab/audio.py index 8b539161..90a6a1ae 100644 --- a/src/main/python/main/ayab/audio.py +++ b/src/main/python/main/ayab/audio.py @@ -21,8 +21,8 @@ from __future__ import annotations from os import path - -import simpleaudio as sa +from PySide6.QtCore import QUrl +from PySide6.QtMultimedia import QSoundEffect from typing import TYPE_CHECKING @@ -34,7 +34,7 @@ class AudioPlayer: def __init__(self, gui: GuiMain): self.__dir = gui.app_context.get_resource("assets") self.__prefs = gui.prefs - self.__cache: dict[str, sa.WaveObject] = {} + self.__cache: dict[str, QSoundEffect] = {} def play(self, sound: str) -> None: """Play audio.""" @@ -59,4 +59,7 @@ def __wave(self, sound: str) -> sa.WaveObject | None: def __load_wave(self, sound: str) -> sa.WaveObject | None: """Get audio from file.""" filename = path.join(self.__dir, sound + ".wav") - return sa.WaveObject.from_wave_file(filename) + print(f"LOAD WAVE: {filename}") + effect = QSoundEffect() + effect.setSource(QUrl.fromLocalFile(filename)) + return effect From c9bd0723bd9aef2b6d718087a529616ce4b80bd3 Mon Sep 17 00:00:00 2001 From: eRnEgIi Date: Mon, 25 Nov 2024 17:56:06 +0100 Subject: [PATCH 2/5] Remove simpleaudio from build workflow --- .github/workflows/build-multi-os.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build-multi-os.yml b/.github/workflows/build-multi-os.yml index 5938e857..ab9b06c8 100644 --- a/.github/workflows/build-multi-os.yml +++ b/.github/workflows/build-multi-os.yml @@ -587,8 +587,6 @@ jobs: cd squashfs-root sudo apt-get install -y avrdude libasound2-dev ./AppRun -m pip install --upgrade pip - # hack to fix setup.py script with faulty include - ./AppRun -m pip install --global-option=build_ext --global-option="-I$(pwd)/opt/${{steps.vars.outputs.python-minor}}/include/${{steps.vars.outputs.python-minor}}" simpleaudio ./AppRun -m pip install -r requirements.build.txt - name: Add AppDir subdirectories to PATH run: | From ef73a2dae6cde31b4d5e5d95946f9688d83b0dbc Mon Sep 17 00:00:00 2001 From: eRnEgIi Date: Mon, 25 Nov 2024 18:12:06 +0100 Subject: [PATCH 3/5] Replace simpleaudio with PySide6.QtMultimedia QSoundEffect --- src/main/python/main/ayab/audio.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/python/main/ayab/audio.py b/src/main/python/main/ayab/audio.py index 90a6a1ae..5db8c37d 100644 --- a/src/main/python/main/ayab/audio.py +++ b/src/main/python/main/ayab/audio.py @@ -59,7 +59,6 @@ def __wave(self, sound: str) -> sa.WaveObject | None: def __load_wave(self, sound: str) -> sa.WaveObject | None: """Get audio from file.""" filename = path.join(self.__dir, sound + ".wav") - print(f"LOAD WAVE: {filename}") effect = QSoundEffect() effect.setSource(QUrl.fromLocalFile(filename)) return effect From bdb0430a2e977b0203f9248dd408f17a5a76667d Mon Sep 17 00:00:00 2001 From: Andre Date: Sat, 30 Nov 2024 20:02:20 +0100 Subject: [PATCH 4/5] adjust return types in audio.py --- src/main/python/main/ayab/audio.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/python/main/ayab/audio.py b/src/main/python/main/ayab/audio.py index 5db8c37d..c60d2b34 100644 --- a/src/main/python/main/ayab/audio.py +++ b/src/main/python/main/ayab/audio.py @@ -47,7 +47,7 @@ def play(self, sound: str) -> None: # else wave_obj.play() - def __wave(self, sound: str) -> sa.WaveObject | None: + def __wave(self, sound: str) -> QSoundEffect | None: """Get and cache audio.""" if sound not in self.__cache: wave_object = self.__load_wave(sound) @@ -56,7 +56,7 @@ def __wave(self, sound: str) -> sa.WaveObject | None: self.__cache[sound] = wave_object return self.__cache[sound] - def __load_wave(self, sound: str) -> sa.WaveObject | None: + def __load_wave(self, sound: str) -> QSoundEffect | None: """Get audio from file.""" filename = path.join(self.__dir, sound + ".wav") effect = QSoundEffect() From 6616b82008cd3a29cc0bc80a680905bc8c6ff59f Mon Sep 17 00:00:00 2001 From: Andre Date: Sat, 30 Nov 2024 20:05:33 +0100 Subject: [PATCH 5/5] remove simpleaudio from requirements.build.txt --- requirements.build.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/requirements.build.txt b/requirements.build.txt index d85d8603..62eeec26 100644 --- a/requirements.build.txt +++ b/requirements.build.txt @@ -6,7 +6,6 @@ Pillow==10 pyserial==3.5 sliplib==0.6.2 bitarray==2.9.2 -simpleaudio==1.0.4 numpy==1.26.4 charset-normalizer<3.0.0 semver==3.0.2 \ No newline at end of file