diff --git a/server/src/wled_controller/api/routes/audio_processing_templates.py b/server/src/wled_controller/api/routes/audio_processing_templates.py index e1ac218..d917628 100644 --- a/server/src/wled_controller/api/routes/audio_processing_templates.py +++ b/server/src/wled_controller/api/routes/audio_processing_templates.py @@ -6,6 +6,7 @@ from wled_controller.api.auth import AuthRequired from wled_controller.api.dependencies import ( fire_entity_event, get_audio_processing_template_store, + get_audio_source_store, get_processor_manager, ) from wled_controller.api.schemas.audio_processing import ( @@ -158,6 +159,12 @@ async def delete_audio_processing_template( ): """Delete an audio processing template.""" try: + # Check for references from audio sources + audio_source_store = get_audio_source_store() + refs = audio_source_store.get_sources_referencing_template(template_id) + if refs: + names = ", ".join(r.name for r in refs) + raise ValueError(f"Template is in use by audio source(s): {names}") store.delete_template(template_id) fire_entity_event("audio_processing_template", "deleted", template_id) # Hot-update: rebuild filter pipelines for running streams that used this template