[vlc-commits] macosx: SPMediaKeyTap: Always use default bundle identifiers list

Marvin Scholz git at videolan.org
Thu Aug 2 00:48:55 CEST 2018


vlc | branch: master | Marvin Scholz <epirat07 at gmail.com> | Wed Aug  1 22:55:13 2018 +0200| [4221ab456bf634a62eb56ecbbd4276c6e1505dbe] | committer: Marvin Scholz

macosx: SPMediaKeyTap: Always use default bundle identifiers list

Do not read the list from the user defaults, it is unlikely anyone
ever has to customize this.

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=4221ab456bf634a62eb56ecbbd4276c6e1505dbe
---

 modules/gui/macosx/SPMediaKeyTap.h      |  3 --
 modules/gui/macosx/SPMediaKeyTap.m      | 84 +++++++++++++++++----------------
 modules/gui/macosx/VLCCoreInteraction.m |  8 ++--
 3 files changed, 47 insertions(+), 48 deletions(-)

diff --git a/modules/gui/macosx/SPMediaKeyTap.h b/modules/gui/macosx/SPMediaKeyTap.h
index 092e56d5f5..4e0287c528 100644
--- a/modules/gui/macosx/SPMediaKeyTap.h
+++ b/modules/gui/macosx/SPMediaKeyTap.h
@@ -31,8 +31,6 @@
 
 @interface SPMediaKeyTap : NSObject
 
-+ (NSArray*)defaultMediaKeyUserBundleIdentifiers;
-
 - (id)initWithDelegate:(id)delegate;
 
 + (BOOL)usesGlobalMediaKeyTap;
