Commit 272b0ffa authored by David's avatar David

macosx: robustify media key trap handling

Only start and stop media key support when needed (ressource-intensive).
parent 6e24206e
...@@ -105,6 +105,7 @@ static NSString * VLCInputChangedNotification = @"VLCInputChangedNotification"; ...@@ -105,6 +105,7 @@ static NSString * VLCInputChangedNotification = @"VLCInputChangedNotification";
BOOL b_mediaKeySupport; BOOL b_mediaKeySupport;
BOOL b_mediakeyJustJumped; BOOL b_mediakeyJustJumped;
SPMediaKeyTap * o_mediaKeyController; SPMediaKeyTap * o_mediaKeyController;
BOOL b_mediaKeyTrapEnabled;
NSArray *o_usedHotkeys; NSArray *o_usedHotkeys;
......
...@@ -1842,18 +1842,23 @@ static const int kCurrentPreferencesVersion = 3; ...@@ -1842,18 +1842,23 @@ static const int kCurrentPreferencesVersion = 3;
- (void)coreChangedMediaKeySupportSetting: (NSNotification *)o_notification - (void)coreChangedMediaKeySupportSetting: (NSNotification *)o_notification
{ {
b_mediaKeySupport = var_InheritBool(VLCIntf, "macosx-mediakeys"); b_mediaKeySupport = var_InheritBool(VLCIntf, "macosx-mediakeys");
if (b_mediaKeySupport) { if (b_mediaKeySupport && !o_mediaKeyController)
if (!o_mediaKeyController) o_mediaKeyController = [[SPMediaKeyTap alloc] initWithDelegate:self];
o_mediaKeyController = [[SPMediaKeyTap alloc] initWithDelegate:self];
if ([[[VLCMain sharedInstance] playlist] currentPlaylistRoot]->i_children > 0 || if (b_mediaKeySupport && ([[[VLCMain sharedInstance] playlist] currentPlaylistRoot]->i_children > 0 ||
p_current_input) p_current_input)) {
if (!b_mediaKeyTrapEnabled) {
b_mediaKeyTrapEnabled = YES;
msg_Dbg(p_intf, "Enable media key support");
[o_mediaKeyController startWatchingMediaKeys]; [o_mediaKeyController startWatchingMediaKeys];
else }
} else {
if (b_mediaKeyTrapEnabled) {
b_mediaKeyTrapEnabled = NO;
msg_Dbg(p_intf, "Disable media key support");
[o_mediaKeyController stopWatchingMediaKeys]; [o_mediaKeyController stopWatchingMediaKeys];
}
} }
else if (!b_mediaKeySupport && o_mediaKeyController)
[o_mediaKeyController stopWatchingMediaKeys];
} }
@end @end
......
...@@ -1451,10 +1451,6 @@ static inline void save_string_list(intf_thread_t * p_intf, id object, const cha ...@@ -1451,10 +1451,6 @@ static inline void save_string_list(intf_thread_t * p_intf, id object, const cha
[o_hotkeys_listbox reloadData]; [o_hotkeys_listbox reloadData];
b_hotkeyChanged = YES; b_hotkeyChanged = YES;
} }
[[NSNotificationCenter defaultCenter] postNotificationName: @"VLCMediaKeySupportSettingChanged"
object: nil
userInfo: nil];
} }
- (void)showHotkeySettings - (void)showHotkeySettings
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment