mirror of https://github.com/mpv-player/mpv
mac/remote: add chapter title info
This commit is contained in:
parent
ca8c61838e
commit
00efaeb428
|
@ -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])
|
||||
}
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue