"""
PBP/PBS/STR/BV-03-C: Encrypted Streaming Support, Standard Quality - PBS
(TSPC_PBP_1_1 AND TSPC_PBP_6_6 AND TSPC_PBP_6_4) OR TSPC_ALL

Configuration: 16kHz, encrypted, stereo (2 BISes)
PBP Features: 0x03 (Standard Quality + Encrypted)
"""

import logging
import os

from auracast.auracast_config import AuracastGlobalConfig, AuracastBigConfig, AuracastQosFast
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"))

    config = AuracastGlobalConfig()
    config.qos_config = AuracastQosFast()
    config.transport = "serial:/dev/ttyAMA3,1000000,rtscts"

    # Standard Quality: 16kHz
    config.auracast_sampling_rate_hz = 16000
    config.octets_per_frame = 40

    big = AuracastBigConfig()
    big.random_address = "F1:F1:F2:F3:F4:F5"
    big.audio_source = "file:./testdata/announcement_en.wav"
    big.num_bis = 1
    big.id = 12
    big.name = "Broadcaster"
    big.code = "0x0102680553F1415AA265BBAFC6EA03B8"  # Encrypted (hex format)

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