use errors::*; use glib; use std::cell::RefCell; use std::rc::Rc; use std::f64; use alsa_pn::*; #[derive(Clone, Copy, Debug)] pub enum AudioUser { AudioUserUnknown, AudioUserPopup, AudioUserTrayIcon, AudioUserHotkeys, } #[derive(Clone, Copy, Debug)] pub enum AudioSignal { AudioNoCard, AudioCardInitialized, AudioCardCleanedUp, AudioCardDisconnected, AudioCardError, AudioValuesChanged, } pub struct Audio { _cannot_construct: (), pub acard: RefCell>, pub last_action_timestamp: RefCell, pub handlers: Rc>>>, pub scroll_step: RefCell, } impl Audio { pub fn new(card_name: Option, elem_name: Option) -> Result