Listen for multiple property changes
This commit is contained in:
parent
a2432f77d2
commit
15f9c7ea99
|
@ -11,10 +11,11 @@ required-features = ["bin"]
|
|||
|
||||
[dependencies]
|
||||
canary-magpie = { path = "../magpie", optional = true }
|
||||
futures-util = { version = "0.3", optional = true }
|
||||
serde = { version = "1", features = ["derive"] }
|
||||
serde_json = "1"
|
||||
smol = { version = "1.2", optional = true }
|
||||
zbus = { version = "3.5", optional = true }
|
||||
|
||||
[features]
|
||||
bin = ["dep:canary-magpie", "dep:smol", "dep:zbus"]
|
||||
bin = ["dep:canary-magpie", "dep:futures-util", "dep:smol", "dep:zbus"]
|
||||
|
|
|
@ -8,7 +8,6 @@ use canary_music_player::*;
|
|||
pub mod mpris;
|
||||
|
||||
use mpris::*;
|
||||
use smol::stream::StreamExt;
|
||||
|
||||
pub struct Metadata {
|
||||
pub album: AlbumInfo,
|
||||
|
@ -96,12 +95,30 @@ fn main() {
|
|||
let dbus = zbus::Connection::session().await?;
|
||||
let player = find_player(&dbus).await?.unwrap();
|
||||
|
||||
let mut playback_status = player.receive_playback_status_changed().await;
|
||||
while let Some(status) = playback_status.next().await {
|
||||
println!("Status: {}", status.get().await?);
|
||||
}
|
||||
use futures_util::StreamExt;
|
||||
let mut playback_status = player.receive_playback_status_changed().await.fuse();
|
||||
let mut metadata = player.receive_metadata_changed().await.fuse();
|
||||
|
||||
println!("Done looping.");
|
||||
loop {
|
||||
futures_util::select! {
|
||||
status = playback_status.next() => {
|
||||
let status = match status {
|
||||
Some(v) => v,
|
||||
None => break,
|
||||
};
|
||||
|
||||
println!("Status: {}", status.get().await?);
|
||||
}
|
||||
metadata = metadata.next() => {
|
||||
let metadata = match metadata {
|
||||
Some(v) => v,
|
||||
None => break,
|
||||
};
|
||||
|
||||
println!("Metadata: {:#?}", metadata.get().await?);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
let protocol = "tebibyte-media.desktop.music-player-controller".to_string();
|
||||
let script = std::path::PathBuf::from(&module_path);
|
||||
|
|
Loading…
Reference in New Issue