@@ -49,7 +47,6 @@
 extern "C" {
 #endif
 
-extern NSString *kMediaKeyUsingBundleIdentifiersDefaultsKey;
 extern NSString *kIgnoreMediaKeysDefaultsKey;
 
 #ifdef __cplusplus
diff --git a/modules/gui/macosx/SPMediaKeyTap.m b/modules/gui/macosx/SPMediaKeyTap.m
index 7b1d061819..0950978c64 100644
--- a/modules/gui/macosx/SPMediaKeyTap.m
+++ b/modules/gui/macosx/SPMediaKeyTap.m
@@ -25,6 +25,8 @@
 #import "SPMediaKeyTap.h"
 #import "SPInvocationGrabbing.h"
 
+NSString *kIgnoreMediaKeysDefaultsKey = @"SPIgnoreMediaKeys";
+
 @interface SPMediaKeyTap () {
     EventHandlerRef _app_switching_ref;
     EventHandlerRef _app_terminating_ref;
@@ -162,42 +164,47 @@ static CGEventRef tapEventCallback(CGEventTapProxy proxy, CGEventType type, CGEv
 #endif
 }
 
-+ (NSArray*)defaultMediaKeyUserBundleIdentifiers
++ (NSArray*)mediaKeyUserBundleIdentifiers
 {
-    return [NSArray arrayWithObjects:
+    static NSArray *bundleIdentifiers;
+    static dispatch_once_t onceToken;
+    dispatch_once(&onceToken, ^{
+        bundleIdentifiers = @[
             [[NSBundle mainBundle] bundleIdentifier], // your app
-             @"com.spotify.client",
-             @"com.apple.iTunes",
-             @"com.apple.QuickTimePlayerX",
-             @"com.apple.quicktimeplayer",
-             @"com.apple.iWork.Keynote",
-             @"com.apple.iPhoto",
-             @"org.videolan.vlc",
-             @"com.apple.Aperture",
-             @"com.plexsquared.Plex",
-             @"com.soundcloud.desktop",
-             @"org.niltsh.MPlayerX",
-             @"com.ilabs.PandorasHelper",
-             @"com.mahasoftware.pandabar",
-             @"com.bitcartel.pandorajam",
-             @"org.clementine-player.clementine",
-             @"fm.last.Last.fm",
-             @"fm.last.Scrobbler",
-             @"com.beatport.BeatportPro",
-             @"com.Timenut.SongKey",
-             @"com.macromedia.fireworks", // the tap messes up their mouse input
-             @"at.justp.Theremin",
-             @"ru.ya.themblsha.YandexMusic",
-             @"com.jriver.MediaCenter18",
-             @"com.jriver.MediaCenter19",
-             @"com.jriver.MediaCenter20",
-             @"co.rackit.mate",
-             @"com.ttitt.b-music",
-             @"com.beardedspice.BeardedSpice",
-             @"com.plug.Plug",
-             @"com.netease.163music",
-            nil
-    ];
+            @"com.spotify.client",
+            @"com.apple.iTunes",
+            @"com.apple.QuickTimePlayerX",
+            @"com.apple.quicktimeplayer",
+            @"com.apple.iWork.Keynote",
+            @"com.apple.iPhoto",
+            @"org.videolan.vlc",
+            @"com.apple.Aperture",
+            @"com.plexsquared.Plex",
+            @"com.soundcloud.desktop",
+            @"org.niltsh.MPlayerX",
+            @"com.ilabs.PandorasHelper",
+            @"com.mahasoftware.pandabar",
+            @"com.bitcartel.pandorajam",
+            @"org.clementine-player.clementine",
+            @"fm.last.Last.fm",
+            @"fm.last.Scrobbler",
+            @"com.beatport.BeatportPro",
+            @"com.Timenut.SongKey",
+            @"com.macromedia.fireworks", // the tap messes up their mouse input
+            @"at.justp.Theremin",
+            @"ru.ya.themblsha.YandexMusic",
+            @"com.jriver.MediaCenter18",
+            @"com.jriver.MediaCenter19",
+            @"com.jriver.MediaCenter20",
+            @"co.rackit.mate",
+            @"com.ttitt.b-music",
+            @"com.beardedspice.BeardedSpice",
+            @"com.plug.Plug",
+            @"com.netease.163music",
+        ];
+    });
+
+    return bundleIdentifiers;
 }
 
 
@@ -295,11 +302,6 @@ static CGEventRef tapEventCallback(CGEventTapProxy proxy, CGEventType type, CGEv
 
 #pragma mark Task switching callbacks
 
-NSString *kMediaKeyUsingBundleIdentifiersDefaultsKey = @"SPApplicationsNeedingMediaKeys";
-NSString *kIgnoreMediaKeysDefaultsKey = @"SPIgnoreMediaKeys";
-
-
-
 - (void)mediaKeyAppListChanged
 {
     if([_mediaKeyAppList count] == 0) return;
@@ -335,8 +337,8 @@ NSString *kIgnoreMediaKeysDefaultsKey = @"SPIgnoreMediaKeys";
     );
     NSString *bundleIdentifier = [processInfo objectForKey:(id)kCFBundleIdentifierKey];
 
-    NSArray *whitelistIdentifiers = [[NSUserDefaults standardUserDefaults] arrayForKey:kMediaKeyUsingBundleIdentifiersDefaultsKey];
-    if(![whitelistIdentifiers containsObject:bundleIdentifier]) return;
+    if (![[SPMediaKeyTap mediaKeyUserBundleIdentifiers] containsObject:bundleIdentifier])
+        return;
 
     [_mediaKeyAppList removeObject:psnv];
     [_mediaKeyAppList insertObject:psnv atIndex:0];
diff --git a/modules/gui/macosx/VLCCoreInteraction.m b/modules/gui/macosx/VLCCoreInteraction.m
index cd1fe33c8b..edc510e05c 100644
--- a/modules/gui/macosx/VLCCoreInteraction.m
+++ b/modules/gui/macosx/VLCCoreInteraction.m
@@ -103,11 +103,11 @@ static int BossCallback(vlc_object_t *p_this, const char *psz_var,
         b_mediaKeySupport = var_InheritBool(p_intf, "macosx-mediakeys");
         if (b_mediaKeySupport) {
             _mediaKeyController = [[SPMediaKeyTap alloc] initWithDelegate:self];
-            [[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:
-                                                                     [SPMediaKeyTap defaultMediaKeyUserBundleIdentifiers], kMediaKeyUsingBundleIdentifiersDefaultsKey,
-                                                                     nil]];
         }
-        [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(coreChangedMediaKeySupportSetting:) name:VLCMediaKeySupportSettingChangedNotification object: nil];
+        [[NSNotificationCenter defaultCenter] addObserver:self
+                                                 selector:@selector(coreChangedMediaKeySupportSetting:)
+                                                     name:VLCMediaKeySupportSettingChangedNotification
+                                                   object:nil];
 
         /* init Apple Remote support */
         _remote = [[AppleRemote alloc] init];



More information about the vlc-commits mailing list