refractoring of the config

This commit is contained in:
2025-03-04 15:50:49 +01:00
parent b8b4c82be0
commit 4d6f39b2de
4 changed files with 54 additions and 61 deletions
+42 -44
View File
@@ -43,10 +43,9 @@ global_base_config = AuracastGlobalConfig(qos_config=AuracastQoSConfig())
# "'stdin' -> receive audio from stdin as int16 PCM, "
# "'file:<filename> -> read audio from a .wav or raw int16 PCM file. "
@dataclass
class AuracastBigConfig:
id: int = 123456,
id: int = 123456
random_address: hci.Address = hci.Address('F1:F1:F2:F3:F4:F5')
code: str = None # Broadcast_Code a 16-octet parameter provided by the Host
language: str = 'eng' # See: https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes
@@ -58,49 +57,48 @@ class AuracastBigConfig:
precode_wav: bool = False
iso_que_len: int = 64
# example configurations with inherit
@dataclass
class AuracastBigConfigDe(AuracastBigConfig):
id: int = 12
random_address: hci.Address=hci.Address('F1:F1:F2:F3:F4:F5')
name: str = 'Broadcast0'
language: str ='deu'
program_info: str = 'Announcements German'
audio_source: str = 'file:./testdata/announcement_de.wav'
# Instanciate some example configurations
broadcast_de = AuracastBigConfig(
id=12,
random_address=hci.Address('F1:F1:F2:F3:F4:F5'),
name = 'Broadcast0',
language='deu',
program_info = 'Announcements German',
audio_source = 'file:./testdata/announcement_de.wav',
)
@dataclass
class AuracastBigConfigEn(AuracastBigConfig):
id: int = 123
random_address: str =hci.Address('F2:F1:F2:F3:F4:F5')
name: str = 'Broadcast1'
language: str ='eng'
program_info: str = 'Announcements English'
audio_source: str = 'file:./testdata/announcement_en.wav'
broadcast_en = AuracastBigConfig(
id=123,
random_address=hci.Address('F2:F1:F2:F3:F4:F5'),
name = 'Broadcast1',
language='eng',
program_info = 'Announcements English',
audio_source = 'file:./testdata/announcement_en.wav',
)
@dataclass
class AuracastBigConfigFr(AuracastBigConfig):
id: int =1234
random_address: str =hci.Address('F3:F1:F2:F3:F4:F5')
name: str = 'Broadcast2'
language: str ='fra'
program_info: str = 'Announcements French'
audio_source: str = 'file:./testdata/announcement_fr.wav'
broadcast_fr = AuracastBigConfig(
id=1234,
random_address=hci.Address('F3:F1:F2:F3:F4:F5'),
name = 'Broadcast2',
language='fra',
program_info = 'Announcements French',
audio_source = 'file:./testdata/announcement_fr.wav',
)
@dataclass
class AuracastBigConfigEs(AuracastBigConfig):
id: int =12345
random_address: str =hci.Address('F4:F1:F2:F3:F4:F5')
name: str = 'Broadcast3'
language: str ='spa'
program_info: str = 'Announcements Spanish'
audio_source: str = 'file:./testdata/announcement_es.wav'
broadcast_es = AuracastBigConfig(
id=12345,
random_address=hci.Address('F4:F1:F2:F3:F4:F5'),
name = 'Broadcast3',
language='spa',
program_info = 'Announcements Spanish',
audio_source = 'file:./testdata/announcement_es.wav',
)
broadcast_it = AuracastBigConfig(
id=123456,
random_address=hci.Address('F5:F1:F2:F3:F4:F5'),
name = 'Broadcast4',
language='ita',
program_info = 'Announcements Italian',
audio_source = 'file:./testdata/announcement_it.wav',
)
@dataclass
class AuracastBigConfigIt(AuracastBigConfig):
id: int =1234567
random_address: str =hci.Address('F5:F1:F2:F3:F4:F5')
name: str = 'Broadcast4'
language: str ='ita'
program_info: str = 'Announcements Italian'
audio_source: str = 'file:./testdata/announcement_it.wav'
+6 -11
View File
@@ -496,13 +496,8 @@ async def broadcast(global_conf: auracast_config.AuracastGlobalConfig, big_conf:
if __name__ == "__main__":
import os
if os.environ['LOG_LEVEL']:
log_level = getattr(logging, os.environ['LOG_LEVEL'])
else:
log_level = logging.DEBUG
log_level = os.environ['LOG_LEVEL']
logging.basicConfig(
level=log_level,
level=os.environ.get('LOG_LEVEL', logging.DEBUG),
format='%(module)s.py:%(lineno)d %(levelname)s: %(message)s'
)
os.chdir(os.path.dirname(__file__))
@@ -525,11 +520,11 @@ if __name__ == "__main__":
global_conf.qos_config = auracast_config.qos_config_mono_high_rel
bigs = [
auracast_config.broadcast_de,
auracast_config.broadcast_en,
auracast_config.broadcast_fr,
#auracast_config.broadcast_es,
#auracast_config.broadcast_it,
auracast_config.AuracastBigConfigDe(),
auracast_config.AuracastBigConfigEn(),
auracast_config.AuracastBigConfigFr(),
#auracast_config.AuracastBigConfigEs(),
#auracast_config.AuracastBigConfigIt(),
]
for big in bigs: # TODO: encrypted streams are not working
#big.code = 'ff'*16 # returns hci/HCI_ENCRYPTION_MODE_NOT_ACCEPTABLE_ERROR
+3 -3
View File
@@ -123,9 +123,9 @@ async def main():
global_conf.transport='serial:/dev/serial/by-id/usb-ZEPHYR_Zephyr_HCI_UART_sample_81BD14B8D71B5662-if00,115200,rtscts' #nrf52dongle hci_uart usb cdc
big_conf = [
auracast_config.broadcast_de,
auracast_config.broadcast_en,
auracast_config.broadcast_fr,
auracast_config.AuracastBigConfigDe(),
auracast_config.AuracastBigConfigEn(),
auracast_config.AuracastBigConfigFr(),
#auracast_config.broadcast_es,
#auracast_config.broadcast_it,
]
+3 -3
View File
@@ -11,9 +11,9 @@ global_conf = auracast_config.global_base_config
global_conf.transport='serial:/dev/serial/by-id/usb-ZEPHYR_Zephyr_HCI_UART_sample_81BD14B8D71B5662-if00,115200,rtscts' #nrf52dongle hci_uart usb cdc
big_conf = { # TODO: use another dataclass for this to be able to iterate over the names
'broadcast_de': auracast_config.broadcast_de,
'broadcast_en': auracast_config.broadcast_en,
'broadcast_fr': auracast_config.broadcast_fr,
'broadcast_de': auracast_config.AuracastBigConfigDe(),
'broadcast_en': auracast_config.AuracastBigConfigEn(),
'broadcast_fr': auracast_config.AuracastBigConfigFr(),
#auracast_config.broadcast_es,
#auracast_config.broadcast_it,
}