aboutsummaryrefslogtreecommitdiffstats
path: root/src/mpris.rs
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-07-30 18:37:52 +0200
committersalmonik <salmonik@tuta.io>2026-07-30 18:37:52 +0200
commitda0251d55d3902c90967b36b7a5441404bdf24ef (patch)
tree6f8a74b7cddc16c35b3f9e536b9bbb86b259b545 /src/mpris.rs
parentMerge pull request 'mpris merge' (#2) from mpris into main (diff)
downloadrsplayer-da0251d55d3902c90967b36b7a5441404bdf24ef.tar.gz
rsplayer-da0251d55d3902c90967b36b7a5441404bdf24ef.zip
Fix synchronous HTTP calls
Diffstat (limited to '')
-rw-r--r--src/mpris.rs22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/mpris.rs b/src/mpris.rs
index a7ac360..39630b0 100644
--- a/src/mpris.rs
+++ b/src/mpris.rs
@@ -162,14 +162,12 @@ impl MprisPlayer {
162 162
163 fn next(&self) { 163 fn next(&self) {
164 crate::debug_eprintln(format_args!("mpris: next")); 164 crate::debug_eprintln(format_args!("mpris: next"));
165 if let Ok(mut s) = self.scrobble_state.lock() { 165 crate::daemon::spawn_try_scrobble_current(&self.scrobbler, &self.scrobble_state);
166 crate::daemon::try_scrobble_current(&self.scrobbler, &mut s);
167 }
168 if let Ok(mut q) = self.queue.lock() { 166 if let Ok(mut q) = self.queue.lock() {
169 if let Some(next_path) = q.next() { 167 if let Some(next_path) = q.next() {
170 self.audio.play(next_path.clone()); 168 self.audio.play(next_path.clone());
171 let track = Track::from_path(next_path); 169 let track = Track::from_path(next_path);
172 crate::daemon::send_now_playing(&self.scrobbler, &track); 170 crate::daemon::spawn_send_now_playing(&self.scrobbler, &track);
173 if let Ok(mut s) = self.scrobble_state.lock() { 171 if let Ok(mut s) = self.scrobble_state.lock() {
174 s.start(track.clone()); 172 s.start(track.clone());
175 } 173 }
@@ -185,15 +183,13 @@ impl MprisPlayer {
185 183
186 fn previous(&self) { 184 fn previous(&self) {
187 crate::debug_eprintln(format_args!("mpris: previous")); 185 crate::debug_eprintln(format_args!("mpris: previous"));
188 if let Ok(mut s) = self.scrobble_state.lock() { 186 crate::daemon::spawn_try_scrobble_current(&self.scrobbler, &self.scrobble_state);
189 crate::daemon::try_scrobble_current(&self.scrobbler, &mut s);
190 }
191 if let Ok(mut q) = self.queue.lock() 187 if let Ok(mut q) = self.queue.lock()
192 && let Some(prev_path) = q.previous() 188 && let Some(prev_path) = q.previous()
193 { 189 {
194 self.audio.play(prev_path.clone()); 190 self.audio.play(prev_path.clone());
195 let track = Track::from_path(prev_path); 191 let track = Track::from_path(prev_path);
196 crate::daemon::send_now_playing(&self.scrobbler, &track); 192 crate::daemon::spawn_send_now_playing(&self.scrobbler, &track);
197 if let Ok(mut s) = self.scrobble_state.lock() { 193 if let Ok(mut s) = self.scrobble_state.lock() {
198 s.start(track.clone()); 194 s.start(track.clone());
199 } 195 }
@@ -221,9 +217,7 @@ impl MprisPlayer {
221 217
222 fn stop(&self) { 218 fn stop(&self) {
223 crate::debug_eprintln(format_args!("mpris: stop")); 219 crate::debug_eprintln(format_args!("mpris: stop"));
224 if let Ok(mut s) = self.scrobble_state.lock() { 220 crate::daemon::spawn_try_scrobble_current(&self.scrobbler, &self.scrobble_state);
225 crate::daemon::try_scrobble_current(&self.scrobbler, &mut s);
226 }
227 self.audio.stop(); 221 self.audio.stop();
228 if let Ok(mut q) = self.queue.lock() { 222 if let Ok(mut q) = self.queue.lock() {
229 q.clear(); 223 q.clear();
@@ -240,7 +234,7 @@ impl MprisPlayer {
240 && let Some(track) = q.current() 234 && let Some(track) = q.current()
241 { 235 {
242 self.audio.play(track.path.clone()); 236 self.audio.play(track.path.clone());
243 crate::daemon::send_now_playing(&self.scrobbler, track); 237 crate::daemon::spawn_send_now_playing(&self.scrobbler, track);
244 if let Ok(mut s) = self.scrobble_state.lock() { 238 if let Ok(mut s) = self.scrobble_state.lock() {
245 s.start(track.clone()); 239 s.start(track.clone());
246 } 240 }
@@ -277,7 +271,7 @@ impl MprisPlayer {
277 && let Some(t) = q.current() 271 && let Some(t) = q.current()
278 { 272 {
279 self.audio.play(t.path.clone()); 273 self.audio.play(t.path.clone());
280 crate::daemon::send_now_playing(&self.scrobbler, t); 274 crate::daemon::spawn_send_now_playing(&self.scrobbler, t);
281 if let Ok(mut s) = self.scrobble_state.lock() { 275 if let Ok(mut s) = self.scrobble_state.lock() {
282 s.start(t.clone()); 276 s.start(t.clone());
283 } 277 }
@@ -289,7 +283,7 @@ impl MprisPlayer {
289 if was_empty && !was_playing { 283 if was_empty && !was_playing {
290 let track = Track::from_path(path); 284 let track = Track::from_path(path);
291 self.audio.play(track.path.clone()); 285 self.audio.play(track.path.clone());
292 crate::daemon::send_now_playing(&self.scrobbler, &track); 286 crate::daemon::spawn_send_now_playing(&self.scrobbler, &track);
293 if let Ok(mut s) = self.scrobble_state.lock() { 287 if let Ok(mut s) = self.scrobble_state.lock() {
294 s.start(track.clone()); 288 s.start(track.clone());
295 } 289 }