feat(processed-audio-sources): phase 1 - audio filter framework

Add the foundation for audio processing filters, mirroring the existing
picture filter/postprocessing template system:
- AudioFilter base class, AudioFilterRegistry, AudioFilterOptionDef
- AudioProcessingTemplate dataclass + SQLite-backed store
- audio_filter_template meta-filter with recursive resolution
- Full REST API: CRUD templates + filter registry discovery
- Dependency injection wired in dependencies.py and main.py
This commit is contained in:
2026-03-31 17:35:39 +02:00
parent c59107c7c7
commit 86a9d344e6
40 changed files with 1498 additions and 1251 deletions
+4
View File
@@ -51,6 +51,8 @@ from wled_controller.core.game_integration.community_loader import register_comm
from wled_controller.core.mqtt.mqtt_service import MQTTService
from wled_controller.core.mqtt.mqtt_manager import MQTTManager
from wled_controller.storage.mqtt_source_store import MQTTSourceStore
from wled_controller.storage.audio_processing_template_store import AudioProcessingTemplateStore
import wled_controller.core.audio.filters # noqa: F401 — trigger audio filter auto-registration
from wled_controller.core.devices.mqtt_client import set_mqtt_service
from wled_controller.core.backup.auto_backup import AutoBackupEngine
from wled_controller.core.processing.os_notification_listener import OsNotificationListener
@@ -104,6 +106,7 @@ weather_manager = WeatherManager(weather_source_store)
ha_store = HomeAssistantStore(db)
ha_manager = HomeAssistantManager(ha_store)
mqtt_source_store = MQTTSourceStore(db)
audio_processing_template_store = AudioProcessingTemplateStore(db)
game_integration_store = GameIntegrationStore(db)
game_event_bus = GameEventBus()
register_community_adapters()
@@ -231,6 +234,7 @@ async def lifespan(app: FastAPI):
game_event_bus=game_event_bus,
mqtt_store=mqtt_source_store,
mqtt_manager=mqtt_manager,
audio_processing_template_store=audio_processing_template_store,
)
# Register devices in processor manager for health monitoring