lesavka/client/src/launcher/ui/local_test_bindings.rs

91 lines
4.1 KiB
Rust
Raw Normal View History

{
{
let widgets = widgets.clone();
let tests = Rc::clone(&tests);
let camera_combo = camera_combo.clone();
let camera_quality_combo = camera_quality_combo.clone();
let camera_test_button = widgets.camera_test_button.clone();
let widgets_handle = widgets.clone();
camera_test_button.connect_clicked(move |_| {
let selected = selected_combo_value(&camera_combo);
let quality = selected_camera_quality(&camera_quality_combo);
let result = {
let mut tests = tests.borrow_mut();
let _ = tests.set_camera_selection(selected.as_deref());
let _ = tests.set_camera_quality(quality);
tests.toggle_camera()
};
update_test_action_result(
&widgets_handle,
&mut tests.borrow_mut(),
result,
"Camera preview started inside the launcher. This stays local until you start the relay.",
"Camera preview stopped. The selected camera stays staged for the next launch.",
);
});
}
{
let widgets = widgets.clone();
let tests = Rc::clone(&tests);
let microphone_combo = microphone_combo.clone();
let speaker_combo = speaker_combo.clone();
let microphone_test_button = widgets.microphone_test_button.clone();
let widgets_handle = widgets.clone();
microphone_test_button.connect_clicked(move |_| {
let mic = selected_combo_value(&microphone_combo);
let sink = selected_combo_value(&speaker_combo);
let result = tests
.borrow_mut()
.toggle_microphone(mic.as_deref(), sink.as_deref());
update_test_action_result(
&widgets_handle,
&mut tests.borrow_mut(),
result,
"Microphone monitor started locally through the selected speaker.",
"Microphone monitor stopped.",
);
});
}
{
let widgets = widgets.clone();
let tests = Rc::clone(&tests);
let speaker_combo = speaker_combo.clone();
let microphone_replay_button = widgets.microphone_replay_button.clone();
let widgets_handle = widgets.clone();
microphone_replay_button.connect_clicked(move |_| {
let result = tests
.borrow_mut()
.toggle_microphone_replay(selected_combo_value(&speaker_combo).as_deref());
update_test_action_result(
&widgets_handle,
&mut tests.borrow_mut(),
result,
"Replaying the latest local mic capture through the selected speaker.",
"Mic replay stopped.",
);
});
}
{
let widgets = widgets.clone();
let tests = Rc::clone(&tests);
let speaker_combo = speaker_combo.clone();
let speaker_test_button = widgets.speaker_test_button.clone();
let widgets_handle = widgets.clone();
speaker_test_button.connect_clicked(move |_| {
let result = tests
.borrow_mut()
.toggle_speaker(selected_combo_value(&speaker_combo).as_deref());
update_test_action_result(
&widgets_handle,
&mut tests.borrow_mut(),
result,
"Speaker tone started locally.",
"Speaker test tone stopped.",
);
});
}
}