Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4036fee1f5 |
@@ -1588,7 +1588,6 @@ if start_stream:
|
|||||||
analog_gain=cfg.get('analog_gain', 50),
|
analog_gain=cfg.get('analog_gain', 50),
|
||||||
bigs=[
|
bigs=[
|
||||||
auracast_config.AuracastBigConfig(
|
auracast_config.AuracastBigConfig(
|
||||||
id=cfg.get('id', 123456),
|
|
||||||
code=(cfg['stream_passwort'].strip() or None),
|
code=(cfg['stream_passwort'].strip() or None),
|
||||||
name=cfg['name'],
|
name=cfg['name'],
|
||||||
program_info=cfg['program_info'],
|
program_info=cfg['program_info'],
|
||||||
@@ -1643,8 +1642,6 @@ if start_stream:
|
|||||||
if not stream.get('input_device'):
|
if not stream.get('input_device'):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
stream_id = radio_id * 1000 + i + 1 # Unique ID per stream
|
|
||||||
|
|
||||||
# Check if this specific stream uses stereo (dante_stereo_X_Y device)
|
# Check if this specific stream uses stereo (dante_stereo_X_Y device)
|
||||||
input_device = stream['input_device']
|
input_device = stream['input_device']
|
||||||
stream_is_stereo = is_stereo_mode or input_device.startswith('dante_stereo_')
|
stream_is_stereo = is_stereo_mode or input_device.startswith('dante_stereo_')
|
||||||
@@ -1652,7 +1649,6 @@ if start_stream:
|
|||||||
num_channels = 2 if stream_is_stereo else 1
|
num_channels = 2 if stream_is_stereo else 1
|
||||||
|
|
||||||
bigs.append(auracast_config.AuracastBigConfig(
|
bigs.append(auracast_config.AuracastBigConfig(
|
||||||
id=stream_id,
|
|
||||||
code=(stream.get('stream_password', '').strip() or None),
|
code=(stream.get('stream_password', '').strip() or None),
|
||||||
name=stream['name'],
|
name=stream['name'],
|
||||||
program_info=stream['program_info'],
|
program_info=stream['program_info'],
|
||||||
|
|||||||
@@ -133,6 +133,10 @@ def save_settings(persisted: dict, secondary: bool = False) -> None:
|
|||||||
def gen_random_add() -> str:
|
def gen_random_add() -> str:
|
||||||
return ':'.join(['%02X' % random.randint(0, 255) for _ in range(6)])
|
return ':'.join(['%02X' % random.randint(0, 255) for _ in range(6)])
|
||||||
|
|
||||||
|
def gen_random_broadcast_id() -> int:
|
||||||
|
"""Generate a random 24-bit Broadcast ID (1..0xFFFFFF)."""
|
||||||
|
return random.randint(1, 0xFFFFFF)
|
||||||
|
|
||||||
app = FastAPI()
|
app = FastAPI()
|
||||||
|
|
||||||
# Allow CORS for frontend on localhost
|
# Allow CORS for frontend on localhost
|
||||||
@@ -454,10 +458,12 @@ async def init_radio(transport: str, conf: auracast_config.AuracastConfigGroup,
|
|||||||
|
|
||||||
conf.qos_config.max_transport_latency_ms = int(conf.qos_config.number_of_retransmissions) * 10 + 3
|
conf.qos_config.max_transport_latency_ms = int(conf.qos_config.number_of_retransmissions) * 10 + 3
|
||||||
|
|
||||||
# Only generate a new random_address if the BIG is still at the model default.
|
# Generate fresh random_address and broadcast ID for any BIG still at model defaults.
|
||||||
for big in conf.bigs:
|
for big in conf.bigs:
|
||||||
if not getattr(big, 'random_address', None) or big.random_address == DEFAULT_RANDOM_ADDRESS:
|
if not getattr(big, 'random_address', None) or big.random_address == DEFAULT_RANDOM_ADDRESS:
|
||||||
big.random_address = gen_random_add()
|
big.random_address = gen_random_add()
|
||||||
|
if big.id == DEFAULT_BIG_ID:
|
||||||
|
big.id = gen_random_broadcast_id()
|
||||||
|
|
||||||
# Log the final, fully-updated configuration just before creating the Multicaster
|
# Log the final, fully-updated configuration just before creating the Multicaster
|
||||||
log.info('Final multicaster config (transport=%s):\n %s', transport, conf.model_dump_json(indent=2))
|
log.info('Final multicaster config (transport=%s):\n %s', transport, conf.model_dump_json(indent=2))
|
||||||
|
|||||||
Reference in New Issue
Block a user