[vlc-commits] macosx: Convert VLCAudioEffects to NSWindowController subclass
David Fuhrmann
git at videolan.org
Sun Aug 2 13:26:38 CEST 2015
vlc | branch: master | David Fuhrmann <dfuhrmann at videolan.org> | Sun Aug 2 13:14:18 2015 +0200| [f6c4ab1458565a958ad8bb5ecbe9fc117f2c3ce9] | committer: David Fuhrmann
macosx: Convert VLCAudioEffects to NSWindowController subclass
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f6c4ab1458565a958ad8bb5ecbe9fc117f2c3ce9
---
modules/gui/macosx/AudioEffects.h | 5 +--
modules/gui/macosx/AudioEffects.m | 50 +++++++++++---------------
modules/gui/macosx/MainMenu.m | 10 +-----
modules/gui/macosx/VLCVoutWindowController.m | 2 +-
modules/gui/macosx/intf.h | 2 ++
modules/gui/macosx/intf.m | 11 +++++-
6 files changed, 36 insertions(+), 44 deletions(-)
diff --git a/modules/gui/macosx/AudioEffects.h b/modules/gui/macosx/AudioEffects.h
index 60ec1a9..033f24f 100644
--- a/modules/gui/macosx/AudioEffects.h
+++ b/modules/gui/macosx/AudioEffects.h
@@ -24,10 +24,9 @@
#import <Cocoa/Cocoa.h>
- at interface VLCAudioEffects : NSObject
+ at interface VLCAudioEffects : NSWindowController
/* generic */
- at property (readwrite, weak) IBOutlet NSWindow *window;
@property (readwrite, weak) IBOutlet NSTabView *tabView;
@property (readwrite, weak) IBOutlet NSPopUpButton *profilePopup;
@@ -103,8 +102,6 @@
@property (readwrite, weak) IBOutlet NSButton *filterKaraokeCheckbox;
/* generic */
-+ (VLCAudioEffects *)sharedInstance;
-
- (IBAction)profileSelectorAction:(id)sender;
- (void)toggleWindow:(id)sender;
diff --git a/modules/gui/macosx/AudioEffects.m b/modules/gui/macosx/AudioEffects.m
index 7e0c57b..2ee5655 100644
--- a/modules/gui/macosx/AudioEffects.m
+++ b/modules/gui/macosx/AudioEffects.m
@@ -51,19 +51,8 @@
@implementation VLCAudioEffects
-+ (VLCAudioEffects *)sharedInstance
++ (void)initialize
{
- static VLCAudioEffects *sharedInstance = nil;
- static dispatch_once_t pred;
-
- dispatch_once(&pred, ^{
- sharedInstance = [VLCAudioEffects new];
- });
-
- return sharedInstance;
-}
-
-+ (void)initialize{
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *workString;
@@ -99,12 +88,15 @@
- (id)init
{
- self = [super init];
- i_old_profile_index = -1;
+ self = [super initWithWindowNibName:@"AudioEffects"];
+ if (self) {
+ i_old_profile_index = -1;
+ }
+
return self;
}
-- (void)awakeFromNib
+- (void)windowDidLoad
{
/* setup the user's language */
/* Equalizer */
@@ -144,9 +136,9 @@
[[_tabView tabViewItemAtIndex:[_tabView indexOfTabViewItemWithIdentifier:@"compressor"]] setLabel:_NS("Compressor")];
[[_tabView tabViewItemAtIndex:[_tabView indexOfTabViewItemWithIdentifier:@"spatializer"]] setLabel:_NS("Spatializer")];
[[_tabView tabViewItemAtIndex:[_tabView indexOfTabViewItemWithIdentifier:@"filter"]] setLabel:_NS("Filter")];
- [_window setTitle:_NS("Audio Effects")];
- [_window setExcludedFromWindowsMenu:YES];
- [_window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
+ [self.window setTitle:_NS("Audio Effects")];
+ [self.window setExcludedFromWindowsMenu:YES];
+ [self.window setCollectionBehavior: NSWindowCollectionBehaviorFullScreenAuxiliary];
[self equalizerUpdated];
[self resetCompressor];
@@ -200,17 +192,17 @@
#pragma mark generic code
- (void)updateCocoaWindowLevel:(NSInteger)i_level
{
- if (_window && [_window isVisible] && [_window level] != i_level)
- [_window setLevel: i_level];
+ if (self.window && [self.window isVisible] && [self.window level] != i_level)
+ [self.window setLevel: i_level];
}
- (IBAction)toggleWindow:(id)sender
{
- if ([_window isKeyWindow])
- [_window orderOut:sender];
+ if ([self.window isKeyWindow])
+ [self.window orderOut:sender];
else {
- [_window setLevel: [[[VLCMain sharedInstance] voutController] currentStatusWindowLevel]];
- [_window makeKeyAndOrderFront:sender];
+ [self.window setLevel: [[[VLCMain sharedInstance] voutController] currentStatusWindowLevel]];
+ [self.window makeKeyAndOrderFront:sender];
}
}
@@ -375,7 +367,7 @@
[panel setTarget:self];
b_genericAudioProfileInInteraction = YES;
- [panel runModalForWindow:_window];
+ [panel runModalForWindow:self.window];
}
- (void)removeAudioEffectsProfile:(id)sender
@@ -390,7 +382,7 @@
[panel setTarget:self];
b_genericAudioProfileInInteraction = YES;
- [panel runModalForWindow:_window];
+ [panel runModalForWindow:self.window];
}
#pragma mark -
@@ -616,7 +608,7 @@ static bool GetEqualizerStatus(intf_thread_t *p_custom_intf,
[panel setTarget:self];
b_genericAudioProfileInInteraction = NO;
- [panel runModalForWindow:_window];
+ [panel runModalForWindow:self.window];
}
- (void)panel:(VLCEnterTextPanel *)panel returnValue:(NSUInteger)value text:(NSString *)text
@@ -672,7 +664,7 @@ static bool GetEqualizerStatus(intf_thread_t *p_custom_intf,
[alert setMessageText:_NS("Please enter a unique name for the new profile.")];
[alert setInformativeText:_NS("Multiple profiles with the same name are not allowed.")];
- [alert beginSheetModalForWindow:_window
+ [alert beginSheetModalForWindow:self.window
modalDelegate:nil
didEndSelector:nil
contextInfo:nil];
@@ -708,7 +700,7 @@ static bool GetEqualizerStatus(intf_thread_t *p_custom_intf,
[panel setTarget:self];
b_genericAudioProfileInInteraction = NO;
- [panel runModalForWindow:_window];
+ [panel runModalForWindow:self.window];
}
- (void)panel:(VLCSelectItemInPopupPanel *)panel returnValue:(NSUInteger)value item:(NSUInteger)item
diff --git a/modules/gui/macosx/MainMenu.m b/modules/gui/macosx/MainMenu.m
index d1fa3bc..1727e4b 100644
--- a/modules/gui/macosx/MainMenu.m
+++ b/modules/gui/macosx/MainMenu.m
@@ -54,14 +54,12 @@
@interface VLCMainMenu()
{
BOOL b_nib_videoeffects_loaded;
- BOOL b_nib_audioeffects_loaded;
BOOL b_nib_bookmarks_loaded;
BOOL b_nib_convertandsave_loaded;
AboutWindowController *_aboutWindowController;
HelpWindowController *_helpWindowController;
VLCVideoEffects *_videoEffectsWindowController;
- VLCAudioEffects *_audioEffectsWindowController;
VLCConvertAndSave *_convertAndSaveWindowController;
AddonsWindowController *_addonsController;
@@ -1297,13 +1295,7 @@
- (IBAction)showAudioEffects:(id)sender
{
- if (!_audioEffectsWindowController)
- _audioEffectsWindowController = [[VLCAudioEffects alloc] init];
-
- if (!b_nib_audioeffects_loaded)
- b_nib_audioeffects_loaded = [NSBundle loadNibNamed:@"AudioEffects" owner:_audioEffectsWindowController];
-
- [_audioEffectsWindowController toggleWindow:sender];
+ [[[VLCMain sharedInstance] audioEffectsPanel] toggleWindow:sender];
}
- (IBAction)showBookmarks:(id)sender
diff --git a/modules/gui/macosx/VLCVoutWindowController.m b/modules/gui/macosx/VLCVoutWindowController.m
index 20536ed..9564537 100644
--- a/modules/gui/macosx/VLCVoutWindowController.m
+++ b/modules/gui/macosx/VLCVoutWindowController.m
@@ -590,7 +590,7 @@ void WindowClose(vout_window_t *p_wnd)
VLCMain *main = [VLCMain sharedInstance];
[[VLCMainWindow sharedInstance] setWindowLevel:i_level];
[[VLCVideoEffects sharedInstance] updateCocoaWindowLevel:currentStatusWindowLevel];
- [[VLCAudioEffects sharedInstance] updateCocoaWindowLevel:currentStatusWindowLevel];
+ [[main audioEffectsPanel] updateCocoaWindowLevel:currentStatusWindowLevel];
[[VLCInfo sharedInstance] updateCocoaWindowLevel:currentStatusWindowLevel];
[[main bookmarks] updateCocoaWindowLevel:currentStatusWindowLevel];
[[main trackSyncPanel] updateCocoaWindowLevel:currentStatusWindowLevel];
diff --git a/modules/gui/macosx/intf.h b/modules/gui/macosx/intf.h
index 7ecedf8..6c436a0 100644
--- a/modules/gui/macosx/intf.h
+++ b/modules/gui/macosx/intf.h
@@ -66,6 +66,7 @@ static NSString * VLCInputChangedNotification = @"VLCInputChangedNotification";
@class VLCOpen;
@class VLCDebugMessageVisualizer;
@class VLCTrackSynchronization;
+ at class VLCAudioEffects;
@interface VLCMain : NSObject <NSWindowDelegate, NSApplicationDelegate>
{
@@ -93,6 +94,7 @@ static NSString * VLCInputChangedNotification = @"VLCInputChangedNotification";
- (VLCDebugMessageVisualizer *)debugMsgPanel;
- (VLCTrackSynchronization *)trackSyncPanel;
+- (VLCAudioEffects *)audioEffectsPanel;
- (void)setActiveVideoPlayback:(BOOL)b_value;
- (BOOL)activeVideoPlayback;
diff --git a/modules/gui/macosx/intf.m b/modules/gui/macosx/intf.m
index 5cba3bb..8fdc949 100644
--- a/modules/gui/macosx/intf.m
+++ b/modules/gui/macosx/intf.m
@@ -156,6 +156,7 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable,
VLCPlaylist *_playlist;
VLCDebugMessageVisualizer *_messagePanelController;
VLCTrackSynchronization *_trackSyncPanel;
+ VLCAudioEffects *_audioEffectsPanel;
bool b_intf_terminating; /* Makes sure applicationWillTerminate will be called only once */
}
@@ -344,7 +345,7 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable,
/* save current video and audio profiles */
[[VLCVideoEffects sharedInstance] saveCurrentProfile];
- [[VLCAudioEffects sharedInstance] saveCurrentProfile];
+ [[self audioEffectsPanel] saveCurrentProfile];
/* Save some interface state in configuration, at module quit */
config_PutInt(p_intf, "random", var_GetBool(p_playlist, "random"));
@@ -535,6 +536,14 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable,
return _trackSyncPanel;
}
+- (VLCAudioEffects *)audioEffectsPanel
+{
+ if (!_audioEffectsPanel)
+ _audioEffectsPanel = [[VLCAudioEffects alloc] init];
+
+ return _audioEffectsPanel;
+}
+
- (VLCBookmarks *)bookmarks
{
if (!_bookmarks)
More information about the vlc-commits
mailing list