summaryrefslogtreecommitdiffstats
path: root/video/out/cocoa_cb_common.swift
diff options
context:
space:
mode:
authorder richter <der.richter@gmx.de>2019-07-20 12:16:37 +0200
committerJan Ekström <jeebjp@gmail.com>2019-07-21 18:13:07 +0300
commita8c2e2986838dccbcc4bd218b501f0bf86b36e2c (patch)
tree0f9ce3f16cc72c47dd70e9961e6c9b9f1cdabd43 /video/out/cocoa_cb_common.swift
parent0602f082cb9775b4c9c8e256b1cb9de218a3b5fc (diff)
downloadmpv-a8c2e2986838dccbcc4bd218b501f0bf86b36e2c.tar.bz2
mpv-a8c2e2986838dccbcc4bd218b501f0bf86b36e2c.tar.xz
cocoa-cb: migrate to swift 5 with swift 4 fallback
this migrates our current swift code to version 5 and 4. building is support from 10.12.6 and xcode 9.1 onwards. dynamic linking is the new default, since Apple removed static libs from their new toolchains and it's the recommended way. additionally the found macOS SDK version is printed since it's an important information for finding possible errors now. Fixes #6470
Diffstat (limited to 'video/out/cocoa_cb_common.swift')
-rw-r--r--video/out/cocoa_cb_common.swift40
1 files changed, 20 insertions, 20 deletions
diff --git a/video/out/cocoa_cb_common.swift b/video/out/cocoa_cb_common.swift
index 21f6d3f95d..b08f102964 100644
--- a/video/out/cocoa_cb_common.swift
+++ b/video/out/cocoa_cb_common.swift
@@ -29,7 +29,7 @@ class CocoaCB: NSObject {
var cursorHidden: Bool = false
var cursorVisibilityWanted: Bool = true
- var isShuttingDown: Bool = false
+ @objc var isShuttingDown: Bool = false
var title: String = "mpv" {
didSet { if let window = window { window.title = title } }
@@ -52,7 +52,7 @@ class CocoaCB: NSObject {
let queue: DispatchQueue = DispatchQueue(label: "io.mpv.queue")
- init(_ mpvHandle: OpaquePointer) {
+ @objc init(_ mpvHandle: OpaquePointer) {
mpv = MPVHelper(mpvHandle)
super.init()
layer = VideoLayer(cocoaCB: self)
@@ -97,7 +97,7 @@ class CocoaCB: NSObject {
mpv.sendError("Something went wrong, no View was initialized")
exit(1)
}
- guard let targetScreen = getScreenBy(id: Int(opts.screen_id)) ?? NSScreen.main() else {
+ guard let targetScreen = getScreenBy(id: Int(opts.screen_id)) ?? NSScreen.main else {
mpv.sendError("Something went wrong, no Screen was found")
exit(1)
}
@@ -135,7 +135,7 @@ class CocoaCB: NSObject {
func updateWindowSize(_ vo: UnsafeMutablePointer<vo>) {
let opts: mp_vo_opts = vo.pointee.opts.pointee
- guard let targetScreen = getScreenBy(id: Int(opts.screen_id)) ?? NSScreen.main() else {
+ guard let targetScreen = getScreenBy(id: Int(opts.screen_id)) ?? NSScreen.main else {
mpv.sendWarning("Couldn't update Window size, no Screen available")
return
}
@@ -170,7 +170,7 @@ class CocoaCB: NSObject {
let opts: mp_vo_opts = vo.pointee.opts.pointee
CVDisplayLinkCreateWithActiveCGDisplays(&link)
- guard let screen = getScreenBy(id: Int(opts.screen_id)) ?? NSScreen.main(),
+ guard let screen = getScreenBy(id: Int(opts.screen_id)) ?? NSScreen.main,
let link = self.link else
{
mpv.sendWarning("Couldn't start DisplayLink, no Screen or DisplayLink available")
@@ -279,18 +279,19 @@ class CocoaCB: NSObject {
// the polinomial approximation for apple lmu value -> lux was empirically
// derived by firefox developers (Apple provides no documentation).
// https://bugzilla.mozilla.org/show_bug.cgi?id=793728
- let power_c4 = 1 / pow(10, 27)
- let power_c3 = 1 / pow(10, 19)
- let power_c2 = 1 / pow(10, 12)
- let power_c1 = 1 / pow(10, 5)
+ let power_c4: Double = 1 / pow(10, 27)
+ let power_c3: Double = 1 / pow(10, 19)
+ let power_c2: Double = 1 / pow(10, 12)
+ let power_c1: Double = 1 / pow(10, 5)
- let term4 = -3.0 * power_c4 * pow(Decimal(v), 4)
- let term3 = 2.6 * power_c3 * pow(Decimal(v), 3)
- let term2 = -3.4 * power_c2 * pow(Decimal(v), 2)
- let term1 = 3.9 * power_c1 * Decimal(v)
+ let lum = Double(v)
+ let term4: Double = -3.0 * power_c4 * pow(lum, 4.0)
+ let term3: Double = 2.6 * power_c3 * pow(lum, 3.0)
+ let term2: Double = -3.4 * power_c2 * pow(lum, 2.0)
+ let term1: Double = 3.9 * power_c1 * lum
- let lux = Int(ceil( Double((term4 + term3 + term2 + term1 - 0.19) as NSNumber)))
- return Int(lux > 0 ? lux : 0)
+ let lux = Int(ceil(term4 + term3 + term2 + term1 - 0.19))
+ return lux > 0 ? lux : 0
}
var lightSensorCallback: IOServiceInterestCallback = { (ctx, service, messageType, messageArgument) -> Void in
@@ -370,14 +371,13 @@ class CocoaCB: NSObject {
}
func getScreenBy(id screenID: Int) -> NSScreen? {
- guard let screens = NSScreen.screens() else { return nil}
- if screenID >= screens.count {
+ if screenID >= NSScreen.screens.count {
mpv.sendInfo("Screen ID \(screenID) does not exist, falling back to current device")
return nil
} else if screenID < 0 {
return nil
}
- return screens[screenID]
+ return NSScreen.screens[screenID]
}
func getWindowGeometry(forScreen targetScreen: NSScreen,
@@ -486,7 +486,7 @@ class CocoaCB: NSObject {
var count: Int32 = 0
let screen = ccb.window != nil ? ccb.window?.screen :
ccb.getScreenBy(id: Int(opts.screen_id)) ??
- NSScreen.main()
+ NSScreen.main
let displayName = screen?.displayName ?? "Unknown"
SWIFT_TARRAY_STRING_APPEND(nil, &array, &count, ta_xstrdup(nil, displayName))
@@ -545,7 +545,7 @@ class CocoaCB: NSObject {
}
}
- func processEvent(_ event: UnsafePointer<mpv_event>) {
+ @objc func processEvent(_ event: UnsafePointer<mpv_event>) {
switch event.pointee.event_id {
case MPV_EVENT_SHUTDOWN:
shutdown()