diff options
author | der richter <der.richter@gmx.de> | 2024-02-09 21:41:20 +0100 |
---|---|---|
committer | der richter <der.richter@gmx.de> | 2024-02-15 00:11:55 +0100 |
commit | 00efaeb4281d17b078a2830466698f7ca9774797 (patch) | |
tree | f45b41abd590597e852a85c706b52f9e54a44a56 | |
parent | ca8c61838eb30fb7c3253ff395483912b2da3c30 (diff) | |
download | mpv-00efaeb4281d17b078a2830466698f7ca9774797.tar.bz2 mpv-00efaeb4281d17b078a2830466698f7ca9774797.tar.xz |
mac/remote: add chapter title info
-rw-r--r-- | osdep/macos/libmpv_helper.swift | 5 | ||||
-rw-r--r-- | osdep/macos/remote_command_center.swift | 6 | ||||
-rw-r--r-- | osdep/macosx_events.m | 1 |
3 files changed, 8 insertions, 4 deletions
diff --git a/osdep/macos/libmpv_helper.swift b/osdep/macos/libmpv_helper.swift index 6beed835ca..4bead84c69 100644 --- a/osdep/macos/libmpv_helper.swift +++ b/osdep/macos/libmpv_helper.swift @@ -236,8 +236,9 @@ class LibmpvHelper { } // *(char **) MPV_FORMAT_STRING on mpv_event_property - class func mpvStringArrayToString(_ obj: UnsafeMutableRawPointer) -> String? { - let cstr = UnsafeMutablePointer<UnsafeMutablePointer<Int8>>(OpaquePointer(obj)) + class func mpvStringArrayToString(_ obj: UnsafeMutableRawPointer?) -> String? { + guard let str = obj else { return nil } + let cstr = UnsafeMutablePointer<UnsafeMutablePointer<Int8>>(OpaquePointer(str)) return String(cString: cstr[0]) } diff --git a/osdep/macos/remote_command_center.swift b/osdep/macos/remote_command_center.swift index 8eb2c1dda2..77d2efea8f 100644 --- a/osdep/macos/remote_command_center.swift +++ b/osdep/macos/remote_command_center.swift @@ -48,6 +48,7 @@ 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 infoCenter: MPNowPlayingInfoCenter { get { return MPNowPlayingInfoCenter.default() } } var commandCenter: MPRemoteCommandCenter { get { return MPRemoteCommandCenter.shared() } } @@ -58,8 +59,6 @@ class RemoteCommandCenter: NSObject { nowPlayingInfo = [ MPNowPlayingInfoPropertyMediaType: NSNumber(value: MPNowPlayingInfoMediaType.video.rawValue), MPNowPlayingInfoPropertyPlaybackProgress: NSNumber(value: 0.0), - MPMediaItemPropertyAlbumTitle: "", - MPMediaItemPropertyArtist: "", ] configs = [ @@ -144,6 +143,7 @@ class RemoteCommandCenter: NSObject { MPNowPlayingInfoPropertyElapsedPlaybackTime: NSNumber(value: position), MPMediaItemPropertyPlaybackDuration: NSNumber(value: duration), MPMediaItemPropertyTitle: title, + MPMediaItemPropertyArtist: chapter, ]) { (_, new) in new } infoCenter.nowPlayingInfo = nowPlayingInfo @@ -195,6 +195,8 @@ class RemoteCommandCenter: NSObject { rate = LibmpvHelper.mpvDoubleToDouble(property.data) ?? 1 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) ?? "" default: break } diff --git a/osdep/macosx_events.m b/osdep/macosx_events.m index 8722528bc7..b2020f56d1 100644 --- a/osdep/macosx_events.m +++ b/osdep/macosx_events.m @@ -159,6 +159,7 @@ void cocoa_set_mpv_handle(struct mpv_handle *ctx) mpv_observe_property(ctx, 0, "speed", MPV_FORMAT_DOUBLE); 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_set_wakeup_callback(ctx, wakeup, NULL); } } |