diff --git a/src/accessiclock/audio/player.py b/src/accessiclock/audio/player.py index 816a429..43a8d1a 100644 --- a/src/accessiclock/audio/player.py +++ b/src/accessiclock/audio/player.py @@ -19,7 +19,6 @@ # Try to import sound_lib (cross-platform: Windows, macOS, Linux) try: from sound_lib import stream - from sound_lib.main import BASS_Free _use_sound_lib = True logger.debug("sound_lib available") @@ -176,11 +175,7 @@ def cleanup(self) -> None: except Exception as e: logger.warning(f"Error during AudioPlayer cleanup: {e}") - # Free BASS library resources + # Reset BASS initialization flag if _use_sound_lib and _bass_initialized: - try: - BASS_Free() - _bass_initialized = False - logger.info("BASS audio system freed") - except Exception as e: - logger.warning(f"Error freeing BASS audio system: {e}") + _bass_initialized = False + logger.info("BASS audio system cleanup complete") diff --git a/tests/test_audio_player.py b/tests/test_audio_player.py index 64d84f9..d11095b 100644 --- a/tests/test_audio_player.py +++ b/tests/test_audio_player.py @@ -515,68 +515,50 @@ def test_cleanup_stream_error_suppressed(self): player_module._use_sound_lib = original_use player_module._bass_initialized = original_init - def test_cleanup_frees_bass(self): - """cleanup should call BASS_Free when bass was initialized.""" + def test_cleanup_resets_bass_flag(self): + """cleanup should reset _bass_initialized flag.""" import accessiclock.audio.player as player_module from accessiclock.audio.player import AudioPlayer original_use = player_module._use_sound_lib original_init = player_module._bass_initialized - original_bass_free = getattr(player_module, "BASS_Free", None) try: player_module._use_sound_lib = True player_module._bass_initialized = True - mock_bass_free = MagicMock() - player_module.BASS_Free = mock_bass_free - player = AudioPlayer.__new__(AudioPlayer) player._volume = 50 player._current_stream = None player.cleanup() - mock_bass_free.assert_called_once() assert player_module._bass_initialized is False finally: player_module._use_sound_lib = original_use player_module._bass_initialized = original_init - if original_bass_free is not None: - player_module.BASS_Free = original_bass_free - elif hasattr(player_module, "BASS_Free"): - delattr(player_module, "BASS_Free") - def test_cleanup_bass_free_error_suppressed(self): - """cleanup should suppress BASS_Free errors.""" + def test_cleanup_bass_not_initialized_skips_reset(self): + """cleanup should not reset flag when bass was not initialized.""" import accessiclock.audio.player as player_module from accessiclock.audio.player import AudioPlayer original_use = player_module._use_sound_lib original_init = player_module._bass_initialized - original_bass_free = getattr(player_module, "BASS_Free", None) try: player_module._use_sound_lib = True - player_module._bass_initialized = True - - mock_bass_free = MagicMock(side_effect=RuntimeError("bass error")) - player_module.BASS_Free = mock_bass_free + player_module._bass_initialized = False player = AudioPlayer.__new__(AudioPlayer) player._volume = 50 player._current_stream = None - # Should not raise player.cleanup() - mock_bass_free.assert_called_once() + assert player_module._bass_initialized is False finally: player_module._use_sound_lib = original_use player_module._bass_initialized = original_init - if original_bass_free is not None: - player_module.BASS_Free = original_bass_free - elif hasattr(player_module, "BASS_Free"): - delattr(player_module, "BASS_Free") class TestSoundLibIntegration: