mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-16 16:02:54 +02:00
macosx: implemented options to disable Apple Remote and Media keys support
Disabling AR will work instantly, while mediakey require a restart to update the setting. To be fixed later on.
This commit is contained in:
parent
eb5d3ab1ed
commit
30437c6554
@ -1,178 +0,0 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{
|
||||
CLASS = FirstResponder;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
CLASS = NSApplication;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSResponder;
|
||||
},
|
||||
{
|
||||
CLASS = NSObject;
|
||||
LANGUAGE = ObjC;
|
||||
},
|
||||
{
|
||||
CLASS = VLCApplication;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSApplication;
|
||||
},
|
||||
{
|
||||
CLASS = VLCHotkeyChangeWindow;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSWindow;
|
||||
},
|
||||
{
|
||||
ACTIONS = {
|
||||
buttonAction = id;
|
||||
closePrefs = id;
|
||||
resetAll = id;
|
||||
savePrefs = id;
|
||||
};
|
||||
CLASS = VLCPrefs;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
"o_basicFull_matrix" = id;
|
||||
"o_cancel_btn" = id;
|
||||
"o_prefs_view" = id;
|
||||
"o_prefs_window" = id;
|
||||
"o_reset_btn" = id;
|
||||
"o_save_btn" = id;
|
||||
"o_title" = id;
|
||||
"o_tree" = id;
|
||||
};
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
ACTIONS = {
|
||||
audioSettingChanged = id;
|
||||
buttonAction = id;
|
||||
hotkeySettingChanged = id;
|
||||
inputSettingChanged = id;
|
||||
interfaceSettingChanged = id;
|
||||
osdSettingChanged = id;
|
||||
showFontPicker = id;
|
||||
videoSettingChanged = id;
|
||||
};
|
||||
CLASS = VLCSimplePrefs;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
"o_audio_dolby_pop" = id;
|
||||
"o_audio_dolby_txt" = id;
|
||||
"o_audio_effects_box" = id;
|
||||
"o_audio_enable_ckb" = id;
|
||||
"o_audio_general_box" = id;
|
||||
"o_audio_headphone_ckb" = id;
|
||||
"o_audio_lang_fld" = id;
|
||||
"o_audio_lang_txt" = id;
|
||||
"o_audio_last_box" = id;
|
||||
"o_audio_last_ckb" = id;
|
||||
"o_audio_lastpwd_sfld" = id;
|
||||
"o_audio_lastpwd_txt" = id;
|
||||
"o_audio_lastuser_fld" = id;
|
||||
"o_audio_lastuser_txt" = id;
|
||||
"o_audio_norm_ckb" = id;
|
||||
"o_audio_norm_fld" = id;
|
||||
"o_audio_norm_stepper" = id;
|
||||
"o_audio_spdif_ckb" = id;
|
||||
"o_audio_view" = id;
|
||||
"o_audio_visual_pop" = id;
|
||||
"o_audio_visual_txt" = id;
|
||||
"o_audio_vol_fld" = id;
|
||||
"o_audio_vol_sld" = id;
|
||||
"o_audio_vol_txt" = id;
|
||||
"o_hotkeys_change_btn" = id;
|
||||
"o_hotkeys_change_cancel_btn" = id;
|
||||
"o_hotkeys_change_keys_lbl" = id;
|
||||
"o_hotkeys_change_lbl" = id;
|
||||
"o_hotkeys_change_ok_btn" = id;
|
||||
"o_hotkeys_change_taken_lbl" = id;
|
||||
"o_hotkeys_change_win" = id;
|
||||
"o_hotkeys_clear_btn" = id;
|
||||
"o_hotkeys_lbl" = id;
|
||||
"o_hotkeys_listbox" = id;
|
||||
"o_hotkeys_view" = id;
|
||||
"o_input_avi_pop" = id;
|
||||
"o_input_avi_txt" = id;
|
||||
"o_input_cachelevel_custom_txt" = id;
|
||||
"o_input_cachelevel_pop" = id;
|
||||
"o_input_cachelevel_txt" = id;
|
||||
"o_input_caching_box" = id;
|
||||
"o_input_httpproxy_fld" = id;
|
||||
"o_input_httpproxy_txt" = id;
|
||||
"o_input_httpproxypwd_sfld" = id;
|
||||
"o_input_httpproxypwd_txt" = id;
|
||||
"o_input_mux_box" = id;
|
||||
"o_input_net_box" = id;
|
||||
"o_input_postproc_fld" = id;
|
||||
"o_input_postproc_txt" = id;
|
||||
"o_input_rtsp_ckb" = id;
|
||||
"o_input_serverport_fld" = id;
|
||||
"o_input_serverport_txt" = id;
|
||||
"o_input_skipLoop_pop" = id;
|
||||
"o_input_skipLoop_txt" = id;
|
||||
"o_input_view" = id;
|
||||
"o_intf_art_pop" = id;
|
||||
"o_intf_art_txt" = id;
|
||||
"o_intf_embedded_ckb" = id;
|
||||
"o_intf_fspanel_ckb" = id;
|
||||
"o_intf_lang_pop" = id;
|
||||
"o_intf_lang_txt" = id;
|
||||
"o_intf_network_box" = id;
|
||||
"o_intf_view" = id;
|
||||
"o_osd_encoding_pop" = id;
|
||||
"o_osd_encoding_txt" = id;
|
||||
"o_osd_font_box" = id;
|
||||
"o_osd_font_btn" = id;
|
||||
"o_osd_font_color_pop" = id;
|
||||
"o_osd_font_color_txt" = id;
|
||||
"o_osd_font_fld" = id;
|
||||
"o_osd_font_size_pop" = id;
|
||||
"o_osd_font_size_txt" = id;
|
||||
"o_osd_font_txt" = id;
|
||||
"o_osd_lang_box" = id;
|
||||
"o_osd_lang_fld" = id;
|
||||
"o_osd_lang_txt" = id;
|
||||
"o_osd_osd_box" = id;
|
||||
"o_osd_osd_ckb" = id;
|
||||
"o_osd_view" = id;
|
||||
"o_sprefs_basicFull_matrix" = id;
|
||||
"o_sprefs_basic_box" = id;
|
||||
"o_sprefs_cancel_btn" = id;
|
||||
"o_sprefs_controls_box" = id;
|
||||
"o_sprefs_reset_btn" = id;
|
||||
"o_sprefs_save_btn" = id;
|
||||
"o_sprefs_win" = id;
|
||||
"o_video_black_ckb" = id;
|
||||
"o_video_device_pop" = id;
|
||||
"o_video_device_txt" = id;
|
||||
"o_video_display_box" = id;
|
||||
"o_video_enable_ckb" = id;
|
||||
"o_video_fullscreen_ckb" = id;
|
||||
"o_video_onTop_ckb" = id;
|
||||
"o_video_output_pop" = id;
|
||||
"o_video_output_txt" = id;
|
||||
"o_video_skipFrames_ckb" = id;
|
||||
"o_video_snap_box" = id;
|
||||
"o_video_snap_folder_btn" = id;
|
||||
"o_video_snap_folder_fld" = id;
|
||||
"o_video_snap_folder_txt" = id;
|
||||
"o_video_snap_format_pop" = id;
|
||||
"o_video_snap_format_txt" = id;
|
||||
"o_video_snap_prefix_fld" = id;
|
||||
"o_video_snap_prefix_txt" = id;
|
||||
"o_video_snap_seqnum_ckb" = id;
|
||||
"o_video_view" = id;
|
||||
};
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
CLASS = VLCSimplePrefsWindow;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSWindow;
|
||||
}
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
@ -1,39 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>76 135 356 240 0 0 1280 778 </string>
|
||||
<key>IBEditorPositions</key>
|
||||
<dict>
|
||||
<key>2311</key>
|
||||
<string>345 426 590 230 0 0 1280 778 </string>
|
||||
<key>2330</key>
|
||||
<string>345 222 590 502 0 0 1280 778 </string>
|
||||
<key>2440</key>
|
||||
<string>345 307 590 389 0 0 1280 778 </string>
|
||||
<key>2523</key>
|
||||
<string>345 341 590 343 0 0 1280 778 </string>
|
||||
<key>2562</key>
|
||||
<string>345 266 590 444 0 0 1280 778 </string>
|
||||
<key>2668</key>
|
||||
<string>345 256 590 457 0 0 1280 778 </string>
|
||||
</dict>
|
||||
<key>IBFramework Version</key>
|
||||
<string>489.0</string>
|
||||
<key>IBLastKnownRelativeProjectPath</key>
|
||||
<string>../../vlc.xcodeproj</string>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>5</integer>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>2265</integer>
|
||||
<integer>1530</integer>
|
||||
<integer>2562</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>9G55</string>
|
||||
<key>targetFramework</key>
|
||||
<string>IBCocoaFramework</string>
|
||||
</dict>
|
||||
</plist>
|
Binary file not shown.
@ -357,6 +357,7 @@ struct intf_sys_t
|
||||
- (id)controllerWindow;
|
||||
- (id)voutMenu;
|
||||
- (id)eyeTVController;
|
||||
- (id)appleRemoteController;
|
||||
- (void)applicationWillTerminate:(NSNotification *)notification;
|
||||
- (NSString *)localizedString:(const char *)psz;
|
||||
- (char *)delocalizeString:(NSString *)psz;
|
||||
@ -429,8 +430,10 @@ struct intf_sys_t
|
||||
@interface VLCApplication : NSApplication
|
||||
{
|
||||
BOOL b_justJumped;
|
||||
BOOL b_mediaKeySupport;
|
||||
}
|
||||
|
||||
- (void)enableMediaKeySupport:(BOOL)b_value;
|
||||
- (void)sendEvent: (NSEvent*)event;
|
||||
- (void)resetJump;
|
||||
|
||||
|
@ -1012,7 +1012,8 @@ static NSString * VLCToolbarMediaControl = @"VLCToolbarMediaControl";
|
||||
- (void)applicationDidBecomeActive:(NSNotification *)aNotification
|
||||
{
|
||||
if( !p_intf ) return;
|
||||
[o_remote startListening: self];
|
||||
if( config_GetInt( p_intf, "macosx-appleremote" ) == YES )
|
||||
[o_remote startListening: self];
|
||||
}
|
||||
- (void)applicationDidResignActive:(NSNotification *)aNotification
|
||||
{
|
||||
@ -1494,6 +1495,11 @@ static unsigned int VLCModifiersToCocoa( unsigned int i_key )
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (id)appleRemoteController
|
||||
{
|
||||
return o_remote;
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
#pragma mark Polling
|
||||
|
||||
@ -2848,49 +2854,62 @@ end:
|
||||
|
||||
@implementation VLCApplication
|
||||
|
||||
- (void)awakeFromNib
|
||||
{
|
||||
b_mediaKeySupport = config_GetInt( VLCIntf, "macosx-mediakeys" );
|
||||
}
|
||||
|
||||
- (void)enableMediaKeySupport:(BOOL)b_value
|
||||
{
|
||||
b_mediaKeySupport = b_value;
|
||||
}
|
||||
|
||||
- (void)sendEvent: (NSEvent*)event
|
||||
{
|
||||
if( [event type] == NSSystemDefined && [event subtype] == 8 )
|
||||
if( b_mediaKeySupport )
|
||||
{
|
||||
int keyCode = (([event data1] & 0xFFFF0000) >> 16);
|
||||
int keyFlags = ([event data1] & 0x0000FFFF);
|
||||
int keyState = (((keyFlags & 0xFF00) >> 8)) == 0xA;
|
||||
int keyRepeat = (keyFlags & 0x1);
|
||||
if( [event type] == NSSystemDefined && [event subtype] == 8 )
|
||||
{
|
||||
int keyCode = (([event data1] & 0xFFFF0000) >> 16);
|
||||
int keyFlags = ([event data1] & 0x0000FFFF);
|
||||
int keyState = (((keyFlags & 0xFF00) >> 8)) == 0xA;
|
||||
int keyRepeat = (keyFlags & 0x1);
|
||||
|
||||
if( keyCode == NX_KEYTYPE_PLAY && keyState == 0 )
|
||||
var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_PLAY_PAUSE );
|
||||
if( keyCode == NX_KEYTYPE_PLAY && keyState == 0 )
|
||||
var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_PLAY_PAUSE );
|
||||
|
||||
if( keyCode == NX_KEYTYPE_FAST && !b_justJumped )
|
||||
{
|
||||
if( keyState == 0 && keyRepeat == 0 )
|
||||
{
|
||||
var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_NEXT );
|
||||
}
|
||||
else if( keyRepeat == 1 )
|
||||
{
|
||||
var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_JUMP_FORWARD_SHORT );
|
||||
b_justJumped = YES;
|
||||
[self performSelector:@selector(resetJump)
|
||||
withObject: NULL
|
||||
afterDelay:0.25];
|
||||
}
|
||||
}
|
||||
if( keyCode == NX_KEYTYPE_FAST && !b_justJumped )
|
||||
{
|
||||
if( keyState == 0 && keyRepeat == 0 )
|
||||
{
|
||||
var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_NEXT );
|
||||
}
|
||||
else if( keyRepeat == 1 )
|
||||
{
|
||||
var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_JUMP_FORWARD_SHORT );
|
||||
b_justJumped = YES;
|
||||
[self performSelector:@selector(resetJump)
|
||||
withObject: NULL
|
||||
afterDelay:0.25];
|
||||
}
|
||||
}
|
||||
|
||||
if( keyCode == NX_KEYTYPE_REWIND && !b_justJumped )
|
||||
{
|
||||
if( keyState == 0 && keyRepeat == 0 )
|
||||
{
|
||||
var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_PREV );
|
||||
}
|
||||
else if( keyRepeat == 1 )
|
||||
{
|
||||
var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_JUMP_BACKWARD_SHORT );
|
||||
b_justJumped = YES;
|
||||
[self performSelector:@selector(resetJump)
|
||||
withObject: NULL
|
||||
afterDelay:0.25];
|
||||
}
|
||||
}
|
||||
if( keyCode == NX_KEYTYPE_REWIND && !b_justJumped )
|
||||
{
|
||||
if( keyState == 0 && keyRepeat == 0 )
|
||||
{
|
||||
var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_PREV );
|
||||
}
|
||||
else if( keyRepeat == 1 )
|
||||
{
|
||||
var_SetInteger( VLCIntf->p_libvlc, "key-action", ACTIONID_JUMP_BACKWARD_SHORT );
|
||||
b_justJumped = YES;
|
||||
[self performSelector:@selector(resetJump)
|
||||
withObject: NULL
|
||||
afterDelay:0.25];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
[super sendEvent: event];
|
||||
}
|
||||
|
@ -1,13 +1,14 @@
|
||||
/*****************************************************************************
|
||||
* macosx.m: Mac OS X module for vlc
|
||||
*****************************************************************************
|
||||
* Copyright (C) 2001-2006 the VideoLAN team
|
||||
* Copyright (C) 2001-2009 the VideoLAN team
|
||||
* $Id$
|
||||
*
|
||||
* Authors: Colin Delacroix <colin@zoy.org>
|
||||
* Eugenio Jarosiewicz <ej0@cise.ufl.edu>
|
||||
* Florian G. Pflug <fgp@phlo.org>
|
||||
* Jon Lech Johansen <jon-vl@nanocrew.net>
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
@ -87,6 +88,13 @@ void CloseVideoGL ( vlc_object_t * );
|
||||
#define EQ_KEEP_LONGTEXT N_("By default, VLC keeps the last equalizer settings before " \
|
||||
"termination. This feature can be disabled here.")
|
||||
|
||||
#define USE_APPLE_REMOTE_TEXT N_("Allow playback control with the Apple Remote")
|
||||
#define USE_APPLE_REMOTE_LONGTEXT N_("By default, VLC can be remotely controlled with the Apple Remote.")
|
||||
|
||||
#define USE_MEDIAKEYS_TEXT N_("Allow playback control with the media keys")
|
||||
#define USE_MEDIAKEYS_LONGTEXT N_("By default, VLC can be controlled using the media keys on modern Apple " \
|
||||
"keyboards.")
|
||||
|
||||
vlc_module_begin ()
|
||||
set_description( N_("Mac OS X interface") )
|
||||
set_capability( "interface", 200 )
|
||||
@ -101,6 +109,10 @@ vlc_module_begin ()
|
||||
false )
|
||||
add_bool( "macosx-fspanel", 1, NULL, FSPANEL_TEXT, FSPANEL_LONGTEXT,
|
||||
false )
|
||||
add_bool( "macosx-appleremote", 1, NULL, USE_APPLE_REMOTE_TEXT, USE_APPLE_REMOTE_LONGTEXT,
|
||||
false )
|
||||
add_bool( "macosx-mediakeys", 1, NULL, USE_MEDIAKEYS_TEXT, USE_MEDIAKEYS_LONGTEXT,
|
||||
false )
|
||||
|
||||
add_submodule ()
|
||||
set_description( "Mac OS X OpenGL" )
|
||||
|
@ -89,6 +89,8 @@
|
||||
IBOutlet id o_intf_art_txt;
|
||||
IBOutlet id o_intf_embedded_ckb;
|
||||
IBOutlet id o_intf_fspanel_ckb;
|
||||
IBOutlet id o_intf_appleremote_ckb;
|
||||
IBOutlet id o_intf_mediakeys_ckb;
|
||||
IBOutlet id o_intf_lang_pop;
|
||||
IBOutlet id o_intf_lang_txt;
|
||||
IBOutlet id o_intf_network_box;
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*****************************************************************************
|
||||
* simple_prefs.m: Simple Preferences for Mac OS X
|
||||
*****************************************************************************
|
||||
* Copyright (C) 2008 the VideoLAN team
|
||||
* Copyright (C) 2008-2009 the VideoLAN team
|
||||
* $Id$
|
||||
*
|
||||
* Authors: Felix Paul Kühne <fkuehne at videolan dot org>
|
||||
@ -27,6 +27,8 @@
|
||||
#import <vlc_interface.h>
|
||||
#import <vlc_dialog.h>
|
||||
#import "misc.h"
|
||||
#import "intf.h"
|
||||
#import "AppleRemote.h"
|
||||
|
||||
static NSString* VLCSPrefsToolbarIdentifier = @"Our Simple Preferences Toolbar Identifier";
|
||||
static NSString* VLCIntfSettingToolbarIdentifier = @"Intf Settings Item Identifier";
|
||||
@ -262,6 +264,8 @@ create_toolbar_item( NSString * o_itemIdent, NSString * o_name, NSString * o_des
|
||||
[o_intf_fspanel_ckb setTitle: _NS("Show Fullscreen Controller")];
|
||||
[o_intf_lang_txt setStringValue: _NS("Language")];
|
||||
[o_intf_network_box setTitle: _NS("Privacy / Network Interaction")];
|
||||
[o_intf_appleremote_ckb setTitle: _NS("Allow playback control with the Apple Remote")];
|
||||
[o_intf_mediakeys_ckb setTitle: _NS("Allow playback control with the media keys")];
|
||||
|
||||
/* Subtitles and OSD */
|
||||
[o_osd_encoding_txt setStringValue: _NS("Default Encoding")];
|
||||
@ -413,6 +417,8 @@ create_toolbar_item( NSString * o_itemIdent, NSString * o_name, NSString * o_des
|
||||
|
||||
[o_intf_fspanel_ckb setState: config_GetInt( p_intf, "macosx-fspanel" )];
|
||||
[o_intf_embedded_ckb setState: config_GetInt( p_intf, "embedded-video" )];
|
||||
[o_intf_appleremote_ckb setState: config_GetInt( p_intf, "macosx-appleremote" )];
|
||||
[o_intf_mediakeys_ckb setState: config_GetInt( p_intf, "macosx-mediakeys" )];
|
||||
|
||||
/******************
|
||||
* audio settings *
|
||||
@ -734,6 +740,14 @@ static inline void save_module_list( intf_thread_t * p_intf, id object, const ch
|
||||
|
||||
config_PutInt( p_intf, "macosx-fspanel", [o_intf_fspanel_ckb state] );
|
||||
config_PutInt( p_intf, "embedded-video", [o_intf_embedded_ckb state] );
|
||||
config_PutInt( p_intf, "macosx-appleremote", [o_intf_appleremote_ckb state] );
|
||||
config_PutInt( p_intf, "macosx-mediakeys", [o_intf_mediakeys_ckb state] );
|
||||
|
||||
/* activate stuff without restart */
|
||||
if( [o_intf_appleremote_ckb state] == YES )
|
||||
[[[VLCMain sharedInstance] appleRemoteController] startListening: [VLCMain sharedInstance]];
|
||||
else
|
||||
[[[VLCMain sharedInstance] appleRemoteController] stopListening: [VLCMain sharedInstance]];
|
||||
|
||||
/* okay, let's save our changes to vlcrc */
|
||||
i = config_SaveConfigFile( p_intf, "main" );
|
||||
|
Loading…
Reference in New Issue
Block a user