mirror of
https://github.com/Xetibo/ReSet.git
synced 2025-04-17 10:18:32 +02:00
fix: spinloop until listener ready
This commit is contained in:
parent
248fc9f526
commit
c2557a714f
|
@ -426,6 +426,11 @@ pub fn start_event_listener(listeners: Arc<Listeners>, wifi_box: Arc<WifiBox>) {
|
||||||
let imp = entry.1.imp();
|
let imp = entry.1.imp();
|
||||||
let mut connected = imp.connected.borrow_mut();
|
let mut connected = imp.connected.borrow_mut();
|
||||||
*connected = imp.access_point.borrow().dbus_path == current_device.path;
|
*connected = imp.access_point.borrow().dbus_path == current_device.path;
|
||||||
|
if *connected {
|
||||||
|
imp.reset_wifi_connected.set_text("Connected");
|
||||||
|
} else {
|
||||||
|
imp.reset_wifi_connected.set_text("");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
use gtk::prelude::FrameExt;
|
use gtk::prelude::FrameExt;
|
||||||
use std::cell::RefCell;
|
use std::cell::RefCell;
|
||||||
|
use std::hint::spin_loop;
|
||||||
use std::rc::Rc;
|
use std::rc::Rc;
|
||||||
use std::sync::Arc;
|
use std::sync::Arc;
|
||||||
|
use std::sync::atomic::Ordering;
|
||||||
|
|
||||||
use crate::components::base::setting_box::SettingBox;
|
use crate::components::base::setting_box::SettingBox;
|
||||||
use crate::components::base::utils::{start_audio_listener, Listeners, Position};
|
use crate::components::base::utils::{start_audio_listener, Listeners, Position};
|
||||||
|
@ -73,10 +75,13 @@ pub const HANDLE_AUDIO_CLICK: fn(Arc<Listeners>, FlowBox, Rc<RefCell<Position>>)
|
||||||
let audio_output = Arc::new(SinkBox::new());
|
let audio_output = Arc::new(SinkBox::new());
|
||||||
let audio_input = Arc::new(SourceBox::new());
|
let audio_input = Arc::new(SourceBox::new());
|
||||||
start_audio_listener(
|
start_audio_listener(
|
||||||
listeners,
|
listeners.clone(),
|
||||||
Some(audio_output.clone()),
|
Some(audio_output.clone()),
|
||||||
Some(audio_input.clone()),
|
Some(audio_input.clone()),
|
||||||
);
|
);
|
||||||
|
if !listeners.pulse_listener.load(Ordering::SeqCst) {
|
||||||
|
spin_loop();
|
||||||
|
}
|
||||||
populate_sinks(audio_output.clone());
|
populate_sinks(audio_output.clone());
|
||||||
populate_sources(audio_input.clone());
|
populate_sources(audio_input.clone());
|
||||||
let sink_frame = wrap_in_flow_box_child(SettingBox::new(&*audio_output));
|
let sink_frame = wrap_in_flow_box_child(SettingBox::new(&*audio_output));
|
||||||
|
@ -93,7 +98,10 @@ pub const HANDLE_VOLUME_CLICK: fn(Arc<Listeners>, FlowBox, Rc<RefCell<Position>>
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let audio_output = Arc::new(SinkBox::new());
|
let audio_output = Arc::new(SinkBox::new());
|
||||||
start_audio_listener(listeners, Some(audio_output.clone()), None);
|
start_audio_listener(listeners.clone(), Some(audio_output.clone()), None);
|
||||||
|
if !listeners.pulse_listener.load(Ordering::SeqCst) {
|
||||||
|
spin_loop();
|
||||||
|
}
|
||||||
populate_sinks(audio_output.clone());
|
populate_sinks(audio_output.clone());
|
||||||
let audio_frame = wrap_in_flow_box_child(SettingBox::new(&*audio_output));
|
let audio_frame = wrap_in_flow_box_child(SettingBox::new(&*audio_output));
|
||||||
reset_main.remove_all();
|
reset_main.remove_all();
|
||||||
|
@ -107,7 +115,10 @@ pub const HANDLE_MICROPHONE_CLICK: fn(Arc<Listeners>, FlowBox, Rc<RefCell<Positi
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let audio_input = Arc::new(SourceBox::new());
|
let audio_input = Arc::new(SourceBox::new());
|
||||||
start_audio_listener(listeners, None, Some(audio_input.clone()));
|
start_audio_listener(listeners.clone(), None, Some(audio_input.clone()));
|
||||||
|
if !listeners.pulse_listener.load(Ordering::SeqCst) {
|
||||||
|
spin_loop();
|
||||||
|
}
|
||||||
populate_sources(audio_input.clone());
|
populate_sources(audio_input.clone());
|
||||||
let source_frame = wrap_in_flow_box_child(SettingBox::new(&*audio_input));
|
let source_frame = wrap_in_flow_box_child(SettingBox::new(&*audio_input));
|
||||||
reset_main.remove_all();
|
reset_main.remove_all();
|
||||||
|
|
|
@ -25,6 +25,3 @@ row.audioRow {
|
||||||
border-color: transparent;
|
border-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
flowboxchild {
|
|
||||||
max-width: 800px;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue