mirror of
https://github.com/mpv-player/mpv
synced 2025-02-01 20:52:05 +00:00
a54cc02341
the old displayName property via the IODisplay API is not working anymore on ARM based macs and was broken in at least one other case. instead we use the new localizedName property introduced in 10.15 of the NSScreen. we don't need any backwards compatibility since 10.15 is the oldest version we support now. configs and scripts that use the options and properties fs-screen-name, screen-name or display-names need to be adjusted since the names could differ from the previous implementation via the IODisplay API. Fixes #9697
59 lines
1.5 KiB
Swift
59 lines
1.5 KiB
Swift
/*
|
|
* This file is part of mpv.
|
|
*
|
|
* mpv is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* mpv is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
import Cocoa
|
|
|
|
extension NSDeviceDescriptionKey {
|
|
static let screenNumber = NSDeviceDescriptionKey("NSScreenNumber")
|
|
}
|
|
|
|
extension NSScreen {
|
|
|
|
public var displayID: CGDirectDisplayID {
|
|
get {
|
|
return deviceDescription[.screenNumber] as? CGDirectDisplayID ?? 0
|
|
}
|
|
}
|
|
}
|
|
|
|
extension NSColor {
|
|
|
|
convenience init(hex: String) {
|
|
let int = Int(hex.dropFirst(), radix: 16) ?? 0
|
|
let alpha = CGFloat((int >> 24) & 0x000000FF)/255
|
|
let red = CGFloat((int >> 16) & 0x000000FF)/255
|
|
let green = CGFloat((int >> 8) & 0x000000FF)/255
|
|
let blue = CGFloat((int) & 0x000000FF)/255
|
|
|
|
self.init(calibratedRed: red, green: green, blue: blue, alpha: alpha)
|
|
}
|
|
}
|
|
|
|
extension Bool {
|
|
|
|
init(_ int32: Int32) {
|
|
self.init(int32 != 0)
|
|
}
|
|
}
|
|
|
|
extension Int32 {
|
|
|
|
init(_ bool: Bool) {
|
|
self.init(bool ? 1 : 0)
|
|
}
|
|
}
|