mac: fix libmpv usage without embedding

NSApp is only an Application when initialised from mpv itself. when used
via libmpv an Application is never initialised and mpv would always
immediately exit.

make the retrieval of the vo and mac options static so they can be
retrieved in all cases.

Fixes #12518
This commit is contained in:
der richter 2023-11-23 17:44:02 +01:00
parent 5aac4c1aee
commit 3f2bc2e535
4 changed files with 10 additions and 21 deletions

View File

@ -34,10 +34,8 @@ class LibmpvHelper {
mpvHandle = mpv
log = LogHelper(mpLog)
guard let app = NSApp as? Application,
let ptr = mp_get_config_group(nil,
mp_client_get_global(mpvHandle),
app.getMacOSConf()) else
let global = mp_client_get_global(mpvHandle)
guard let ptr = mp_get_config_group(nil, global, Application.getMacOSConf()) else
{
log.sendError("macOS config group couldn't be retrieved'")
exit(1)

View File

@ -42,23 +42,14 @@ class MPVHelper {
self.vo = vo
self.log = log
guard let app = NSApp as? Application,
let cache = m_config_cache_alloc(vo, vo.pointee.global, app.getVoSubConf()) else
{
log.sendError("NSApp couldn't be retrieved")
exit(1)
}
optsCachePtr = cache
optsPtr = UnsafeMutablePointer<mp_vo_opts>(OpaquePointer(cache.pointee.opts))
guard let macCache = m_config_cache_alloc(vo,
vo.pointee.global,
app.getMacOSConf()) else
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
{
// will never be hit, mp_get_config_group asserts for invalid groups
exit(1)
}
optsCachePtr = cache
optsPtr = UnsafeMutablePointer<mp_vo_opts>(OpaquePointer(cache.pointee.opts))
macOptsCachePtr = macCache
macOptsPtr = UnsafeMutablePointer<macos_opts>(OpaquePointer(macCache.pointee.opts))
}

View File

@ -190,12 +190,12 @@ static const char macosx_icon[] =
#endif
}
- (const struct m_sub_options *)getMacOSConf
+ (const struct m_sub_options *)getMacOSConf
{
return &macos_conf;
}
- (const struct m_sub_options *)getVoSubConf
+ (const struct m_sub_options *)getVoSubConf
{
return &vo_sub_opts;
}

View File

@ -31,8 +31,8 @@ struct mpv_handle;
- (void)stopMPV:(char *)cmd;
- (void)openFiles:(NSArray *)filenames;
- (void)setMpvHandle:(struct mpv_handle *)ctx;
- (const struct m_sub_options *)getMacOSConf;
- (const struct m_sub_options *)getVoSubConf;
+ (const struct m_sub_options *)getMacOSConf;
+ (const struct m_sub_options *)getVoSubConf;
@property(nonatomic, retain) MenuBar *menuBar;
@property(nonatomic, assign) size_t openCount;