91 lines
4.1 KiB
Rust
91 lines
4.1 KiB
Rust
|
|
{
|
||
|
|
{
|
||
|
|
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(µphone_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.",
|
||
|
|
);
|
||
|
|
});
|
||
|
|
}
|
||
|
|
}
|