mirror of https://github.com/mpv-player/mpv
mac: remove runtime checks and compatibility for macOS older than 10.15
we stopped supporting macOS older than 10.15 and hence can remove all the unnecessary runtime checks and compatibility layers.
This commit is contained in:
parent
a5bf211e12
commit
23de1deaaa
|
@ -17,7 +17,6 @@
|
|||
|
||||
import MediaPlayer
|
||||
|
||||
@available(macOS 10.12.2, *)
|
||||
class RemoteCommandCenter: NSObject {
|
||||
enum KeyType {
|
||||
case normal
|
||||
|
@ -105,9 +104,7 @@ class RemoteCommandCenter: NSObject {
|
|||
}
|
||||
}
|
||||
|
||||
if let app = NSApp as? Application, let icon = app.getMPVIcon(),
|
||||
#available(macOS 10.13.2, *)
|
||||
{
|
||||
if let app = NSApp as? Application, let icon = app.getMPVIcon() {
|
||||
let albumArt = MPMediaItemArtwork(boundsSize: icon.size) { _ in
|
||||
return icon
|
||||
}
|
||||
|
|
|
@ -15,23 +15,6 @@
|
|||
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
extension NSPasteboard.PasteboardType {
|
||||
static let fileURLCompat: NSPasteboard.PasteboardType = {
|
||||
if #available(OSX 10.13, *) {
|
||||
return .fileURL
|
||||
} else {
|
||||
return NSPasteboard.PasteboardType(kUTTypeURL as String)
|
||||
}
|
||||
} ()
|
||||
|
||||
static let URLCompat: NSPasteboard.PasteboardType = {
|
||||
if #available(OSX 10.13, *) {
|
||||
return .URL
|
||||
} else {
|
||||
return NSPasteboard.PasteboardType(kUTTypeFileURL as String)
|
||||
}
|
||||
} ()
|
||||
}
|
||||
|
||||
#if !swift(>=5.0)
|
||||
extension Data {
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
#include "options/options.h"
|
||||
|
||||
#import "osdep/macosx_application_objc.h"
|
||||
#include "osdep/macosx_compat.h"
|
||||
#import "osdep/macosx_events_objc.h"
|
||||
#include "osdep/threads.h"
|
||||
#include "osdep/main-fn.h"
|
||||
|
@ -177,8 +176,7 @@ static const char macosx_icon[] =
|
|||
- (void)processEvent:(struct mpv_event *)event
|
||||
{
|
||||
#if HAVE_MACOS_TOUCHBAR
|
||||
if ([self respondsToSelector:@selector(touchBar)])
|
||||
[(TouchBar *)self.touchBar processEvent:event];
|
||||
[(TouchBar *)self.touchBar processEvent:event];
|
||||
#endif
|
||||
if (_cocoa_cb) {
|
||||
[_cocoa_cb processEvent:event];
|
||||
|
|
|
@ -1,63 +0,0 @@
|
|||
/*
|
||||
* Application Event Handling
|
||||
*
|
||||
* This file is part of mpv.
|
||||
*
|
||||
* mpv is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* mpv is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
|
||||
#ifndef MPV_MACOSX_COMPAT
|
||||
#define MPV_MACOSX_COMPAT
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#include "osdep/macosx_versions.h"
|
||||
|
||||
#if (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_12)
|
||||
|
||||
@interface NSWindow (macOS10_12_SDK)
|
||||
+ (void)setAllowsAutomaticWindowTabbing:(BOOL)allow;
|
||||
@end
|
||||
|
||||
typedef NSUInteger NSWindowStyleMask;
|
||||
static const NSWindowStyleMask NSWindowStyleMaskClosable = NSClosableWindowMask;
|
||||
static const NSWindowStyleMask NSWindowStyleMaskTitled = NSTitledWindowMask;
|
||||
static const NSWindowStyleMask NSWindowStyleMaskMiniaturizable = NSMiniaturizableWindowMask;
|
||||
static const NSWindowStyleMask NSWindowStyleMaskResizable = NSResizableWindowMask;
|
||||
static const NSWindowStyleMask NSWindowStyleMaskBorderless = NSBorderlessWindowMask;
|
||||
static const NSWindowStyleMask NSWindowStyleMaskFullScreen = NSFullScreenWindowMask;
|
||||
|
||||
static const NSEventType NSEventTypeSystemDefined = NSSystemDefined;
|
||||
static const NSEventType NSEventTypeKeyDown = NSKeyDown;
|
||||
static const NSEventType NSEventTypeKeyUp = NSKeyUp;
|
||||
|
||||
static const NSEventMask NSEventMaskLeftMouseUp = NSLeftMouseUpMask;
|
||||
|
||||
#if (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_10)
|
||||
typedef NSUInteger NSEventModifierFlags;
|
||||
#endif
|
||||
|
||||
static const NSEventModifierFlags NSEventModifierFlagShift = NSShiftKeyMask;
|
||||
static const NSEventModifierFlags NSEventModifierFlagControl = NSControlKeyMask;
|
||||
static const NSEventModifierFlags NSEventModifierFlagCommand = NSCommandKeyMask;
|
||||
static const NSEventModifierFlags NSEventModifierFlagOption = NSAlternateKeyMask;
|
||||
|
||||
#if (MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_9)
|
||||
typedef NSUInteger NSModalResponse;
|
||||
static const NSModalResponse NSModalResponseOK = NSFileHandlingPanelOKButton;
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* MPV_MACOSX_COMPAT */
|
|
@ -33,7 +33,6 @@
|
|||
// doesn't make much sense, but needed to access keymap functionality
|
||||
#include "video/out/vo.h"
|
||||
|
||||
#include "osdep/macosx_compat.h"
|
||||
#import "osdep/macosx_events_objc.h"
|
||||
#import "osdep/macosx_application_objc.h"
|
||||
|
||||
|
@ -299,8 +298,7 @@ void cocoa_set_mpv_handle(struct mpv_handle *ctx)
|
|||
- (void)startMediaKeys
|
||||
{
|
||||
#if HAVE_MACOS_MEDIA_PLAYER
|
||||
// 10.12.2 runtime availability check
|
||||
if (_remoteCommandCenter == nil && [NSApp respondsToSelector:@selector(touchBar)]) {
|
||||
if (_remoteCommandCenter == nil) {
|
||||
_remoteCommandCenter = [[RemoteCommandCenter alloc] init];
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
|
||||
#import "macosx_menubar_objc.h"
|
||||
#import "osdep/macosx_application_objc.h"
|
||||
#include "osdep/macosx_compat.h"
|
||||
|
||||
@implementation MenuBar
|
||||
{
|
||||
|
@ -34,9 +33,7 @@
|
|||
[userDefaults setBool:NO forKey:@"NSFullScreenMenuItemEverywhere"];
|
||||
[userDefaults setBool:YES forKey:@"NSDisabledDictationMenuItem"];
|
||||
[userDefaults setBool:YES forKey:@"NSDisabledCharacterPaletteMenuItem"];
|
||||
|
||||
if ([NSWindow respondsToSelector:@selector(setAllowsAutomaticWindowTabbing:)])
|
||||
[NSWindow setAllowsAutomaticWindowTabbing: NO];
|
||||
[NSWindow setAllowsAutomaticWindowTabbing: NO];
|
||||
|
||||
menuTree = @[
|
||||
@{
|
||||
|
@ -640,8 +637,7 @@
|
|||
|
||||
#if HAVE_MACOS_TOUCHBAR
|
||||
if ([action isEqual:@"toggleTouchBarCustomizationPalette:"]) {
|
||||
if (![NSApp respondsToSelector:@selector(touchBar)])
|
||||
continue;
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
/*
|
||||
* This file is part of mpv.
|
||||
*
|
||||
* mpv is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU Lesser General Public
|
||||
* License as published by the Free Software Foundation; either
|
||||
* version 2.1 of the License, or (at your option) any later version.
|
||||
*
|
||||
* mpv is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public
|
||||
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef MPV_MACOSX_VERSIONS
|
||||
#define MPV_MACOSX_VERSIONS
|
||||
|
||||
#if !defined(MAC_OS_X_VERSION_10_9)
|
||||
# define MAC_OS_X_VERSION_10_9 1090
|
||||
#endif
|
||||
|
||||
#if !defined(MAC_OS_X_VERSION_10_10)
|
||||
# define MAC_OS_X_VERSION_10_10 101000
|
||||
#endif
|
||||
|
||||
#if !defined(MAC_OS_X_VERSION_10_12)
|
||||
# define MAC_OS_X_VERSION_10_12 101200
|
||||
#endif
|
||||
|
||||
#endif /* MPV_MACOSX_VERSIONS */
|
|
@ -18,7 +18,6 @@
|
|||
#include "input/input.h"
|
||||
#include "input/keycodes.h"
|
||||
|
||||
#include "osdep/macosx_compat.h"
|
||||
#include "video/out/cocoa_common.h"
|
||||
#include "events_view.h"
|
||||
|
||||
|
|
|
@ -15,7 +15,6 @@
|
|||
* License along with mpv. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "osdep/macosx_compat.h"
|
||||
#include "video/out/cocoa_common.h"
|
||||
#include "video_view.h"
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#include "input/keycodes.h"
|
||||
|
||||
#include "osdep/macosx_events.h"
|
||||
#include "osdep/macosx_compat.h"
|
||||
#include "video/out/cocoa_common.h"
|
||||
|
||||
#include "window.h"
|
||||
|
|
|
@ -121,9 +121,7 @@ class CocoaCB: Common {
|
|||
}
|
||||
|
||||
libmpv.setRenderICCProfile(colorSpace)
|
||||
if #available(macOS 10.11, *) {
|
||||
layer?.colorspace = colorSpace.cgColorSpace
|
||||
}
|
||||
layer?.colorspace = colorSpace.cgColorSpace
|
||||
}
|
||||
|
||||
override func windowDidEndAnimation() {
|
||||
|
|
|
@ -32,7 +32,6 @@
|
|||
#import "video/out/cocoa/mpvadapter.h"
|
||||
|
||||
#include "osdep/threads.h"
|
||||
#include "osdep/macosx_compat.h"
|
||||
#include "osdep/macosx_events_objc.h"
|
||||
|
||||
#include "osdep/timer.h"
|
||||
|
|
|
@ -164,17 +164,6 @@ class Common: NSObject {
|
|||
view?.removeFromSuperview()
|
||||
}
|
||||
|
||||
let linkCallback: CVDisplayLinkOutputCallback = {
|
||||
(displayLink: CVDisplayLink,
|
||||
inNow: UnsafePointer<CVTimeStamp>,
|
||||
inOutputTime: UnsafePointer<CVTimeStamp>,
|
||||
flagsIn: CVOptionFlags,
|
||||
flagsOut: UnsafeMutablePointer<CVOptionFlags>,
|
||||
displayLinkContext: UnsafeMutableRawPointer?) -> CVReturn in
|
||||
let com = unsafeBitCast(displayLinkContext, to: Common.self)
|
||||
return com.displayLinkCallback(displayLink, inNow, inOutputTime, flagsIn, flagsOut)
|
||||
}
|
||||
|
||||
func displayLinkCallback(_ displayLink: CVDisplayLink,
|
||||
_ inNow: UnsafePointer<CVTimeStamp>,
|
||||
_ inOutputTime: UnsafePointer<CVTimeStamp>,
|
||||
|
@ -195,12 +184,8 @@ class Common: NSObject {
|
|||
}
|
||||
|
||||
CVDisplayLinkSetCurrentCGDisplay(link, screen.displayID)
|
||||
if #available(macOS 10.12, *) {
|
||||
CVDisplayLinkSetOutputHandler(link) { link, now, out, inFlags, outFlags -> CVReturn in
|
||||
return self.displayLinkCallback(link, now, out, inFlags, outFlags)
|
||||
}
|
||||
} else {
|
||||
CVDisplayLinkSetOutputCallback(link, linkCallback, MPVHelper.bridge(obj: self))
|
||||
CVDisplayLinkSetOutputHandler(link) { link, now, out, inFlags, outFlags -> CVReturn in
|
||||
return self.displayLinkCallback(link, now, out, inFlags, outFlags)
|
||||
}
|
||||
CVDisplayLinkStart(link)
|
||||
}
|
||||
|
|
|
@ -109,7 +109,7 @@ class GLLayer: CAOpenGLLayer {
|
|||
autoresizingMask = [.layerWidthSizable, .layerHeightSizable]
|
||||
backgroundColor = NSColor.black.cgColor
|
||||
|
||||
if #available(macOS 10.12, *), bufferDepth > 8 {
|
||||
if bufferDepth > 8 {
|
||||
contentsFormat = .RGBA16Float
|
||||
}
|
||||
|
||||
|
|
|
@ -36,10 +36,8 @@ class TitleBar: NSVisualEffectView {
|
|||
set {
|
||||
super.material = newValue
|
||||
// fix for broken deprecated materials
|
||||
if material == .light || material == .dark {
|
||||
state = .active
|
||||
} else if #available(macOS 10.11, *),
|
||||
material == .mediumLight || material == .ultraDark
|
||||
if material == .light || material == .dark || material == .mediumLight ||
|
||||
material == .ultraDark
|
||||
{
|
||||
state = .active
|
||||
} else {
|
||||
|
@ -179,30 +177,25 @@ class TitleBar: NSVisualEffectView {
|
|||
switch string {
|
||||
case "1", "aqua":
|
||||
return NSAppearance(named: .aqua)
|
||||
case "2", "darkAqua":
|
||||
return NSAppearance(named: .darkAqua)
|
||||
case "3", "vibrantLight":
|
||||
return NSAppearance(named: .vibrantLight)
|
||||
case "4", "vibrantDark":
|
||||
return NSAppearance(named: .vibrantDark)
|
||||
default: break
|
||||
case "5", "aquaHighContrast":
|
||||
return NSAppearance(named: .accessibilityHighContrastAqua)
|
||||
case "6", "darkAquaHighContrast":
|
||||
return NSAppearance(named: .accessibilityHighContrastDarkAqua)
|
||||
case "7", "vibrantLightHighContrast":
|
||||
return NSAppearance(named: .accessibilityHighContrastVibrantLight)
|
||||
case "8", "vibrantDarkHighContrast":
|
||||
return NSAppearance(named: .accessibilityHighContrastVibrantDark)
|
||||
case "0", "auto": fallthrough
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
|
||||
if #available(macOS 10.14, *) {
|
||||
switch string {
|
||||
case "2", "darkAqua":
|
||||
return NSAppearance(named: .darkAqua)
|
||||
case "5", "aquaHighContrast":
|
||||
return NSAppearance(named: .accessibilityHighContrastAqua)
|
||||
case "6", "darkAquaHighContrast":
|
||||
return NSAppearance(named: .accessibilityHighContrastDarkAqua)
|
||||
case "7", "vibrantLightHighContrast":
|
||||
return NSAppearance(named: .accessibilityHighContrastVibrantLight)
|
||||
case "8", "vibrantDarkHighContrast":
|
||||
return NSAppearance(named: .accessibilityHighContrastVibrantDark)
|
||||
case "0", "auto": fallthrough
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
||||
let style = UserDefaults.standard.string(forKey: "AppleInterfaceStyle")
|
||||
return appearanceFrom(string: style == nil ? "aqua" : "vibrantDark")
|
||||
|
@ -210,37 +203,25 @@ class TitleBar: NSVisualEffectView {
|
|||
|
||||
func materialFrom(string: String) -> NSVisualEffectView.Material {
|
||||
switch string {
|
||||
case "1", "selection": return .selection
|
||||
case "0", "titlebar": return .titlebar
|
||||
case "14", "dark": return .dark
|
||||
case "15", "light": return .light
|
||||
default: break
|
||||
}
|
||||
|
||||
if #available(macOS 10.11, *) {
|
||||
switch string {
|
||||
case "2,", "menu": return .menu
|
||||
case "3", "popover": return .popover
|
||||
case "4", "sidebar": return .sidebar
|
||||
case "16", "mediumLight": return .mediumLight
|
||||
case "17", "ultraDark": return .ultraDark
|
||||
default: break
|
||||
}
|
||||
}
|
||||
|
||||
if #available(macOS 10.14, *) {
|
||||
switch string {
|
||||
case "5,", "headerView": return .headerView
|
||||
case "6", "sheet": return .sheet
|
||||
case "7", "windowBackground": return .windowBackground
|
||||
case "8", "hudWindow": return .hudWindow
|
||||
case "9", "fullScreen": return .fullScreenUI
|
||||
case "10", "toolTip": return .toolTip
|
||||
case "11", "contentBackground": return .contentBackground
|
||||
case "12", "underWindowBackground": return .underWindowBackground
|
||||
case "13", "underPageBackground": return .underPageBackground
|
||||
default: break
|
||||
}
|
||||
case "0", "titlebar": return .titlebar
|
||||
case "1", "selection": return .selection
|
||||
case "2,", "menu": return .menu
|
||||
case "3", "popover": return .popover
|
||||
case "4", "sidebar": return .sidebar
|
||||
case "5,", "headerView": return .headerView
|
||||
case "6", "sheet": return .sheet
|
||||
case "7", "windowBackground": return .windowBackground
|
||||
case "8", "hudWindow": return .hudWindow
|
||||
case "9", "fullScreen": return .fullScreenUI
|
||||
case "10", "toolTip": return .toolTip
|
||||
case "11", "contentBackground": return .contentBackground
|
||||
case "12", "underWindowBackground": return .underWindowBackground
|
||||
case "13", "underPageBackground": return .underPageBackground
|
||||
case "14", "dark": return .dark
|
||||
case "15", "light": return .light
|
||||
case "16", "mediumLight": return .mediumLight
|
||||
case "17", "ultraDark": return .ultraDark
|
||||
default: break
|
||||
}
|
||||
|
||||
return .titlebar
|
||||
|
|
|
@ -33,7 +33,7 @@ class View: NSView {
|
|||
super.init(frame: frame)
|
||||
autoresizingMask = [.width, .height]
|
||||
wantsBestResolutionOpenGLSurface = true
|
||||
registerForDraggedTypes([ .fileURLCompat, .URLCompat, .string ])
|
||||
registerForDraggedTypes([ .fileURL, .URL, .string ])
|
||||
}
|
||||
|
||||
required init?(coder: NSCoder) {
|
||||
|
@ -58,7 +58,7 @@ class View: NSView {
|
|||
|
||||
override func draggingEntered(_ sender: NSDraggingInfo) -> NSDragOperation {
|
||||
guard let types = sender.draggingPasteboard.types else { return [] }
|
||||
if types.contains(.fileURLCompat) || types.contains(.URLCompat) || types.contains(.string) {
|
||||
if types.contains(.fileURL) || types.contains(.URL) || types.contains(.string) {
|
||||
return .copy
|
||||
}
|
||||
return []
|
||||
|
@ -78,7 +78,7 @@ class View: NSView {
|
|||
let pb = sender.draggingPasteboard
|
||||
guard let types = pb.types else { return false }
|
||||
|
||||
if types.contains(.fileURLCompat) || types.contains(.URLCompat) {
|
||||
if types.contains(.fileURL) || types.contains(.URL) {
|
||||
if let urls = pb.readObjects(forClasses: [NSURL.self]) as? [URL] {
|
||||
let files = urls.map { $0.absoluteString }
|
||||
EventsResponder.sharedInstance().handleFilesArray(files)
|
||||
|
|
|
@ -150,10 +150,7 @@ class MacCommon: Common {
|
|||
return
|
||||
}
|
||||
|
||||
if #available(macOS 10.11, *) {
|
||||
layer?.colorspace = colorSpace.cgColorSpace
|
||||
}
|
||||
|
||||
layer?.colorspace = colorSpace.cgColorSpace
|
||||
flagEvents(VO_EVENT_ICC_PROFILE_CHANGED)
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue