From 477530c8d17b9acd17f35dd2887e20e5cf80e3f0 Mon Sep 17 00:00:00 2001 From: Savanni D'Gerinel Date: Tue, 7 Feb 2023 09:32:02 -0500 Subject: [PATCH] Add a bunch of example dbus programs --- music-player/server/src/bin/listdevices.rs | 20 +++++++++++++++ music-player/server/src/bin/playertest.rs | 30 ++++------------------ music-player/server/src/bin/scan.rs | 22 ++++++++++++++++ music-player/server/src/bin/startplayer.rs | 28 ++++++++++++++++++++ 4 files changed, 75 insertions(+), 25 deletions(-) create mode 100644 music-player/server/src/bin/listdevices.rs create mode 100644 music-player/server/src/bin/scan.rs create mode 100644 music-player/server/src/bin/startplayer.rs diff --git a/music-player/server/src/bin/listdevices.rs b/music-player/server/src/bin/listdevices.rs new file mode 100644 index 0000000..fc03529 --- /dev/null +++ b/music-player/server/src/bin/listdevices.rs @@ -0,0 +1,20 @@ +/* +Copyright 2023, Savanni D'Gerinel + +This file is part of the Luminescent Dreams Tools. + +Luminescent Dreams Tools is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Luminescent Dreams Tools is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Lumeto. If not, see . +*/ + +use dbus::ffidisp::Connection; +use music_player::audio::list_devices; + +fn main() { + for device in list_devices(Connection::new_session().unwrap()).unwrap() { + println!("Device: [{}] {}", device.address, device.name); + } +} diff --git a/music-player/server/src/bin/playertest.rs b/music-player/server/src/bin/playertest.rs index dece14d..b163ec7 100644 --- a/music-player/server/src/bin/playertest.rs +++ b/music-player/server/src/bin/playertest.rs @@ -11,25 +11,16 @@ You should have received a copy of the GNU General Public License along with Lum */ use dbus::ffidisp::Connection; -use music_player::audio::{list_devices, Message, MprisDevice}; -use std::{io, thread}; +use music_player::audio::{Message, MprisDevice}; +use std::{env, io, thread}; fn main() { - for device in list_devices(Connection::new_session().expect("connection to dbus session")) - .expect("to list devices") - { - println!("Device: [{}] {}", device.address, device.name); - } - - /* - let progress_thread = thread::spawn(|| MprisDevice::monitor_progress(":1.1611".to_owned())); - let event_thread = thread::spawn(|| MprisDevice::scan_event_stream(":1.1611".to_owned())); - */ + let device_address = env::var("DEVICE").unwrap(); let (tx, rx) = std::sync::mpsc::channel(); let app_thread = thread::spawn(move || { - let mut device = MprisDevice::new(":1.1611".to_owned()).expect("to get a device"); - device.run(rx); + let mut device = MprisDevice::new(device_address).unwrap(); + device.monitor(rx); }); let stdin = io::stdin(); @@ -38,15 +29,4 @@ fn main() { let _ = tx.send(Message::Quit); let _ = app_thread.join(); - - /* - println!( - "{:?}", - device.capabilities().expect("can retrieve capabilities") - ); - // println!("{:?}", device.state().expect("play-pause to succeed")); - - let _ = progress_thread.join(); - let _ = event_thread.join(); - */ } diff --git a/music-player/server/src/bin/scan.rs b/music-player/server/src/bin/scan.rs new file mode 100644 index 0000000..31a2e59 --- /dev/null +++ b/music-player/server/src/bin/scan.rs @@ -0,0 +1,22 @@ +/* +Copyright 2023, Savanni D'Gerinel + +This file is part of the Luminescent Dreams Tools. + +Luminescent Dreams Tools is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Luminescent Dreams Tools is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Lumeto. If not, see . +*/ + +use dbus::ffidisp::Connection; +use music_player::audio::{Message, MprisDevice}; +use std::{env, io, thread}; + +fn main() { + let device_address = env::var("DEVICE").unwrap(); + let connection = Connection::new_session().unwrap(); + let player = mpris::Player::new(connection, device_address, 1000).unwrap(); + player. +} diff --git a/music-player/server/src/bin/startplayer.rs b/music-player/server/src/bin/startplayer.rs new file mode 100644 index 0000000..4d09e24 --- /dev/null +++ b/music-player/server/src/bin/startplayer.rs @@ -0,0 +1,28 @@ +/* +Copyright 2023, Savanni D'Gerinel + +This file is part of the Luminescent Dreams Tools. + +Luminescent Dreams Tools is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. + +Luminescent Dreams Tools is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with Lumeto. If not, see . +*/ + +use dbus::ffidisp::Connection; +use music_player::audio::{AudioPlayer, MprisDevice}; +use std::env; + +fn main() { + let device_address = env::var("DEVICE").unwrap(); + let args = env::args(); + let track = args.skip(1).next(); + let device = MprisDevice::new(device_address).unwrap(); + println!("Track: {:?}", track); + match track { + Some(track_id) => device.play(track_id), + None => device.play_pause(), + } + .expect("play to start"); +}