mirror of
https://github.com/Xetibo/ReSet.git
synced 2025-07-01 15:57:46 +02:00
chore: make all snake_case
This commit is contained in:
parent
391182607d
commit
d50ee65bdd
52 changed files with 766 additions and 783 deletions
|
@ -32,21 +32,21 @@ impl OutputStreamEntry {
|
|||
let box_imp = source_box.imp();
|
||||
let imp = obj.imp();
|
||||
let name = stream.application_name.clone() + ": " + stream.name.as_str();
|
||||
imp.resetSourceSelection.set_title(name.as_str());
|
||||
imp.resetSourceSelection
|
||||
imp.reset_source_selection.set_title(name.as_str());
|
||||
imp.reset_source_selection
|
||||
.set_factory(Some(&create_dropdown_label_factory()));
|
||||
set_combo_row_ellipsis(imp.resetSourceSelection.get());
|
||||
set_combo_row_ellipsis(imp.reset_source_selection.get());
|
||||
let volume = stream.volume.first().unwrap_or(&0_u32);
|
||||
let fraction = (*volume as f64 / 655.36).round();
|
||||
let percentage = (fraction).to_string() + "%";
|
||||
imp.resetVolumePercentage.set_text(&percentage);
|
||||
imp.resetVolumeSlider.set_value(*volume as f64);
|
||||
imp.reset_volume_percentage.set_text(&percentage);
|
||||
imp.reset_volume_slider.set_value(*volume as f64);
|
||||
imp.stream.replace(stream);
|
||||
imp.resetVolumeSlider.connect_change_value(
|
||||
imp.reset_volume_slider.connect_change_value(
|
||||
clone!(@weak imp => @default-return Propagation::Stop, move |_, _, value| {
|
||||
let fraction = (value / 655.36).round();
|
||||
let percentage = (fraction).to_string() + "%";
|
||||
imp.resetVolumePercentage.set_text(&percentage);
|
||||
imp.reset_volume_percentage.set_text(&percentage);
|
||||
let mut stream = imp.stream.try_borrow();
|
||||
while stream.is_err() {
|
||||
stream = imp.stream.try_borrow();
|
||||
|
@ -69,7 +69,7 @@ impl OutputStreamEntry {
|
|||
);
|
||||
{
|
||||
let list = box_imp.reset_model_list.read().unwrap();
|
||||
imp.resetSourceSelection.set_model(Some(&*list));
|
||||
imp.reset_source_selection.set_model(Some(&*list));
|
||||
let map = box_imp.reset_source_map.write().unwrap();
|
||||
let mut name = box_imp.reset_default_source.try_borrow();
|
||||
while name.is_err() {
|
||||
|
@ -79,10 +79,10 @@ impl OutputStreamEntry {
|
|||
let name = &name.alias;
|
||||
let index = map.get(name);
|
||||
if let Some(index) = index {
|
||||
imp.resetSourceSelection.set_selected(index.1);
|
||||
imp.reset_source_selection.set_selected(index.1);
|
||||
}
|
||||
}
|
||||
imp.resetSourceSelection.connect_selected_notify(
|
||||
imp.reset_source_selection.connect_selected_notify(
|
||||
clone!(@weak imp, @weak box_imp => move |dropdown| {
|
||||
let selected = dropdown.selected_item();
|
||||
if selected.is_none() {
|
||||
|
@ -105,7 +105,7 @@ impl OutputStreamEntry {
|
|||
set_source_of_output_stream(stream.index, source);
|
||||
}),
|
||||
);
|
||||
imp.resetSourceMute
|
||||
imp.reset_source_mute
|
||||
.connect_clicked(clone!(@weak imp => move |_| {
|
||||
let stream = imp.stream.clone();
|
||||
let mut stream = stream.try_borrow_mut();
|
||||
|
@ -117,10 +117,10 @@ impl OutputStreamEntry {
|
|||
let muted = stream.muted;
|
||||
let index = stream.index;
|
||||
if muted {
|
||||
imp.resetSourceMute
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("microphone-disabled-symbolic");
|
||||
} else {
|
||||
imp.resetSourceMute
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("audio-input-microphone-symbolic");
|
||||
}
|
||||
toggle_output_stream_mute(index, muted);
|
||||
|
|
|
@ -9,20 +9,19 @@ use gtk::subclass::prelude::*;
|
|||
use gtk::{glib, Button, CompositeTemplate, Label, ProgressBar, Scale};
|
||||
use ReSet_Lib::audio::audio::OutputStream;
|
||||
|
||||
#[allow(non_snake_case)]
|
||||
#[derive(Default, CompositeTemplate)]
|
||||
#[template(resource = "/org/Xetibo/ReSet/resetOutputStreamEntry.ui")]
|
||||
pub struct OutputStreamEntry {
|
||||
#[template_child]
|
||||
pub resetSourceSelection: TemplateChild<ComboRow>,
|
||||
pub reset_source_selection: TemplateChild<ComboRow>,
|
||||
#[template_child]
|
||||
pub resetSourceMute: TemplateChild<Button>,
|
||||
pub reset_source_mute: TemplateChild<Button>,
|
||||
#[template_child]
|
||||
pub resetVolumeSlider: TemplateChild<Scale>,
|
||||
pub reset_volume_slider: TemplateChild<Scale>,
|
||||
#[template_child]
|
||||
pub resetVolumePercentage: TemplateChild<Label>,
|
||||
pub reset_volume_percentage: TemplateChild<Label>,
|
||||
#[template_child]
|
||||
pub resetVolumeMeter: TemplateChild<ProgressBar>,
|
||||
pub reset_volume_meter: TemplateChild<ProgressBar>,
|
||||
pub stream: Arc<RefCell<OutputStream>>,
|
||||
pub associated_source: Arc<RefCell<(u32, String)>>,
|
||||
pub volume_time_stamp: RefCell<Option<SystemTime>>,
|
||||
|
|
|
@ -45,35 +45,35 @@ impl SourceBox {
|
|||
|
||||
pub fn setup_callbacks(&self) {
|
||||
let self_imp = self.imp();
|
||||
self_imp.resetSourceRow.set_activatable(true);
|
||||
self_imp.reset_source_row.set_activatable(true);
|
||||
self_imp
|
||||
.resetSourceRow
|
||||
.reset_source_row
|
||||
.set_action_name(Some("navigation.push"));
|
||||
self_imp
|
||||
.resetSourceRow
|
||||
.reset_source_row
|
||||
.set_action_target_value(Some(&Variant::from("sources")));
|
||||
self_imp.resetCardsRow.set_activatable(true);
|
||||
self_imp.reset_cards_row.set_activatable(true);
|
||||
self_imp
|
||||
.resetCardsRow
|
||||
.reset_cards_row
|
||||
.set_action_name(Some("navigation.push"));
|
||||
self_imp
|
||||
.resetCardsRow
|
||||
.reset_cards_row
|
||||
.set_action_target_value(Some(&Variant::from("profileConfiguration")));
|
||||
|
||||
self_imp.resetOutputStreamButton.set_activatable(true);
|
||||
self_imp.reset_output_stream_button.set_activatable(true);
|
||||
self_imp
|
||||
.resetOutputStreamButton
|
||||
.reset_output_stream_button
|
||||
.set_action_name(Some("navigation.pop"));
|
||||
|
||||
self_imp.resetInputCardsBackButton.set_activatable(true);
|
||||
self_imp.reset_input_cards_back_button.set_activatable(true);
|
||||
self_imp
|
||||
.resetInputCardsBackButton
|
||||
.reset_input_cards_back_button
|
||||
.set_action_name(Some("navigation.pop"));
|
||||
|
||||
self_imp
|
||||
.resetSourceDropdown
|
||||
.reset_source_dropdown
|
||||
.set_factory(Some(&create_dropdown_label_factory()));
|
||||
set_combo_row_ellipsis(self_imp.resetSourceDropdown.get());
|
||||
set_combo_row_ellipsis(self_imp.reset_source_dropdown.get());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -116,8 +116,8 @@ pub fn populate_sources(input_box: Arc<SourceBox>) {
|
|||
let volume = source.volume.first().unwrap_or(&0_u32);
|
||||
let fraction = (*volume as f64 / 655.36).round();
|
||||
let percentage = (fraction).to_string() + "%";
|
||||
output_box_imp.resetVolumePercentage.set_text(&percentage);
|
||||
output_box_imp.resetVolumeSlider.set_value(*volume as f64);
|
||||
output_box_imp.reset_volume_percentage.set_text(&percentage);
|
||||
output_box_imp.reset_volume_slider.set_value(*volume as f64);
|
||||
let mut list = output_box_imp.reset_source_list.write().unwrap();
|
||||
for stream in sources {
|
||||
let index = source.index;
|
||||
|
@ -135,16 +135,16 @@ pub fn populate_sources(input_box: Arc<SourceBox>) {
|
|||
let entry = Arc::new(ListEntry::new(&*source_entry));
|
||||
entry.set_activatable(false);
|
||||
list.insert(index, (entry.clone(), source_clone, alias));
|
||||
output_box_imp.resetSources.append(&*entry);
|
||||
output_box_imp.reset_sources.append(&*entry);
|
||||
}
|
||||
let list = output_box_imp.reset_model_list.read().unwrap();
|
||||
output_box_imp.resetSourceDropdown.set_model(Some(&*list));
|
||||
output_box_imp.reset_source_dropdown.set_model(Some(&*list));
|
||||
let map = output_box_imp.reset_source_map.read().unwrap();
|
||||
let name = output_box_imp.reset_default_source.borrow();
|
||||
if let Some(index) = map.get(&name.alias) {
|
||||
output_box_imp.resetSourceDropdown.set_selected(index.1);
|
||||
output_box_imp.reset_source_dropdown.set_selected(index.1);
|
||||
}
|
||||
output_box_imp.resetSourceDropdown.connect_selected_notify(
|
||||
output_box_imp.reset_source_dropdown.connect_selected_notify(
|
||||
clone!(@weak output_box_imp => move |dropdown| {
|
||||
let selected = dropdown.selected_item();
|
||||
if selected.is_none() {
|
||||
|
@ -166,12 +166,12 @@ pub fn populate_sources(input_box: Arc<SourceBox>) {
|
|||
}
|
||||
output_box_ref
|
||||
.imp()
|
||||
.resetVolumeSlider
|
||||
.reset_volume_slider
|
||||
.connect_change_value(move |_, _, value| {
|
||||
let imp = output_box_ref_slider.imp();
|
||||
let fraction = (value / 655.36).round();
|
||||
let percentage = (fraction).to_string() + "%";
|
||||
imp.resetVolumePercentage.set_text(&percentage);
|
||||
imp.reset_volume_percentage.set_text(&percentage);
|
||||
let source = imp.reset_default_source.borrow();
|
||||
let index = source.index;
|
||||
let channels = source.channels;
|
||||
|
@ -190,7 +190,7 @@ pub fn populate_sources(input_box: Arc<SourceBox>) {
|
|||
|
||||
output_box_ref
|
||||
.imp()
|
||||
.resetSourceMute
|
||||
.reset_source_mute
|
||||
.connect_clicked(move |_| {
|
||||
let imp = output_box_ref_mute.imp();
|
||||
let stream = imp.reset_default_source.clone();
|
||||
|
@ -199,10 +199,10 @@ pub fn populate_sources(input_box: Arc<SourceBox>) {
|
|||
let muted = stream.muted;
|
||||
let index = stream.index;
|
||||
if muted {
|
||||
imp.resetSourceMute
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("microphone-disabled-symbolic");
|
||||
} else {
|
||||
imp.resetSourceMute
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("audio-input-microphone-symbolic");
|
||||
}
|
||||
toggle_source_mute(index, muted);
|
||||
|
@ -228,7 +228,7 @@ pub fn populate_outputstreams(input_box: Arc<SourceBox>) {
|
|||
let entry = Arc::new(ListEntry::new(&*input_stream));
|
||||
entry.set_activatable(false);
|
||||
list.insert(index, (entry.clone(), input_stream_clone));
|
||||
input_box_imp.resetOutputStreams.append(&*entry);
|
||||
input_box_imp.reset_output_streams.append(&*entry);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -243,7 +243,7 @@ pub fn populate_cards(input_box: Arc<SourceBox>) {
|
|||
glib::idle_add_once(move || {
|
||||
let imp = output_box_ref.imp();
|
||||
for card in cards {
|
||||
imp.resetCards.add(&CardEntry::new(card));
|
||||
imp.reset_cards.add(&CardEntry::new(card));
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -372,7 +372,7 @@ pub fn start_input_box_listener(conn: Connection, source_box: Arc<SourceBox>) ->
|
|||
let entry = Arc::new(ListEntry::new(&*source_entry));
|
||||
entry.set_activatable(false);
|
||||
list.insert(source_index, (entry.clone(), source_clone, alias.clone()));
|
||||
output_box_imp.resetSources.append(&*entry);
|
||||
output_box_imp.reset_sources.append(&*entry);
|
||||
let mut map = output_box_imp.reset_source_map.write().unwrap();
|
||||
let mut index = output_box_imp.reset_model_index.write().unwrap();
|
||||
output_box_imp
|
||||
|
@ -403,7 +403,7 @@ pub fn start_input_box_listener(conn: Connection, source_box: Arc<SourceBox>) ->
|
|||
if entry.is_none() {
|
||||
return;
|
||||
}
|
||||
output_box_imp.resetSources.remove(&*entry.unwrap().0);
|
||||
output_box_imp.reset_sources.remove(&*entry.unwrap().0);
|
||||
list.remove(&ir.index);
|
||||
let alias = list.remove(&ir.index);
|
||||
if alias.is_none() {
|
||||
|
@ -449,16 +449,16 @@ pub fn start_input_box_listener(conn: Connection, source_box: Arc<SourceBox>) ->
|
|||
}
|
||||
let imp = entry.unwrap().1.imp();
|
||||
if is_default {
|
||||
output_box_imp.resetVolumePercentage.set_text(&percentage);
|
||||
output_box_imp.resetVolumeSlider.set_value(*volume as f64);
|
||||
imp.resetSelectedSource.set_active(true);
|
||||
output_box_imp.reset_volume_percentage.set_text(&percentage);
|
||||
output_box_imp.reset_volume_slider.set_value(*volume as f64);
|
||||
imp.reset_selected_source.set_active(true);
|
||||
} else {
|
||||
imp.resetSelectedSource.set_active(false);
|
||||
imp.reset_selected_source.set_active(false);
|
||||
}
|
||||
imp.resetSourceName
|
||||
imp.reset_source_name
|
||||
.set_title(ir.source.alias.clone().as_str());
|
||||
imp.resetVolumePercentage.set_text(&percentage);
|
||||
imp.resetVolumeSlider.set_value(*volume as f64);
|
||||
imp.reset_volume_percentage.set_text(&percentage);
|
||||
imp.reset_volume_slider.set_value(*volume as f64);
|
||||
});
|
||||
});
|
||||
true
|
||||
|
@ -481,7 +481,7 @@ pub fn start_input_box_listener(conn: Connection, source_box: Arc<SourceBox>) ->
|
|||
let entry = Arc::new(ListEntry::new(&*output_stream));
|
||||
entry.set_activatable(false);
|
||||
list.insert(index, (entry.clone(), output_stream_clone));
|
||||
output_box_imp.resetOutputStreams.append(&*entry);
|
||||
output_box_imp.reset_output_streams.append(&*entry);
|
||||
});
|
||||
});
|
||||
true
|
||||
|
@ -520,22 +520,22 @@ pub fn start_input_box_listener(conn: Connection, source_box: Arc<SourceBox>) ->
|
|||
}
|
||||
let imp = entry.imp();
|
||||
if ir.stream.muted {
|
||||
imp.resetSourceMute
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("microphone-disabled-symbolic");
|
||||
} else {
|
||||
imp.resetSourceMute
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("audio-input-microphone-symbolic");
|
||||
}
|
||||
let name = ir.stream.application_name.clone() + ": " + ir.stream.name.as_str();
|
||||
imp.resetSourceSelection.set_title(name.as_str());
|
||||
imp.reset_source_selection.set_title(name.as_str());
|
||||
let volume = ir.stream.volume.first().unwrap_or(&0_u32);
|
||||
let fraction = (*volume as f64 / 655.36).round();
|
||||
let percentage = (fraction).to_string() + "%";
|
||||
imp.resetVolumePercentage.set_text(&percentage);
|
||||
imp.resetVolumeSlider.set_value(*volume as f64);
|
||||
imp.reset_volume_percentage.set_text(&percentage);
|
||||
imp.reset_volume_slider.set_value(*volume as f64);
|
||||
let map = output_box_imp.reset_source_map.read().unwrap();
|
||||
if let Some(index) = map.get(&alias) {
|
||||
imp.resetSourceSelection.set_selected(index.1);
|
||||
imp.reset_source_selection.set_selected(index.1);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
@ -560,7 +560,7 @@ pub fn start_input_box_listener(conn: Connection, source_box: Arc<SourceBox>) ->
|
|||
if entry.is_none() {
|
||||
return;
|
||||
}
|
||||
output_box_imp.resetOutputStreams.remove(&*entry.unwrap().0);
|
||||
output_box_imp.reset_output_streams.remove(&*entry.unwrap().0);
|
||||
});
|
||||
});
|
||||
true
|
||||
|
|
|
@ -18,34 +18,33 @@ type SourceEntryMap = Arc<RwLock<HashMap<u32, (Arc<ListEntry>, Arc<SourceEntry>,
|
|||
type OutputStreamEntryMap = Arc<RwLock<HashMap<u32, (Arc<ListEntry>, Arc<OutputStreamEntry>)>>>;
|
||||
type SourceMap = Arc<RwLock<HashMap<String, (u32, u32, String)>>>;
|
||||
|
||||
#[allow(non_snake_case)]
|
||||
#[derive(Default, CompositeTemplate)]
|
||||
#[template(resource = "/org/Xetibo/ReSet/resetAudioInput.ui")]
|
||||
pub struct SourceBox {
|
||||
#[template_child]
|
||||
pub resetSourceRow: TemplateChild<ActionRow>,
|
||||
pub reset_source_row: TemplateChild<ActionRow>,
|
||||
#[template_child]
|
||||
pub resetCardsRow: TemplateChild<ActionRow>,
|
||||
pub reset_cards_row: TemplateChild<ActionRow>,
|
||||
#[template_child]
|
||||
pub resetSourceDropdown: TemplateChild<ComboRow>,
|
||||
pub reset_source_dropdown: TemplateChild<ComboRow>,
|
||||
#[template_child]
|
||||
pub resetSourceMute: TemplateChild<Button>,
|
||||
pub reset_source_mute: TemplateChild<Button>,
|
||||
#[template_child]
|
||||
pub resetVolumeSlider: TemplateChild<Scale>,
|
||||
pub reset_volume_slider: TemplateChild<Scale>,
|
||||
#[template_child]
|
||||
pub resetVolumePercentage: TemplateChild<Label>,
|
||||
pub reset_volume_percentage: TemplateChild<Label>,
|
||||
#[template_child]
|
||||
pub resetVolumeMeter: TemplateChild<ProgressBar>,
|
||||
pub reset_volume_meter: TemplateChild<ProgressBar>,
|
||||
#[template_child]
|
||||
pub resetSources: TemplateChild<gtk::Box>,
|
||||
pub reset_sources: TemplateChild<gtk::Box>,
|
||||
#[template_child]
|
||||
pub resetOutputStreamButton: TemplateChild<ActionRow>,
|
||||
pub reset_output_stream_button: TemplateChild<ActionRow>,
|
||||
#[template_child]
|
||||
pub resetOutputStreams: TemplateChild<gtk::Box>,
|
||||
pub reset_output_streams: TemplateChild<gtk::Box>,
|
||||
#[template_child]
|
||||
pub resetInputCardsBackButton: TemplateChild<ActionRow>,
|
||||
pub reset_input_cards_back_button: TemplateChild<ActionRow>,
|
||||
#[template_child]
|
||||
pub resetCards: TemplateChild<PreferencesGroup>,
|
||||
pub reset_cards: TemplateChild<PreferencesGroup>,
|
||||
pub reset_default_check_button: Arc<CheckButton>,
|
||||
pub reset_default_source: Arc<RefCell<Source>>,
|
||||
pub reset_source_list: SourceEntryMap,
|
||||
|
|
|
@ -28,19 +28,19 @@ impl SourceEntry {
|
|||
// TODO use event callback for progress bar -> this is the "im speaking" indicator
|
||||
{
|
||||
let imp = obj.imp();
|
||||
imp.resetSourceName.set_title(stream.alias.clone().as_str());
|
||||
imp.reset_source_name.set_title(stream.alias.clone().as_str());
|
||||
let name = Arc::new(stream.name.clone());
|
||||
let volume = stream.volume.first().unwrap_or(&0_u32);
|
||||
let fraction = (*volume as f64 / 655.36).round();
|
||||
let percentage = (fraction).to_string() + "%";
|
||||
imp.resetVolumePercentage.set_text(&percentage);
|
||||
imp.resetVolumeSlider.set_value(*volume as f64);
|
||||
imp.reset_volume_percentage.set_text(&percentage);
|
||||
imp.reset_volume_slider.set_value(*volume as f64);
|
||||
imp.stream.replace(stream);
|
||||
imp.resetVolumeSlider.connect_change_value(
|
||||
imp.reset_volume_slider.connect_change_value(
|
||||
clone!(@weak imp => @default-return Propagation::Stop, move |_, _, value| {
|
||||
let fraction = (value / 655.36).round();
|
||||
let percentage = (fraction).to_string() + "%";
|
||||
imp.resetVolumePercentage.set_text(&percentage);
|
||||
imp.reset_volume_percentage.set_text(&percentage);
|
||||
let source = imp.stream.borrow();
|
||||
let index = source.index;
|
||||
let channels = source.channels;
|
||||
|
@ -57,19 +57,19 @@ impl SourceEntry {
|
|||
Propagation::Proceed
|
||||
}),
|
||||
);
|
||||
imp.resetSelectedSource.set_group(Some(&*check_group));
|
||||
imp.reset_selected_source.set_group(Some(&*check_group));
|
||||
// check_group.set_group(Some(&*imp.resetSelectedSink));
|
||||
if is_default {
|
||||
imp.resetSelectedSource.set_active(true);
|
||||
imp.reset_selected_source.set_active(true);
|
||||
} else {
|
||||
imp.resetSelectedSource.set_active(false);
|
||||
imp.reset_selected_source.set_active(false);
|
||||
}
|
||||
imp.resetSelectedSource.connect_toggled(move |button| {
|
||||
imp.reset_selected_source.connect_toggled(move |button| {
|
||||
if button.is_active() {
|
||||
set_default_source(name.clone());
|
||||
}
|
||||
});
|
||||
imp.resetSourceMute
|
||||
imp.reset_source_mute
|
||||
.connect_clicked(clone!(@weak imp => move |_| {
|
||||
let stream = imp.stream.clone();
|
||||
let mut stream = stream.borrow_mut();
|
||||
|
@ -77,10 +77,10 @@ impl SourceEntry {
|
|||
let muted = stream.muted;
|
||||
let index = stream.index;
|
||||
if muted {
|
||||
imp.resetSourceMute
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("microphone-disabled-symbolic");
|
||||
} else {
|
||||
imp.resetSourceMute
|
||||
imp.reset_source_mute
|
||||
.set_icon_name("audio-input-microphone-symbolic");
|
||||
}
|
||||
toggle_source_mute(index, muted);
|
||||
|
|
|
@ -10,22 +10,21 @@ use ReSet_Lib::audio::audio::Source;
|
|||
|
||||
use super::source_entry;
|
||||
|
||||
#[allow(non_snake_case)]
|
||||
#[derive(Default, CompositeTemplate)]
|
||||
#[template(resource = "/org/Xetibo/ReSet/resetSourceEntry.ui")]
|
||||
pub struct SourceEntry {
|
||||
#[template_child]
|
||||
pub resetSourceName: TemplateChild<ActionRow>,
|
||||
pub reset_source_name: TemplateChild<ActionRow>,
|
||||
#[template_child]
|
||||
pub resetSelectedSource: TemplateChild<CheckButton>,
|
||||
pub reset_selected_source: TemplateChild<CheckButton>,
|
||||
#[template_child]
|
||||
pub resetSourceMute: TemplateChild<Button>,
|
||||
pub reset_source_mute: TemplateChild<Button>,
|
||||
#[template_child]
|
||||
pub resetVolumeSlider: TemplateChild<Scale>,
|
||||
pub reset_volume_slider: TemplateChild<Scale>,
|
||||
#[template_child]
|
||||
pub resetVolumePercentage: TemplateChild<Label>,
|
||||
pub reset_volume_percentage: TemplateChild<Label>,
|
||||
#[template_child]
|
||||
pub resetVolumeMeter: TemplateChild<ProgressBar>,
|
||||
pub reset_volume_meter: TemplateChild<ProgressBar>,
|
||||
pub stream: Arc<RefCell<Source>>,
|
||||
pub volume_time_stamp: RefCell<Option<SystemTime>>,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue