use adw::{ActionRow, ComboRow, PreferencesGroup}; use re_set_lib::audio::audio_structures::Source; use std::cell::RefCell; use std::collections::HashMap; use std::sync::{Arc, RwLock}; use std::time::SystemTime; use crate::components::base::list_entry::ListEntry; use crate::components::input::source_box; use gtk::subclass::prelude::*; use gtk::{glib, CheckButton, CompositeTemplate, StringList, TemplateChild}; use gtk::{prelude::*, Button, Label, Scale}; use super::output_stream_entry::OutputStreamEntry; use super::source_entry::SourceEntry; type SourceEntryMap = Arc, Arc, String)>>>; type OutputStreamEntryMap = Arc, Arc)>>>; // the key is the alias, the first value u32 is the index of the source, the second is the technical name type SourceMap = Arc>>; #[derive(Default, CompositeTemplate)] #[template(resource = "/org/Xetibo/ReSet/resetAudioInput.ui")] pub struct SourceBox { #[template_child] pub reset_source_row: TemplateChild, #[template_child] pub reset_cards_row: TemplateChild, #[template_child] pub reset_source_dropdown: TemplateChild, #[template_child] pub reset_source_mute: TemplateChild