Crates.io | mprizzle |
lib.rs | mprizzle |
version | |
source | src |
created_at | 2025-05-03 00:49:04.896603+00 |
updated_at | 2025-05-08 00:14:29.08201+00 |
description | An async library for interacting with mpris over D-Bus. |
homepage | https://github.com/qxb3/mprizzle |
repository | https://github.com/qxb3/mprizzle |
max_upload_size | |
id | 1658370 |
Cargo.toml error: | TOML parse error at line 17, column 1 | 17 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include` |
size | 0 |
An async library for interacting with mpris over D-BUS
[dependecies]
mprizzle = "0.0.2"
use mprizzle::{Mpris, MprisEvent};
#[tokio::main]
pub async fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut mpris = Mpris::new_without_options().await?;
let shared_players = mpris.players();
mpris.watch();
while let Ok(event) = mpris.recv().await? {
match event {
MprisEvent::PlayerAttached(identity) => println!("NEW PLAYER = {}", identity.short()),
MprisEvent::PlayerDetached(identity) => println!("REMOVED PLAYER = {}", identity.short()),
MprisEvent::PlayerPropertiesChanged(identity) => {
let players = shared_players.lock().await;
if let Some(player) = players.iter().find(|p| *p.identity() == identity) {
println!("PLAYER PROP CHANGED: {} = {:#?}", identity.short(), player.metadata().await?);
}
},
MprisEvent::PlayerSeeked(identity) => {
let players = shared_players.lock().await;
if let Some(_) = players.iter().find(|p| *p.identity() == identity) {
println!("PLAYER SEEKED: {}", identity.short());
}
},
MprisEvent::PlayerPosition(identity, position) => {
println!("PLAYER POSITION: {} = {}", identity.short(), position.as_secs());
}
}
}
Ok(())
}
Documentation is available at docs.rs.
Feel free! :D