diff options
author | der richter <der.richter@gmx.de> | 2024-03-19 22:25:39 +0100 |
---|---|---|
committer | der richter <der.richter@gmx.de> | 2024-03-21 18:33:15 +0100 |
commit | b480daad88706b216bceb79f5c78f55c05ce65ae (patch) | |
tree | 84b3401263b820663a37f42713bd5431679012ee /video/out/mac/common.swift | |
parent | 6defd49aa1f1d7b8a4d536c2a9fbf856dcf541db (diff) | |
download | mpv-b480daad88706b216bceb79f5c78f55c05ce65ae.tar.bz2 mpv-b480daad88706b216bceb79f5c78f55c05ce65ae.tar.xz |
mac/option: make option helper none optional
gets rid of some unwrapping boilerplate and nil coalescing operators.
Diffstat (limited to 'video/out/mac/common.swift')
-rw-r--r-- | video/out/mac/common.swift | 64 |
1 files changed, 18 insertions, 46 deletions
diff --git a/video/out/mac/common.swift b/video/out/mac/common.swift index 7fcc4b607a..504c20bea5 100644 --- a/video/out/mac/common.swift +++ b/video/out/mac/common.swift @@ -19,7 +19,7 @@ import Cocoa import IOKit.pwr_mgt class Common: NSObject { - var option: OptionHelper? + var option: OptionHelper var input: InputHelper? var log: LogHelper var vo: UnsafeMutablePointer<vo>? @@ -48,16 +48,12 @@ class Common: NSObject { didSet { if let window = window { window.title = title } } } - init(_ mpLog: OpaquePointer?) { + init(_ opt: OptionHelper, _ mpLog: OpaquePointer?) { + option = opt log = LogHelper(mpLog) } func initMisc(_ vo: UnsafeMutablePointer<vo>) { - guard let option = option else { - log.sendError("Something went wrong, no OptionHelper was initialized") - exit(1) - } - startDisplayLink(vo) initLightSensor() addDisplayReconfigureObserver() @@ -66,11 +62,6 @@ class Common: NSObject { } func initApp() { - guard let option = option else { - log.sendError("Something went wrong, no OptionHelper was initialized") - exit(1) - } - var policy: NSApplication.ActivationPolicy = .regular switch option.macOpts.macos_app_activation_policy { case 0: @@ -88,7 +79,7 @@ class Common: NSObject { } func initWindow(_ vo: UnsafeMutablePointer<vo>, _ previousActiveApp: NSRunningApplication?) { - let (option, targetScreen, wr) = getInitProperties(vo) + let (targetScreen, wr) = getInitProperties(vo) guard let view = self.view else { log.sendError("Something went wrong, no View was initialized") @@ -133,7 +124,7 @@ class Common: NSObject { } func initView(_ vo: UnsafeMutablePointer<vo>, _ layer: CALayer) { - let (_, _, wr) = getInitProperties(vo) + let (_, wr) = getInitProperties(vo) view = View(frame: wr, common: self) guard let view = self.view else { @@ -148,7 +139,7 @@ class Common: NSObject { } func initWindowState() { - if option?.opts.fullscreen ?? false { + if option.opts.fullscreen { DispatchQueue.main.async { self.window?.toggleFullScreen(nil) } @@ -410,11 +401,6 @@ class Common: NSObject { } func getTargetScreen(forFullscreen fs: Bool) -> NSScreen? { - guard let option = option else { - log.sendWarning("Unexpected nil value in getTargetScreen") - return nil - } - let screenID = fs ? option.opts.fsscreen_id : option.opts.screen_id var name: String? if let screenName = fs ? option.opts.fsscreen_name : option.opts.screen_name { @@ -432,7 +418,7 @@ class Common: NSObject { func getWindowGeometry(forScreen screen: NSScreen, videoOut vo: UnsafeMutablePointer<vo>) -> NSRect { let r = screen.convertRectToBacking(screen.frame) - let targetFrame = (option?.macOpts.macos_geometry_calculation ?? Int32(FRAME_VISIBLE)) == FRAME_VISIBLE + let targetFrame = option.macOpts.macos_geometry_calculation == FRAME_VISIBLE ? screen.visibleFrame : screen.frame let rv = screen.convertRectToBacking(targetFrame) @@ -459,11 +445,7 @@ class Common: NSObject { return screen.convertRectFromBacking(NSMakeRect(x, y, width, height)) } - func getInitProperties(_ vo: UnsafeMutablePointer<vo>) -> (OptionHelper, NSScreen, NSRect) { - guard let option = option else { - log.sendError("Something went wrong, no OptionHelper was initialized") - exit(1) - } + func getInitProperties(_ vo: UnsafeMutablePointer<vo>) -> (NSScreen, NSRect) { guard let targetScreen = getTargetScreen(forFullscreen: false) ?? NSScreen.main else { log.sendError("Something went wrong, no Screen was found") exit(1) @@ -471,7 +453,7 @@ class Common: NSObject { let wr = getWindowGeometry(forScreen: targetScreen, videoOut: vo) - return (option, targetScreen, wr) + return (targetScreen, wr) } // call before initApp, because on macOS +10.15 it changes the active App @@ -516,11 +498,6 @@ class Common: NSObject { request: UInt32, data: UnsafeMutableRawPointer?) -> Int32 { - guard let option = option else { - log.sendWarning("Unexpected nil value in Control Callback") - return VO_FALSE - } - switch mp_voctrl(request) { case VOCTRL_CHECK_EVENTS: events.pointee |= Int32(checkEvents()) @@ -531,7 +508,7 @@ class Common: NSObject { switch opt { case TypeHelper.toPointer(&option.optsPtr.pointee.border): DispatchQueue.main.async { - self.window?.border = Bool(option.opts.border) + self.window?.border = Bool(self.option.opts.border) } case TypeHelper.toPointer(&option.optsPtr.pointee.fullscreen): DispatchQueue.main.async { @@ -540,34 +517,34 @@ class Common: NSObject { case TypeHelper.toPointer(&option.optsPtr.pointee.ontop): fallthrough case TypeHelper.toPointer(&option.optsPtr.pointee.ontop_level): DispatchQueue.main.async { - self.window?.setOnTop(Bool(option.opts.ontop), Int(option.opts.ontop_level)) + self.window?.setOnTop(Bool(self.option.opts.ontop), Int(self.option.opts.ontop_level)) } case TypeHelper.toPointer(&option.optsPtr.pointee.all_workspaces): DispatchQueue.main.async { - self.window?.setOnAllWorkspaces(Bool(option.opts.all_workspaces)) + self.window?.setOnAllWorkspaces(Bool(self.option.opts.all_workspaces)) } case TypeHelper.toPointer(&option.optsPtr.pointee.keepaspect_window): DispatchQueue.main.async { - self.window?.keepAspect = Bool(option.opts.keepaspect_window) + self.window?.keepAspect = Bool(self.option.opts.keepaspect_window) } case TypeHelper.toPointer(&option.optsPtr.pointee.window_minimized): DispatchQueue.main.async { - self.window?.setMinimized(Bool(option.opts.window_minimized)) + self.window?.setMinimized(Bool(self.option.opts.window_minimized)) } case TypeHelper.toPointer(&option.optsPtr.pointee.window_maximized): DispatchQueue.main.async { - self.window?.setMaximized(Bool(option.opts.window_maximized)) + self.window?.setMaximized(Bool(self.option.opts.window_maximized)) } case TypeHelper.toPointer(&option.optsPtr.pointee.cursor_passthrough): DispatchQueue.main.async { - self.window?.ignoresMouseEvents = option.opts.cursor_passthrough + self.window?.ignoresMouseEvents = self.option.opts.cursor_passthrough } case TypeHelper.toPointer(&option.optsPtr.pointee.geometry): fallthrough case TypeHelper.toPointer(&option.optsPtr.pointee.autofit): fallthrough case TypeHelper.toPointer(&option.optsPtr.pointee.autofit_smaller): fallthrough case TypeHelper.toPointer(&option.optsPtr.pointee.autofit_larger): DispatchQueue.main.async { - let (_, _, wr) = self.getInitProperties(vo) + let (_, wr) = self.getInitProperties(vo) self.window?.updateFrame(wr) } default: @@ -643,7 +620,7 @@ class Common: NSObject { let size = UnsafeBufferPointer(start: sizeData, count: 2) var rect = NSMakeRect(0, 0, CGFloat(size[0]), CGFloat(size[1])) DispatchQueue.main.async { - if let screen = self.window?.currentScreen, !Bool(self.option?.opts.hidpi_window_scale ?? true) { + if let screen = self.window?.currentScreen, !Bool(self.option.opts.hidpi_window_scale) { rect = screen.convertRectFromBacking(rect) } self.window?.updateSize(rect.size) @@ -693,11 +670,6 @@ class Common: NSObject { } func macOptsUpdate() { - guard let option = option else { - log.sendWarning("Unexpected nil value in mac opts update") - return - } - var opt: UnsafeMutableRawPointer? while option.nextChangedMacOption(property: &opt) { switch opt { |