From 610a6190b2d794ee40c746a26bf2bc5a00b64c1a Mon Sep 17 00:00:00 2001 From: r4v3n6101 Date: Sun, 21 Feb 2021 23:11:50 +0300 Subject: [PATCH] LoopStatus is now editable from MPRIS --- src/mpris.rs | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/mpris.rs b/src/mpris.rs index 724b04a..9cb0149 100644 --- a/src/mpris.rs +++ b/src/mpris.rs @@ -231,12 +231,13 @@ fn run_dbus_server( }; let property_loopstatus = { - let queue = queue.clone(); + let queue1 = queue.clone(); + let queue2 = queue.clone(); f.property::("LoopStatus", ()) - .access(Access::Read) + .access(Access::ReadWrite) .on_get(move |iter, _| { iter.append( - match queue.get_repeat() { + match queue1.get_repeat() { RepeatSetting::None => "None", RepeatSetting::RepeatTrack => "Track", RepeatSetting::RepeatPlaylist => "Playlist", @@ -245,6 +246,16 @@ fn run_dbus_server( ); Ok(()) }) + .on_set(move |iter, _| { + let setting = match iter.get::<&str>().unwrap_or_default() { + "Track" => RepeatSetting::RepeatTrack, + "Playlist" => RepeatSetting::RepeatPlaylist, + _ => RepeatSetting::None, + }; + queue2.set_repeat(setting); + + Ok(()) + }) }; let property_metadata = {