Rockbox open source high quality audio player as a Music Player Daemon
mpris rockbox mpd libadwaita audio rust zig deno
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Skip duplicate Chromecast devices

Construct Device from discovery info before locking, then check by
device.id to avoid comparing fullnames and to shorten the lock scope

+5 -7
+5 -7
crates/server/src/scan.rs
··· 82 82 let services = discover(CHROMECAST_SERVICE_NAME); 83 83 tokio::pin!(services); 84 84 while let Some(info) = services.next().await { 85 - let mut devices = devices.lock().unwrap(); 86 - if devices 87 - .iter() 88 - .any(|d| d.id == info.get_fullname().to_owned()) 89 - { 90 - continue; 91 - } 92 85 let mut device = Device::from(info.clone()); 93 86 device.service = "chromecast".to_string(); 94 87 device.is_cast_device = true; 88 + 89 + let mut devices = devices.lock().unwrap(); 90 + if devices.iter().any(|d| d.id == device.id) { 91 + continue; 92 + } 95 93 devices.push(device.clone()); 96 94 SimpleBroker::<Device>::publish(device); 97 95 }