Merge branch 'dev'
This commit is contained in:
32
src/mixer.rs
32
src/mixer.rs
@@ -209,6 +209,10 @@ impl Mixer {
|
|||||||
.borrow_mut()
|
.borrow_mut()
|
||||||
.get_sink_input_info(sink_index, move |r| {
|
.get_sink_input_info(sink_index, move |r| {
|
||||||
if let ListResult::Item(sink_input) = r {
|
if let ListResult::Item(sink_input) = r {
|
||||||
|
if sink_input.channel_map.len() == 1 {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
*operation_result.lock().unwrap() = Some(SinkInputMixerData {
|
*operation_result.lock().unwrap() = Some(SinkInputMixerData {
|
||||||
name: get_sink_input_name(sink_input).unwrap(),
|
name: get_sink_input_name(sink_input).unwrap(),
|
||||||
volume: sink_input.volume.avg().0,
|
volume: sink_input.volume.avg().0,
|
||||||
@@ -234,12 +238,9 @@ impl Mixer {
|
|||||||
Some(current_index) => {
|
Some(current_index) => {
|
||||||
drop(selected_index_lock);
|
drop(selected_index_lock);
|
||||||
|
|
||||||
let removed_sink_input_index = self
|
if let Some(removed_sink_input_index) =
|
||||||
.sink_inputs
|
self.sink_inputs.keys().position(|k| *k == sink_index)
|
||||||
.keys()
|
{
|
||||||
.position(|k| *k == sink_index)
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
let current_key =
|
let current_key =
|
||||||
*self.sink_inputs.keys().nth(current_index).unwrap();
|
*self.sink_inputs.keys().nth(current_index).unwrap();
|
||||||
|
|
||||||
@@ -251,6 +252,7 @@ impl Mixer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
None => (),
|
None => (),
|
||||||
}
|
}
|
||||||
@@ -303,6 +305,12 @@ impl Mixer {
|
|||||||
pub fn select_next(&mut self) {
|
pub fn select_next(&mut self) {
|
||||||
let mut index_lock = self.selected_index.lock().unwrap();
|
let mut index_lock = self.selected_index.lock().unwrap();
|
||||||
|
|
||||||
|
let sink_input_len = self.sink_inputs.len();
|
||||||
|
if sink_input_len == 0 {
|
||||||
|
*index_lock = None;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
match *index_lock {
|
match *index_lock {
|
||||||
Some(current_index) => {
|
Some(current_index) => {
|
||||||
let new_index: usize =
|
let new_index: usize =
|
||||||
@@ -328,6 +336,12 @@ impl Mixer {
|
|||||||
pub fn select_previous(&mut self) {
|
pub fn select_previous(&mut self) {
|
||||||
let mut index_lock = self.selected_index.lock().unwrap();
|
let mut index_lock = self.selected_index.lock().unwrap();
|
||||||
|
|
||||||
|
let sink_input_len = self.sink_inputs.len();
|
||||||
|
if sink_input_len == 0 {
|
||||||
|
*index_lock = None;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
match *index_lock {
|
match *index_lock {
|
||||||
Some(current_index) => {
|
Some(current_index) => {
|
||||||
let new_index: usize = match current_index.overflowing_sub(1) {
|
let new_index: usize = match current_index.overflowing_sub(1) {
|
||||||
@@ -475,10 +489,14 @@ impl Mixer {
|
|||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
let sink_inputs_length = self.sink_inputs.len();
|
||||||
let current_sink = &self.sink_inputs.get(&sink_index).unwrap();
|
let current_sink = &self.sink_inputs.get(&sink_index).unwrap();
|
||||||
let current_sink_volume_percent = current_sink.get_volume_percent();
|
let current_sink_volume_percent = current_sink.get_volume_percent();
|
||||||
let _ = send_notification_with_progress(
|
let _ = send_notification_with_progress(
|
||||||
&format!("{}: {}%", ¤t_sink.name, current_sink_volume_percent),
|
&format!(
|
||||||
|
"({}/{}) {}: {}%",
|
||||||
|
index + 1, sink_inputs_length, ¤t_sink.name, current_sink_volume_percent
|
||||||
|
),
|
||||||
current_sink_volume_percent,
|
current_sink_volume_percent,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user