[fix](trx-frontend-http): start APRS on scheduler PKT channels

Carry bookmark decoder kinds through visible scheduler virtual channels so PKT/APRS scheduler entries start their decode workers instead of acting as audio-only channels.

Verification: cargo test -p trx-frontend-http vchan
Verification: cargo test -p trx-client (fails in existing config::tests::test_default_config)

Co-authored-by: OpenAI Codex <codex@openai.com>
Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
2026-03-14 13:54:44 +01:00
parent 5590ac5c7d
commit c1e8ce42d2
5 changed files with 98 additions and 22 deletions
+8 -2
View File
@@ -2335,7 +2335,7 @@ async fn handle_audio_client(
match cmd {
VChanCmd::Subscribe { uuid, pcm_rx, send_audio, background_decode } => {
let mut handles = Vec::new();
let is_hidden = background_decode.is_some();
let is_hidden = !send_audio;
if let Ok(mut guard) = hidden_channels_for_rx.lock() {
if is_hidden {
@@ -2345,6 +2345,12 @@ async fn handle_audio_client(
}
}
if let Some(existing_handles) = vchan_tasks.remove(&uuid) {
for handle in existing_handles {
handle.abort();
}
}
if send_audio {
// Spin up an async Opus encoder task for this virtual channel.
let frame_tx = vchan_frame_tx.clone();
@@ -2600,7 +2606,7 @@ async fn handle_audio_client(
uuid,
pcm_rx,
send_audio: !hidden,
background_decode: hidden.then_some(BackgroundDecodeSpec {
background_decode: (!decoder_kinds.is_empty()).then_some(BackgroundDecodeSpec {
base_freq_hz: freq_hz,
decoder_kinds,
}),