mac/option: make option helper vo struct independent

This commit is contained in:
der richter 2024-03-19 21:36:07 +01:00
parent 90c534a821
commit 6defd49aa1
4 changed files with 12 additions and 12 deletions

View File

@ -20,7 +20,6 @@ import Cocoa
typealias swift_wakeup_cb_fn = (@convention(c) (UnsafeMutableRawPointer?) -> Void)?
class OptionHelper: NSObject {
var vo: UnsafeMutablePointer<vo>
var optsCachePtr: UnsafeMutablePointer<m_config_cache>
var macOptsCachePtr: UnsafeMutablePointer<m_config_cache>
@ -35,11 +34,9 @@ class OptionHelper: NSObject {
var opts: mp_vo_opts { get { return optsPtr.pointee } }
var macOpts: macos_opts { get { return macOptsPtr.pointee } }
init(_ vo: UnsafeMutablePointer<vo>) {
self.vo = vo
guard let cache = m_config_cache_alloc(vo, vo.pointee.global, Application.getVoSubConf()),
let macCache = m_config_cache_alloc(vo, vo.pointee.global, Application.getMacOSConf()) else
init(_ taParent: UnsafeMutableRawPointer, _ global: OpaquePointer?) {
guard let cache = m_config_cache_alloc(taParent, global, Application.getVoSubConf()),
let macCache = m_config_cache_alloc(taParent, global, Application.getMacOSConf()) else
{
// will never be hit, mp_get_config_group asserts for invalid groups
exit(1)

View File

@ -35,11 +35,12 @@ class CocoaCB: Common {
let newlog = mp_log_new(UnsafeMutablePointer<MPContext>(mpvHandle), mp_client_get_log(mpvHandle), "cocoacb")
libmpv = LibmpvHelper(mpvHandle, newlog)
super.init(newlog)
option = OptionHelper(UnsafeMutablePointer(mpvHandle), mp_client_get_global(mpvHandle))
layer = GLLayer(cocoaCB: self)
}
func preinit(_ vo: UnsafeMutablePointer<vo>) {
option = OptionHelper(vo)
self.vo = vo
input = InputHelper(vo.pointee.input_ctx, option)
if backendState == .uninitialized {
@ -62,7 +63,7 @@ class CocoaCB: Common {
}
func reconfig(_ vo: UnsafeMutablePointer<vo>) {
option?.vo = vo
self.vo = vo
if backendState == .needsInit {
DispatchQueue.main.sync { self.initBackend(vo) }
} else if option?.opts.auto_window_resize ?? true {

View File

@ -22,6 +22,7 @@ class Common: NSObject {
var option: OptionHelper?
var input: InputHelper?
var log: LogHelper
var vo: UnsafeMutablePointer<vo>?
let queue: DispatchQueue = DispatchQueue(label: "io.mpv.queue")
@objc var window: Window?
@ -483,11 +484,11 @@ class Common: NSObject {
events |= ev
eventsLock.unlock()
guard let vout = option?.vo else {
guard let vo = vo else {
log.sendWarning("vo nil in flagEvents")
return
}
vo_wakeup(vout)
vo_wakeup(vo)
}
func checkEvents() -> Int {

View File

@ -27,7 +27,8 @@ class MacCommon: Common {
@objc init(_ vo: UnsafeMutablePointer<vo>) {
let newlog = mp_log_new(vo, vo.pointee.log, "mac")
super.init(newlog)
option = OptionHelper(vo)
self.vo = vo
option = OptionHelper(vo, vo.pointee.global)
input = InputHelper(vo.pointee.input_ctx, option)
timer = PreciseTimer(common: self)
@ -38,7 +39,7 @@ class MacCommon: Common {
}
@objc func config(_ vo: UnsafeMutablePointer<vo>) -> Bool {
option?.vo = vo
self.vo = vo
DispatchQueue.main.sync {
let previousActiveApp = getActiveApp()