summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorder richter <der.richter@gmx.de>2024-02-13 21:47:21 +0100
committerder richter <der.richter@gmx.de>2024-02-15 00:11:55 +0100
commite457cc260c89f492ba59a3012d77643b00e7fd55 (patch)
treeb4e5ab3b3c0f32ce45fe4998fc40f2e90e347074
parentc56be84675547bdb092177b581ba196574e9dee6 (diff)
downloadmpv-e457cc260c89f492ba59a3012d77643b00e7fd55.tar.bz2
mpv-e457cc260c89f492ba59a3012d77643b00e7fd55.tar.xz
mac/remote: add album and artist info
-rw-r--r--osdep/macos/remote_command_center.swift13
-rw-r--r--osdep/macosx_events.m2
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);
}
}