commit a973348dc123448b654e5e3786a8d2d2ad9c91bf from: mtmn date: Sat Aug 8 19:42:24 2026 UTC only print mpd_now_playing when actually playing commit - 84e97354c3e6631ee825ff27089726f5b39ba334 commit + a973348dc123448b654e5e3786a8d2d2ad9c91bf blob - 724f19a4fbf4447f416030a79b91d823ceccdfa6 blob + cf27175052e868c9c6ab9f654c36fb0eb39d5791 --- mpd/mpd_now_playing.c +++ mpd/mpd_now_playing.c @@ -78,6 +78,10 @@ static bool emit_snapshot(struct mpd_connection *conne return false; } enum mpd_state state = mpd_status_get_state(status); + if (state != MPD_STATE_PLAY) { + mpd_status_free(status); + return true; + } int position = mpd_status_get_song_pos(status); int song_id = mpd_status_get_song_id(status); unsigned elapsed_ms = mpd_status_get_elapsed_ms(status); blob - c2fbb26e67987d182d86ff1049ef76170caaab8d blob + 0f1e09bed68bfe8d262e17fbcacd27a087317bd4 --- mpd/tests/test_mpd_tools.py +++ mpd/tests/test_mpd_tools.py @@ -466,6 +466,16 @@ class MPDToolsTest(unittest.TestCase): self.assertEqual(value["elapsed_seconds"], 12.5) self.assertEqual(value["song_id"], 1) + def test_now_playing_is_silent_when_paused_or_stopped(self): + for state in ("pause", "stop"): + with self.subTest(state=state): + self.seed_queue(["track.ogg"], current=0, state=state) + for arguments in ((), ("--json",)): + with self.subTest(arguments=arguments): + result = self.run_tool("mpd_now_playing", *arguments) + self.assertEqual(result.returncode, 0, result.stderr) + self.assertEqual(result.stdout, "") + def test_explicit_config_helper_overrides_connection_environment(self): self.seed_queue(["helper.ogg"], current=0, state="play") with tempfile.TemporaryDirectory() as directory: