diff options
| author | salmonik <salmonik@tuta.io> | 2026-07-30 18:37:52 +0200 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-07-30 18:37:52 +0200 |
| commit | da0251d55d3902c90967b36b7a5441404bdf24ef (patch) | |
| tree | 6f8a74b7cddc16c35b3f9e536b9bbb86b259b545 /src/mpris.rs | |
| parent | Merge pull request 'mpris merge' (#2) from mpris into main (diff) | |
| download | rsplayer-da0251d55d3902c90967b36b7a5441404bdf24ef.tar.gz rsplayer-da0251d55d3902c90967b36b7a5441404bdf24ef.zip | |
Fix synchronous HTTP calls
Diffstat (limited to 'src/mpris.rs')
| -rw-r--r-- | src/mpris.rs | 22 |
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 | } |
