"""
CAP/INI/BST/BV-01-C and CAP/INI/BST/BV-05-C:
- BV-01-C: Broadcast Audio Starting for Single Audio Stream
- BV-05-C: Broadcast Audio Starting for Single Audio Streams - Single CCID

Make sure to set TSPX_BST_CODEC_CONFIG to 16_2_1
Restart the stream when asked to terminate.
"""

import logging
import os

from auracast.auracast_config import AuracastGlobalConfig, AuracastBigConfig, AuracastQosRobust
from auracast.multicast import broadcast, run_async


if __name__ == "__main__":
    logging.basicConfig(
        level=os.environ.get("LOG_LEVEL", logging.INFO),
        format="%(module)s.py:%(lineno)d %(levelname)s: %(message)s",
    )

    os.chdir(os.path.join(os.path.dirname(__file__), "../../auracast"))

    # Start from default global config
    config = AuracastGlobalConfig()

    # Use same QoS profile as multicast main
    config.qos_config = AuracastQosRobust()

    # Transport similar to multicast main; adjust if needed for your setup
    # config.transport = "auto"  # let multicast auto-detect
    config.transport = "serial:/dev/ttyAMA3,1000000,rtscts"  # Raspberry Pi default

    # Default BIG, only modify the random address as requested
    big = AuracastBigConfig()
    big.random_address = "F1:F1:F2:F3:F4:F5"
    big.audio_source = "file:./testdata/announcement_en.wav"
    big.id = 12

    run_async(
        broadcast(
            config,
            [big],
        )
    )
