diff --git a/src/pipewire_connection.rs b/src/pipewire_connection.rs index 21b1068..c6fc1f3 100644 --- a/src/pipewire_connection.rs +++ b/src/pipewire_connection.rs @@ -49,7 +49,7 @@ impl PipewireConnection { .register(); Ok(Self { - mainloop: mainloop, + mainloop, _context: context, core, _registry: registry, diff --git a/src/pipewire_state.rs b/src/pipewire_state.rs index 7ab063e..6a5840c 100644 --- a/src/pipewire_state.rs +++ b/src/pipewire_state.rs @@ -40,12 +40,10 @@ pub struct PipewireState { impl PipewireState { pub fn new(graphview: Rc>) -> Self { - let result = Self { + Self { graphview, items: HashMap::new(), - }; - - result + } } /// This function is called from the `PipewireConnection` struct responsible for updating this struct. @@ -66,18 +64,20 @@ impl PipewireState { fn add_node(&mut self, node: GlobalObject) { // Update graph to contain the new node. - let node_widget = crate::view::Node::new(&format!( - "{}", - node.props + let node_widget = crate::view::Node::new( + &node + .props .as_ref() - .map(|dict| String::from( - dict.get("node.nick") - .or(dict.get("node.description")) - .or(dict.get("node.name")) - .unwrap_or_default() - )) - .unwrap_or_default() - )); + .map(|dict| { + String::from( + dict.get("node.nick") + .or_else(|| dict.get("node.description")) + .or_else(|| dict.get("node.name")) + .unwrap_or_default(), + ) + }) + .unwrap_or_default(), + ); // FIXME: This relies on the node being passed to us by the pipwire server before its port. let media_type = node @@ -115,7 +115,7 @@ impl PipewireState { fn add_port(&mut self, port: GlobalObject) { // Update graph to contain the new port. let props = port.props.expect("Port object is missing properties"); - let port_label = format!("{}", props.get("port.name").unwrap_or_default()); + let port_label = props.get("port.name").unwrap_or_default().to_string(); let node_id: u32 = props .get("node.id") .expect("Port has no node.id property!") diff --git a/src/view/graph_view.rs b/src/view/graph_view.rs index 30b5bce..ab20316 100644 --- a/src/view/graph_view.rs +++ b/src/view/graph_view.rs @@ -273,3 +273,9 @@ impl GraphView { self.queue_draw(); } } + +impl Default for GraphView { + fn default() -> Self { + Self::new() + } +} diff --git a/src/view/node.rs b/src/view/node.rs index bd9f7b0..9f3cac5 100644 --- a/src/view/node.rs +++ b/src/view/node.rs @@ -135,11 +135,7 @@ impl Node { pub fn get_port(&self, id: u32) -> Option> { let private = imp::Node::from_instance(self); - private - .ports - .borrow_mut() - .get(&id) - .map(|port_rc| port_rc.clone()) + private.ports.borrow_mut().get(&id).cloned() } pub fn remove_port(&self, id: u32) {