Skip to content

Commit 4f493cc

Browse files
Merge pull request #693 from braedonsaunders/claude/remove-unused-import-KfbWA
fix: Improve TUI status display and add diagnostic logging
2 parents cb63e5a + a9eef76 commit 4f493cc

3 files changed

Lines changed: 47 additions & 16 deletions

File tree

native-bridge/src/audio/engine.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -350,6 +350,10 @@ impl AudioEngine {
350350
.store(volume.to_bits(), Ordering::SeqCst);
351351
}
352352

353+
pub fn is_monitoring(&self) -> bool {
354+
self.is_monitoring.load(Ordering::Relaxed)
355+
}
356+
353357
// === Track State ===
354358

355359
/// Update track state with partial update - only fields that are Some will be changed

native-bridge/src/protocol/server.rs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -272,9 +272,17 @@ impl BridgeServer {
272272
);
273273
}
274274

275-
info!("[Server] Diagnostic: loop={}, empty_reads={}, cbs=({},{}), buffer={}% ({}/{}), healthy={}",
275+
// Get monitoring state for diagnostics
276+
let app = self.state.lock().await;
277+
let levels = app.audio_engine.get_levels();
278+
let is_monitoring = app.audio_engine.is_monitoring();
279+
drop(app);
280+
281+
info!("[Server] Diagnostic: loop={}, empty_reads={}, cbs=({},{}), buffer={}% healthy={}, mon={}, in={:.3}/{:.3} out={:.3}/{:.3}",
276282
loop_counter, empty_read_counter, input_cbs, output_cbs,
277-
buffer_pct, buffer_used, buffer_capacity, healthy);
283+
buffer_pct, healthy, is_monitoring,
284+
levels.input_level_l, levels.input_level_r,
285+
levels.output_level_l, levels.output_level_r);
278286
last_diagnostic = Instant::now();
279287
}
280288

@@ -541,6 +549,11 @@ impl BridgeServer {
541549
}
542550

543551
BrowserMessage::UpdateEffects { effects, .. } => {
552+
info!("UpdateEffects received: {} effects configured",
553+
[effects.wah.enabled, effects.overdrive.enabled, effects.distortion.enabled,
554+
effects.amp.enabled, effects.compressor.enabled, effects.eq.enabled,
555+
effects.reverb.enabled, effects.delay.enabled, effects.chorus.enabled]
556+
.iter().filter(|&&e| e).count());
544557
let app = self.state.lock().await;
545558
app.audio_engine.update_effects(effects.clone());
546559

native-bridge/src/tui/ui.rs

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -358,20 +358,31 @@ fn draw_network_panel(f: &mut Frame, app: &App, area: Rect) {
358358
])
359359
.split(inner);
360360

361-
// Connection info
362-
let mode_color = match app.network_mode {
363-
NetworkMode::Disconnected => Color::Red,
364-
NetworkMode::Connecting => Color::Yellow,
365-
NetworkMode::P2P => Color::Green,
366-
NetworkMode::Relay => Color::Blue,
367-
NetworkMode::Hybrid => Color::Cyan,
361+
// Connection info - distinguish browser connection from P2P room status
362+
let (mode_text, mode_color) = if app.network_connected {
363+
match app.network_mode {
364+
NetworkMode::Disconnected => ("Standby (no room)".to_string(), Color::Yellow),
365+
NetworkMode::Connecting => ("Connecting...".to_string(), Color::Yellow),
366+
NetworkMode::P2P => ("P2P Direct".to_string(), Color::Green),
367+
NetworkMode::Relay => ("Relay Server".to_string(), Color::Blue),
368+
NetworkMode::Hybrid => ("Hybrid P2P+Relay".to_string(), Color::Cyan),
369+
}
370+
} else {
371+
("Offline".to_string(), Color::Red)
368372
};
369373

370374
let conn_info = Paragraph::new(vec![
371375
Line::from(vec![
372-
Span::raw("Mode: "),
376+
Span::raw("Browser: "),
373377
Span::styled(
374-
format!("{}", app.network_mode),
378+
if app.network_connected { "Connected" } else { "Disconnected" },
379+
Style::default().fg(if app.network_connected { Color::Green } else { Color::Red }).add_modifier(Modifier::BOLD),
380+
),
381+
]),
382+
Line::from(vec![
383+
Span::raw("Room: "),
384+
Span::styled(
385+
mode_text,
375386
Style::default().fg(mode_color).add_modifier(Modifier::BOLD),
376387
),
377388
]),
@@ -571,16 +582,19 @@ fn draw_sidebar(f: &mut Frame, app: &App, area: Rect) {
571582
.block(Block::default().title("Meters").borders(Borders::TOP));
572583
f.render_widget(levels, chunks[0]);
573584

574-
// Mini network
575-
let net_status = if app.network_connected {
576-
format!("{} ({})", app.network_mode, app.peer_count)
585+
// Mini network - show clearer status
586+
let (net_status, net_color) = if app.network_connected {
587+
match app.network_mode {
588+
NetworkMode::Disconnected => ("Standby".to_string(), Color::Yellow), // Browser connected, no room
589+
_ => (format!("{} ({})", app.network_mode, app.peer_count), Color::Green),
590+
}
577591
} else {
578-
"Offline".to_string()
592+
("Offline".to_string(), Color::Red)
579593
};
580594
let network = Paragraph::new(vec![
581595
Line::from(Span::styled(
582596
net_status,
583-
Style::default().fg(if app.network_connected { Color::Green } else { Color::Red }),
597+
Style::default().fg(net_color),
584598
)),
585599
Line::from(vec![
586600
Span::raw("RTT: "),

0 commit comments

Comments
 (0)