diff options
| author | salmonik <salmonik@noreply.codeberg.org> | 2026-07-06 15:59:34 +0200 |
|---|---|---|
| committer | salmonik <salmonik@noreply.codeberg.org> | 2026-07-06 15:59:34 +0200 |
| commit | 338b4d600e2d41ef52858c73adf23473183a60a9 (patch) | |
| tree | ced63779d57e44fa35a896b27bf07e9eee120d5f /src/daemon.rs | |
| parent | fix -a to work properly (diff) | |
| parent | add track index to MPRIS (diff) | |
| download | rsplayer-338b4d600e2d41ef52858c73adf23473183a60a9.tar.gz rsplayer-338b4d600e2d41ef52858c73adf23473183a60a9.zip | |
Merge pull request 'mpris merge' (#2) from mpris into main
Reviewed-on: https://codeberg.org/salmonik/RSPlayer/pulls/2
Diffstat (limited to '')
| -rw-r--r-- | src/daemon.rs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/daemon.rs b/src/daemon.rs index 61d021b..1c918a8 100644 --- a/src/daemon.rs +++ b/src/daemon.rs | |||
| @@ -102,7 +102,7 @@ impl ScrobbleState { | |||
| 102 | } | 102 | } |
| 103 | } | 103 | } |
| 104 | 104 | ||
| 105 | fn try_scrobble_current(scrobbler: &RwLock<Scrobbler>, state: &mut ScrobbleState) { | 105 | pub fn try_scrobble_current(scrobbler: &RwLock<Scrobbler>, state: &mut ScrobbleState) { |
| 106 | if let Some(ref track) = state.track | 106 | if let Some(ref track) = state.track |
| 107 | && track.is_stream | 107 | && track.is_stream |
| 108 | { | 108 | { |
| @@ -137,7 +137,7 @@ fn try_scrobble_current(scrobbler: &RwLock<Scrobbler>, state: &mut ScrobbleState | |||
| 137 | state.clear(); | 137 | state.clear(); |
| 138 | } | 138 | } |
| 139 | 139 | ||
| 140 | fn send_now_playing(scrobbler: &RwLock<Scrobbler>, track: &Track) { | 140 | pub fn send_now_playing(scrobbler: &RwLock<Scrobbler>, track: &Track) { |
| 141 | if track.is_stream { | 141 | if track.is_stream { |
| 142 | crate::debug_eprintln(format_args!( | 142 | crate::debug_eprintln(format_args!( |
| 143 | "scrobble: skipping now_playing for stream track" | 143 | "scrobble: skipping now_playing for stream track" |
| @@ -246,6 +246,15 @@ pub fn start_daemon() -> Result<(), Box<dyn std::error::Error>> { | |||
| 246 | // Save full config | 246 | // Save full config |
| 247 | config.save()?; | 247 | config.save()?; |
| 248 | 248 | ||
| 249 | // Start MPRIS D-Bus server for external control (playerctl, etc.) | ||
| 250 | crate::mpris::start_mpris_server( | ||
| 251 | Arc::clone(&audio_engine), | ||
| 252 | Arc::clone(&queue), | ||
| 253 | Arc::clone(&scrobbler), | ||
| 254 | Arc::clone(&scrobble_state), | ||
| 255 | Arc::clone(&shutdown_flag), | ||
| 256 | ); | ||
| 257 | |||
| 249 | // Accept connections until shutdown | 258 | // Accept connections until shutdown |
| 250 | listener.set_nonblocking(true)?; | 259 | listener.set_nonblocking(true)?; |
| 251 | // Helper: poll until a specific track actually starts playing or timeout | 260 | // Helper: poll until a specific track actually starts playing or timeout |
