From e457cc260c89f492ba59a3012d77643b00e7fd55 Mon Sep 17 00:00:00 2001 From: der richter Date: Tue, 13 Feb 2024 21:47:21 +0100 Subject: [PATCH] mac/remote: add album and artist info --- osdep/macos/remote_command_center.swift | 13 ++++++++++--- osdep/macosx_events.m | 2 ++ 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/osdep/macos/remote_command_center.swift b/osdep/macos/remote_command_center.swift index 7a2d40f2aa..ef648b6bf5 100644 --- a/osdep/macos/remote_command_center.swift +++ b/osdep/macos/remote_command_center.swift @@ -48,7 +48,9 @@ class RemoteCommandCenter: NSObject { var position: Double = 0 { didSet { updateInfoCenter() } } var rate: Double = 0 { didSet { updateInfoCenter() } } var title: String = "" { didSet { updateInfoCenter() } } - var chapter: String = "" { didSet { updateInfoCenter() } } + var chapter: String? { didSet { updateInfoCenter() } } + var album: String? { didSet { updateInfoCenter() } } + var artist: String? { didSet { updateInfoCenter() } } var infoCenter: MPNowPlayingInfoCenter { get { return MPNowPlayingInfoCenter.default() } } var commandCenter: MPRemoteCommandCenter { get { return MPRemoteCommandCenter.shared() } } @@ -143,7 +145,8 @@ class RemoteCommandCenter: NSObject { MPNowPlayingInfoPropertyElapsedPlaybackTime: NSNumber(value: position), MPMediaItemPropertyPlaybackDuration: NSNumber(value: duration), MPMediaItemPropertyTitle: title, - MPMediaItemPropertyArtist: chapter, + MPMediaItemPropertyArtist: artist ?? chapter ?? "", + MPMediaItemPropertyAlbumTitle: album ?? "", ]) { (_, new) in new } infoCenter.nowPlayingInfo = nowPlayingInfo @@ -208,7 +211,11 @@ class RemoteCommandCenter: NSObject { case "media-title" where [MPV_FORMAT_STRING, MPV_FORMAT_NONE].contains(property.format): title = LibmpvHelper.mpvStringArrayToString(property.data) ?? "" case "chapter-metadata/title" where [MPV_FORMAT_STRING, MPV_FORMAT_NONE].contains(property.format): - chapter = LibmpvHelper.mpvStringArrayToString(property.data) ?? "" + chapter = LibmpvHelper.mpvStringArrayToString(property.data) + case "metadata/by-key/album" where [MPV_FORMAT_STRING, MPV_FORMAT_NONE].contains(property.format): + album = LibmpvHelper.mpvStringArrayToString(property.data) + case "metadata/by-key/artist" where [MPV_FORMAT_STRING, MPV_FORMAT_NONE].contains(property.format): + artist = LibmpvHelper.mpvStringArrayToString(property.data) default: break } diff --git a/osdep/macosx_events.m b/osdep/macosx_events.m index b2020f56d1..0b9c7e79f1 100644 --- a/osdep/macosx_events.m +++ b/osdep/macosx_events.m @@ -160,6 +160,8 @@ void cocoa_set_mpv_handle(struct mpv_handle *ctx) mpv_observe_property(ctx, 0, "pause", MPV_FORMAT_FLAG); mpv_observe_property(ctx, 0, "media-title", MPV_FORMAT_STRING); mpv_observe_property(ctx, 0, "chapter-metadata/title", MPV_FORMAT_STRING); + mpv_observe_property(ctx, 0, "metadata/by-key/album", MPV_FORMAT_STRING); + mpv_observe_property(ctx, 0, "metadata/by-key/artist", MPV_FORMAT_STRING); mpv_set_wakeup_callback(ctx, wakeup, NULL); } }