mirror of
https://github.com/Xetibo/ReSet.git
synced 2025-07-01 15:57:46 +02:00
merge
This commit is contained in:
parent
3821cf48c2
commit
741d678ffd
12 changed files with 224 additions and 63 deletions
|
@ -193,19 +193,16 @@ pub fn populate_sources(input_box: Arc<SourceBox>) {
|
|||
.reset_source_mute
|
||||
.connect_clicked(move |_| {
|
||||
let imp = output_box_ref_mute.imp();
|
||||
let stream = imp.reset_default_source.clone();
|
||||
let mut stream = stream.borrow_mut();
|
||||
let mut stream = imp.reset_default_source.borrow_mut();
|
||||
stream.muted = !stream.muted;
|
||||
let muted = stream.muted;
|
||||
let index = stream.index;
|
||||
if muted {
|
||||
if stream.muted {
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("microphone-disabled-symbolic");
|
||||
} else {
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("audio-input-microphone-symbolic");
|
||||
}
|
||||
toggle_source_mute(index, muted);
|
||||
toggle_source_mute(stream.index, stream.muted);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -295,6 +292,21 @@ fn get_cards() -> Vec<Card> {
|
|||
res.unwrap().0
|
||||
}
|
||||
|
||||
fn get_default_source_name() -> String {
|
||||
let conn = Connection::new_session().unwrap();
|
||||
let proxy = conn.with_proxy(
|
||||
"org.Xetibo.ReSetDaemon",
|
||||
"/org/Xetibo/ReSetDaemon",
|
||||
Duration::from_millis(1000),
|
||||
);
|
||||
let res: Result<(String,), Error> =
|
||||
proxy.method_call("org.Xetibo.ReSetAudio", "GetDefaultSourceName", ());
|
||||
if res.is_err() {
|
||||
return String::from("");
|
||||
}
|
||||
res.unwrap().0
|
||||
}
|
||||
|
||||
fn get_default_source() -> Source {
|
||||
let conn = Connection::new_session().unwrap();
|
||||
let proxy = conn.with_proxy(
|
||||
|
@ -393,7 +405,6 @@ pub fn start_input_box_listener(conn: Connection, source_box: Arc<SourceBox>) ->
|
|||
|
||||
let res = conn.add_match(source_removed, move |ir: SourceRemoved, _, _| {
|
||||
let source_box = source_removed_box.clone();
|
||||
println!("removed {}", ir.index);
|
||||
glib::spawn_future(async move {
|
||||
glib::idle_add_once(move || {
|
||||
let output_box = source_box.clone();
|
||||
|
@ -433,12 +444,12 @@ pub fn start_input_box_listener(conn: Connection, source_box: Arc<SourceBox>) ->
|
|||
|
||||
let res = conn.add_match(source_changed, move |ir: SourceChanged, _, _| {
|
||||
let source_box = source_changed_box.clone();
|
||||
let default_source = get_default_source();
|
||||
let default_source = get_default_source_name();
|
||||
glib::spawn_future(async move {
|
||||
glib::idle_add_once(move || {
|
||||
let output_box = source_box.clone();
|
||||
let output_box_imp = output_box.imp();
|
||||
let is_default = ir.source.name == default_source.name;
|
||||
let is_default = ir.source.name == default_source;
|
||||
let volume = ir.source.volume.first().unwrap_or(&0_u32);
|
||||
let fraction = (*volume as f64 / 655.36).round();
|
||||
let percentage = (fraction).to_string() + "%";
|
||||
|
@ -451,6 +462,18 @@ pub fn start_input_box_listener(conn: Connection, source_box: Arc<SourceBox>) ->
|
|||
if is_default {
|
||||
output_box_imp.reset_volume_percentage.set_text(&percentage);
|
||||
output_box_imp.reset_volume_slider.set_value(*volume as f64);
|
||||
output_box_imp
|
||||
.reset_default_source
|
||||
.replace(ir.source.clone());
|
||||
if ir.source.muted {
|
||||
output_box_imp
|
||||
.reset_source_mute
|
||||
.set_icon_name("microphone-disabled-symbolic");
|
||||
} else {
|
||||
output_box_imp
|
||||
.reset_source_mute
|
||||
.set_icon_name("audio-input-microphone-symbolic");
|
||||
}
|
||||
imp.reset_selected_source.set_active(true);
|
||||
} else {
|
||||
imp.reset_selected_source.set_active(false);
|
||||
|
@ -459,6 +482,13 @@ pub fn start_input_box_listener(conn: Connection, source_box: Arc<SourceBox>) ->
|
|||
.set_title(ir.source.alias.clone().as_str());
|
||||
imp.reset_volume_percentage.set_text(&percentage);
|
||||
imp.reset_volume_slider.set_value(*volume as f64);
|
||||
if ir.source.muted {
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("microphone-disabled-symbolic");
|
||||
} else {
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("audio-input-microphone-symbolic");
|
||||
}
|
||||
});
|
||||
});
|
||||
true
|
||||
|
|
|
@ -59,7 +59,6 @@ impl SourceEntry {
|
|||
}),
|
||||
);
|
||||
imp.reset_selected_source.set_group(Some(&*check_group));
|
||||
// check_group.set_group(Some(&*imp.resetSelectedSink));
|
||||
if is_default {
|
||||
imp.reset_selected_source.set_active(true);
|
||||
} else {
|
||||
|
@ -75,16 +74,14 @@ impl SourceEntry {
|
|||
let stream = imp.stream.clone();
|
||||
let mut stream = stream.borrow_mut();
|
||||
stream.muted = !stream.muted;
|
||||
let muted = stream.muted;
|
||||
let index = stream.index;
|
||||
if muted {
|
||||
if stream.muted {
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("microphone-disabled-symbolic");
|
||||
} else {
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("audio-input-microphone-symbolic");
|
||||
}
|
||||
toggle_source_mute(index, muted);
|
||||
toggle_source_mute(stream.index, stream.muted);
|
||||
}));
|
||||
}
|
||||
obj
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue