diff options
Diffstat (limited to 'osdep/macOS_mpv_helper.swift')
-rw-r--r-- | osdep/macOS_mpv_helper.swift | 46 |
1 files changed, 29 insertions, 17 deletions
diff --git a/osdep/macOS_mpv_helper.swift b/osdep/macOS_mpv_helper.swift index fe747db08c..35435835de 100644 --- a/osdep/macOS_mpv_helper.swift +++ b/osdep/macOS_mpv_helper.swift @@ -44,14 +44,22 @@ class MPVHelper: NSObject { mpvHandle = mpv mpvLog = mp_log_new(UnsafeMutablePointer<MPContext>(mpvHandle), mp_client_get_log(mpvHandle), "cocoacb") - mpctx = UnsafeMutablePointer<MPContext>(mp_client_get_core(mpvHandle)) - inputContext = mpctx!.pointee.input + guard let mpctx = UnsafeMutablePointer<MPContext>(mp_client_get_core(mpvHandle)) else { + sendError("No MPContext available") + exit(1) + } - if let app = NSApp as? Application { - let ptr = mp_get_config_group(mpctx!, mp_client_get_global(mpvHandle), - app.getMacOSConf()) - macOpts = UnsafeMutablePointer<macos_opts>(OpaquePointer(ptr))!.pointee + self.mpctx = mpctx + inputContext = mpctx.pointee.input + guard let app = NSApp as? Application, + let ptr = mp_get_config_group(mpctx, + mp_client_get_global(mpvHandle), + app.getMacOSConf()) else + { + sendError("macOS config group couldn't be retrieved'") + exit(1) } + macOpts = UnsafeMutablePointer<macos_opts>(OpaquePointer(ptr)).pointee mpv_observe_property(mpvHandle, 0, "ontop", MPV_FORMAT_FLAG) mpv_observe_property(mpvHandle, 0, "border", MPV_FORMAT_FLAG) @@ -83,7 +91,7 @@ class MPVHelper: NSObject { } let getProcAddress: (@convention(c) (UnsafeMutableRawPointer?, UnsafePointer<Int8>?) - -> UnsafeMutableRawPointer?)! = + -> UnsafeMutableRawPointer?) = { (ctx: UnsafeMutableRawPointer?, name: UnsafePointer<Int8>?) -> UnsafeMutableRawPointer? in @@ -214,27 +222,31 @@ class MPVHelper: NSObject { } func getStringProperty(_ name: String) -> String? { - if mpvHandle == nil { return nil } - let value = mpv_get_property_string(mpvHandle, name) - let str = value == nil ? nil : String(cString: value!) + guard let mpv = mpvHandle, + let value = mpv_get_property_string(mpv, name) else + { + return nil + } + + let str = String(cString: value) mpv_free(value) return str } func canBeDraggedAt(_ pos: NSPoint) -> Bool { - if inputContext == nil { return false } - let canDrag = !mp_input_test_dragging(inputContext!, Int32(pos.x), Int32(pos.y)) + guard let input = inputContext else { return false } + let canDrag = !mp_input_test_dragging(input, Int32(pos.x), Int32(pos.y)) return canDrag } func setMousePosition(_ pos: NSPoint) { - if inputContext == nil { return } - mp_input_set_mouse_pos(inputContext!, Int32(pos.x), Int32(pos.y)) + guard let input = inputContext else { return } + mp_input_set_mouse_pos(input, Int32(pos.x), Int32(pos.y)) } func putAxis(_ mpkey: Int32, delta: Double) { - if inputContext == nil { return } - mp_input_put_wheel(inputContext!, mpkey, delta) + guard let input = inputContext else { return } + mp_input_put_wheel(input, mpkey, delta) } func sendVerbose(_ msg: String) { @@ -257,7 +269,7 @@ class MPVHelper: NSObject { if mpvLog == nil { sendFallback(message: msg, type: t) } else { - let args: [CVarArg] = [ (msg as NSString).utf8String! ] + let args: [CVarArg] = [ (msg as NSString).utf8String ?? "NO MESSAGE"] mp_msg_va(mpvLog, Int32(t), "%s\n", getVaList(args)) } } |