[vlc-commits] macosx: update audio devices menu on-the-fly
David Fuhrmann
git at videolan.org
Fri Apr 5 21:01:01 CEST 2013
vlc | branch: master | David Fuhrmann <david.fuhrmann at googlemail.com> | Fri Apr 5 20:54:54 2013 +0200| [295f55c5c511480acc1547b524d6f4a541521155] | committer: David Fuhrmann
macosx: update audio devices menu on-the-fly
Fixes missing updates and state of menu check box
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=295f55c5c511480acc1547b524d6f4a541521155
---
modules/gui/macosx/MainMenu.m | 27 +--------------------------
1 file changed, 1 insertion(+), 26 deletions(-)
diff --git a/modules/gui/macosx/MainMenu.m b/modules/gui/macosx/MainMenu.m
index 0cc28b4..3bfa6e8 100644
--- a/modules/gui/macosx/MainMenu.m
+++ b/modules/gui/macosx/MainMenu.m
@@ -24,7 +24,6 @@
#import "MainMenu.h"
#import <vlc_common.h>
#import <vlc_playlist.h>
-#import <CoreAudio/CoreAudio.h>
#import "intf.h"
#import "open.h"
@@ -46,19 +45,6 @@
#import "ExtensionsManager.h"
#import "ConvertAndSave.h"
-static OSStatus HardwareListener (AudioObjectID, UInt32, const AudioObjectPropertyAddress *, void *);
-
-static OSStatus HardwareListener(AudioObjectID inObjectID, UInt32 inNumberAddresses, const AudioObjectPropertyAddress inAddresses[], void*inClientData)
-{
- VLC_UNUSED(inObjectID);
- VLC_UNUSED(inNumberAddresses);
- VLC_UNUSED(inAddresses);
- // give the core some time update its internal structure for the new device setup
- [[VLCMainMenu sharedInstance] performSelector:@selector(refreshAudioDeviceList) withObject:nil afterDelay:.5];
-
- return noErr;
-}
-
@implementation VLCMainMenu
static VLCMainMenu *_o_sharedInstance = nil;
@@ -100,11 +86,6 @@ static VLCMainMenu *_o_sharedInstance = nil;
- (void)dealloc
{
- AudioObjectPropertyAddress audioDevicesAddress = { kAudioHardwarePropertyDevices, kAudioObjectPropertyScopeGlobal, kAudioObjectPropertyElementMaster };
- OSStatus err = AudioObjectRemovePropertyListener(kAudioObjectSystemObject, &audioDevicesAddress, HardwareListener, nil);
- if (err != noErr)
- msg_Err(p_intf, "failed to add audio hardware listener (%i)", err);
-
[[NSNotificationCenter defaultCenter] removeObserver: self];
if (b_nib_about_loaded)
@@ -282,13 +263,6 @@ static VLCMainMenu *_o_sharedInstance = nil;
[self setupExtensionsMenu];
[self refreshAudioDeviceList];
-
- AudioObjectPropertyAddress audioDevicesAddress = { kAudioHardwarePropertyDevices,
- kAudioObjectPropertyScopeGlobal,
- kAudioObjectPropertyElementMaster };
- OSStatus err = AudioObjectAddPropertyListener(kAudioObjectSystemObject, &audioDevicesAddress, HardwareListener, nil);
- if (err != noErr)
- msg_Err(p_intf, "failed to add audio hardware listener (%i)", err);
}
- (void)initStrings
@@ -1365,6 +1339,7 @@ static VLCMainMenu *_o_sharedInstance = nil;
} else if ([o_title isEqualToString: _NS("Mute")]) {
[o_mi setState: [[VLCCoreInteraction sharedInstance] mute] ? NSOnState : NSOffState];
[self setupMenus]; /* Make sure audio menu is up to date */
+ [self refreshAudioDeviceList];
} else if ([o_title isEqualToString: _NS("Half Size")] ||
[o_title isEqualToString: _NS("Normal Size")] ||
[o_title isEqualToString: _NS("Double Size")] ||
More information about the vlc-commits
mailing list