use adw::{ActionRow, ComboRow, PreferencesGroup}; 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::output::input_stream_entry::InputStreamEntry; use gtk::subclass::prelude::*; use gtk::{glib, Box, Button, CheckButton, CompositeTemplate, Label, StringList, TemplateChild}; use gtk::{prelude::*, ProgressBar, Scale}; use ReSet_Lib::audio::audio::Sink; use super::sink_box; use super::sink_entry::SinkEntry; type SinkEntryMap = Arc, Arc, String)>>>; type InputStreamEntryMap = Arc, Arc)>>>; type SinkMap = Arc>>; #[derive(Default, CompositeTemplate)] #[template(resource = "/org/Xetibo/ReSet/resetAudioOutput.ui")] pub struct SinkBox { #[template_child] pub reset_sinks_row: TemplateChild, #[template_child] pub reset_cards_row: TemplateChild, #[template_child] pub reset_sink_dropdown: TemplateChild, #[template_child] pub reset_sink_mute: TemplateChild