mirror of
https://github.com/Xetibo/ReSet.git
synced 2025-04-15 09:28:33 +02:00
commit
2e8c7eda33
|
@ -392,6 +392,8 @@ pub fn start_audio_listener(
|
|||
return;
|
||||
}
|
||||
|
||||
let mut conn = start_dbus_audio_listener(conn);
|
||||
|
||||
if sink_box.is_some() {
|
||||
conn = start_output_box_listener(conn, sink_box.unwrap());
|
||||
}
|
||||
|
@ -405,6 +407,7 @@ pub fn start_audio_listener(
|
|||
let _ = conn.process(Duration::from_millis(1000));
|
||||
if !listeners.pulse_listener.load(Ordering::SeqCst) {
|
||||
println!("stopping audio listener");
|
||||
stop_dbus_audio_listener(conn);
|
||||
break;
|
||||
}
|
||||
// thread::sleep(Duration::from_millis(1000));
|
||||
|
@ -412,3 +415,22 @@ pub fn start_audio_listener(
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
fn start_dbus_audio_listener(conn: Connection) -> Connection {
|
||||
let proxy = conn.with_proxy(
|
||||
"org.xetibo.ReSet",
|
||||
"/org/xetibo/ReSet",
|
||||
Duration::from_millis(1000),
|
||||
);
|
||||
let _: Result<(), Error> = proxy.method_call("org.xetibo.ReSet", "StartAudioListener", ());
|
||||
conn
|
||||
}
|
||||
|
||||
fn stop_dbus_audio_listener(conn: Connection) {
|
||||
let proxy = conn.with_proxy(
|
||||
"org.xetibo.ReSet",
|
||||
"/org/xetibo/ReSet",
|
||||
Duration::from_millis(1000),
|
||||
);
|
||||
let _: Result<(), Error> = proxy.method_call("org.xetibo.ReSet", "StopAudioListener", ());
|
||||
}
|
||||
|
|
|
@ -67,15 +67,15 @@ pub const HANDLE_AUDIO_CLICK: fn(Arc<Listeners>, FlowBox) =
|
|||
listeners.stop_network_listener();
|
||||
listeners.stop_bluetooth_listener();
|
||||
let audioOutput = Arc::new(SinkBox::new());
|
||||
populate_sinks(audioOutput.clone());
|
||||
let audioFrame = wrapInFrame(SettingBox::new(&*audioOutput));
|
||||
let audioInput = Arc::new(SourceBox::new());
|
||||
populate_sources(audioInput.clone());
|
||||
start_audio_listener(
|
||||
listeners.clone(),
|
||||
Some(audioOutput.clone()),
|
||||
Some(audioInput.clone()),
|
||||
);
|
||||
populate_sinks(audioOutput.clone());
|
||||
let audioFrame = wrapInFrame(SettingBox::new(&*audioOutput));
|
||||
populate_sources(audioInput.clone());
|
||||
let sourceFrame = wrapInFrame(SettingBox::new(&*audioInput));
|
||||
resetMain.remove_all();
|
||||
resetMain.insert(&audioFrame, -1);
|
||||
|
@ -88,8 +88,8 @@ pub const HANDLE_VOLUME_CLICK: fn(Arc<Listeners>, FlowBox) =
|
|||
listeners.stop_network_listener();
|
||||
listeners.stop_bluetooth_listener();
|
||||
let audioOutput = Arc::new(SinkBox::new());
|
||||
populate_sinks(audioOutput.clone());
|
||||
start_audio_listener(listeners.clone(), Some(audioOutput.clone()), None);
|
||||
populate_sinks(audioOutput.clone());
|
||||
let audioFrame = wrapInFrame(SettingBox::new(&*audioOutput));
|
||||
resetMain.remove_all();
|
||||
resetMain.insert(&audioFrame, -1);
|
||||
|
@ -101,8 +101,8 @@ pub const HANDLE_MICROPHONE_CLICK: fn(Arc<Listeners>, FlowBox) =
|
|||
listeners.stop_network_listener();
|
||||
listeners.stop_bluetooth_listener();
|
||||
let audioInput = Arc::new(SourceBox::new());
|
||||
populate_sources(audioInput.clone());
|
||||
start_audio_listener(listeners.clone(), None, Some(audioInput.clone()));
|
||||
populate_sources(audioInput.clone());
|
||||
let sourceFrame = wrapInFrame(SettingBox::new(&*audioInput));
|
||||
resetMain.remove_all();
|
||||
resetMain.insert(&sourceFrame, -1);
|
||||
|
|
Loading…
Reference in a new issue