X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=modules%2Fgui%2Fmacosx%2FMainMenu.m;h=2fda43e98586e745e27d4e2f68ea1ef82e911ab6;hb=028d21434fc906d94caa4a2b3eb0e1a4a40cdabc;hp=5331b2bc53d4edeee0a4d009919513c095c188b8;hpb=03648ce931fb388493684ad03d43414a5da24f43;p=vlc diff --git a/modules/gui/macosx/MainMenu.m b/modules/gui/macosx/MainMenu.m index 5331b2bc53..2fda43e985 100644 --- a/modules/gui/macosx/MainMenu.m +++ b/modules/gui/macosx/MainMenu.m @@ -1,7 +1,7 @@ /***************************************************************************** * MainMenu.m: MacOS X interface module ***************************************************************************** - * Copyright (C) 2011-2013 Felix Paul Kühne + * Copyright (C) 2011-2014 Felix Paul Kühne * $Id$ * * Authors: Felix Paul Kühne @@ -22,11 +22,12 @@ *****************************************************************************/ #import "MainMenu.h" +#import "intf.h" + #import #import #import -#import "intf.h" #import "open.h" #import "wizard.h" #import "about.h" @@ -56,8 +57,7 @@ static VLCMainMenu *_o_sharedInstance = nil; return _o_sharedInstance ? _o_sharedInstance : [[self alloc] init]; } -#pragma mark - -#pragma mark Initialization +#pragma mark - Initialization - (id)init { @@ -265,8 +265,16 @@ static VLCMainMenu *_o_sharedInstance = nil; [self setupVarMenuItem: o_mi_add_intf target: (vlc_object_t *)p_intf var: "intf-add" selector: @selector(toggleVar:)]; - [self setupExtensionsMenu]; + /* setup extensions menu */ + // FIXME: Implement preference for autoloading extensions on mac + if (![o_extMgr isLoaded] && ![o_extMgr cannotLoad]) + [o_extMgr loadExtensions]; + + /* Let the ExtensionsManager itself build the menu */ + [o_extMgr buildMenu:o_mu_extensions]; + [o_mi_extensions setEnabled: ([o_mu_extensions numberOfItems] > 0)]; + /* setup post-proc menu */ NSUInteger count = (NSUInteger) [o_mu_ffmpeg_pp numberOfItems]; if (count > 0) [o_mu_ffmpeg_pp removeAllItems]; @@ -278,18 +286,18 @@ static VLCMainMenu *_o_sharedInstance = nil; [o_mitem setTag: -1]; [o_mitem setEnabled: YES]; [o_mitem setTarget: self]; - for (NSUInteger x = 0; x < 7; x++) { + for (NSUInteger x = 1; x < 7; x++) { [o_mu_ffmpeg_pp addItemWithTitle:[NSString stringWithFormat:_NS("Level %i"), x] action:@selector(togglePostProcessing:) keyEquivalent:@""]; - o_mitem = [o_mu_ffmpeg_pp itemAtIndex:x+1]; - [o_mitem setEnabled: YES]; + o_mitem = [o_mu_ffmpeg_pp itemAtIndex:x]; + [o_mitem setEnabled:YES]; [o_mitem setTag:x]; - [o_mitem setTarget: self]; + [o_mitem setTarget:self]; } char *psz_config = config_GetPsz(p_intf, "video-filter"); if (psz_config) { - if (!strstr(psz_config, "postprocess")) + if (!strstr(psz_config, "postproc")) [[o_mu_ffmpeg_pp itemAtIndex:0] setState:NSOnState]; else [[o_mu_ffmpeg_pp itemWithTag:config_GetInt(p_intf, "postproc-q")] setState:NSOnState]; @@ -543,8 +551,7 @@ static VLCMainMenu *_o_sharedInstance = nil; return [o_context_menu autorelease]; } -#pragma mark - -#pragma mark Termination +#pragma mark - Termination - (void)releaseRepresentedObjects:(NSMenu *)the_menu { @@ -561,8 +568,7 @@ static VLCMainMenu *_o_sharedInstance = nil; } } -#pragma mark - -#pragma mark Interface update +#pragma mark - Interface update - (void)setupMenus { @@ -705,31 +711,7 @@ static VLCMainMenu *_o_sharedInstance = nil; [o_pool release]; } -#pragma mark - -#pragma mark Extensions - -- (void)setupExtensionsMenu -{ - /* Load extensions if needed */ - // TODO: Implement preference for autoloading extensions on mac - - // if (!var_InheritBool(p_intf, "qt-autoload-extensions") - // && ![o_extMgr isLoaded]) - // { - // return; - // } - - if (![o_extMgr isLoaded] && ![o_extMgr cannotLoad]) { - [o_extMgr loadExtensions]; - } - - /* Let the ExtensionsManager itself build the menu */ - [o_extMgr buildMenu:o_mu_extensions]; - [o_mi_extensions setEnabled: ([o_mu_extensions numberOfItems] > 0)]; -} - -#pragma mark - -#pragma mark View +#pragma mark - View - (IBAction)toggleEffectsButton:(id)sender { @@ -795,8 +777,7 @@ static VLCMainMenu *_o_sharedInstance = nil; return YES; } -#pragma mark - -#pragma mark Playback +#pragma mark - Playback - (IBAction)quitAfterPlayback:(id)sender { @@ -837,8 +818,8 @@ static VLCMainMenu *_o_sharedInstance = nil; [[VLCCoreInteraction sharedInstance] setAtoB]; } -#pragma mark - -#pragma mark audio menu +#pragma mark - audio menu + - (void)refreshAudioDeviceList { char **ids, **names; @@ -901,8 +882,7 @@ static VLCMainMenu *_o_sharedInstance = nil; [self refreshAudioDeviceList]; } -#pragma mark - -#pragma mark video menu +#pragma mark - video menu - (IBAction)toggleFullscreen:(id)sender { @@ -961,65 +941,17 @@ static VLCMainMenu *_o_sharedInstance = nil; - (void)_disablePostProcessing { - char *psz_name = "postprocess"; - char *psz_string, *psz_parser; - psz_string = config_GetPsz(p_intf, "video-filter"); - - if (!psz_string) - return; - - psz_parser = strstr(psz_string, psz_name); - if (psz_parser) { - if (*(psz_parser + strlen(psz_name)) == ':') { - memmove(psz_parser, psz_parser + strlen(psz_name) + 1, - strlen(psz_parser + strlen(psz_name) + 1) + 1); - } else - *psz_parser = '\0'; - - /* Remove trailing : : */ - if (strlen(psz_string) > 0 && *(psz_string + strlen(psz_string) -1) == ':') - *(psz_string + strlen(psz_string) -1) = '\0'; - } else { - free(psz_string); - return; - } - config_PutPsz(p_intf, "video-filter", psz_string); - - /* Try to set on the fly */ - vout_thread_t *p_vout = getVout(); - if (p_vout) { - var_SetString(p_vout, "video-filter", psz_string); - vlc_object_release(p_vout); - } + [[VLCCoreInteraction sharedInstance] setVideoFilter:"postproc" on:false]; } - (void)_enablePostProcessing { - char *psz_name = "postprocess"; - char *psz_string, *psz_parser; - psz_string = config_GetPsz(p_intf, "video-filter"); - - if (psz_string == NULL) - psz_string = psz_name; - else if (strstr(psz_string, psz_name) == NULL) { - char *psz_tmp = strdup([[NSString stringWithFormat: @"%s:%s", psz_string, psz_name] UTF8String]); - free(psz_string); - psz_string = psz_tmp; - } - - config_PutPsz(p_intf, "video-filter", psz_string); - - /* Try to set on the fly */ - vout_thread_t *p_vout = getVout(); - if (p_vout) { - var_SetString(p_vout, "video-filter", psz_string); - vlc_object_release(p_vout); - } + [[VLCCoreInteraction sharedInstance] setVideoFilter:"postproc" on:true]; } - (IBAction)togglePostProcessing:(id)sender { - char *psz_name = "postprocess"; + char *psz_name = "postproc"; NSInteger count = [o_mu_ffmpeg_pp numberOfItems]; for (NSUInteger x = 0; x < count; x++) [[o_mu_ffmpeg_pp itemAtIndex:x] setState:NSOffState]; @@ -1031,23 +963,7 @@ static VLCMainMenu *_o_sharedInstance = nil; [self _enablePostProcessing]; [sender setState:NSOnState]; - vout_thread_t *p_vout = getVout(); - vlc_object_t *p_filter; - - config_PutInt(p_intf, "postproc-q", [sender tag]); - - if (p_vout) { - p_filter = vlc_object_find_name(pl_Get(p_intf), psz_name); - - if (!p_filter) { - msg_Warn(p_intf, "filter '%s' isn't enabled", psz_name); - vlc_object_release(p_vout); - return; - } - var_SetInteger(p_filter, "postproc-q", [sender tag]); - vlc_object_release(p_vout); - vlc_object_release(p_filter); - } + [[VLCCoreInteraction sharedInstance] setVideoFilterProperty:"postproc-q" forFilter:"postproc" integer:[sender tag]]; } } @@ -1063,6 +979,7 @@ static VLCMainMenu *_o_sharedInstance = nil; } #pragma mark - Subtitles Menu + - (IBAction)addSubtitleFile:(id)sender { NSInteger i_returnValue = 0; @@ -1154,8 +1071,7 @@ static VLCMainMenu *_o_sharedInstance = nil; } } -#pragma mark - -#pragma mark Panels +#pragma mark - Panels - (IBAction)intfOpenFile:(id)sender { @@ -1244,7 +1160,7 @@ static VLCMainMenu *_o_sharedInstance = nil; - (IBAction)viewPreferences:(id)sender { - NSInteger i_level = [[[VLCMain sharedInstance] voutController] currentWindowLevel]; + NSInteger i_level = [[[VLCMain sharedInstance] voutController] currentStatusWindowLevel]; [[[VLCMain sharedInstance] simplePreferences] showSimplePrefsWithLevel:i_level]; } @@ -1274,8 +1190,7 @@ static VLCMainMenu *_o_sharedInstance = nil; [[VLCMainWindow sharedInstance] changePlaylistState: psUserMenuEvent]; } -#pragma mark - -#pragma mark Help and Docs +#pragma mark - Help and Docs - (void)initAbout { @@ -1339,8 +1254,7 @@ static VLCMainMenu *_o_sharedInstance = nil; [[NSWorkspace sharedWorkspace] openURL: o_url]; } -#pragma mark - -#pragma mark Errors, warnings and messages +#pragma mark - Errors, warnings and messages - (IBAction)viewErrorsAndWarnings:(id)sender { @@ -1352,8 +1266,8 @@ static VLCMainMenu *_o_sharedInstance = nil; [[[VLCMain sharedInstance] info] initPanel]; } -#pragma mark - -#pragma mark convinience stuff for other objects +#pragma mark - convinience stuff for other objects + - (void)setPlay { [o_mi_play setTitle: _NS("Play")]; @@ -1395,8 +1309,7 @@ static VLCMainMenu *_o_sharedInstance = nil; [o_mi_random setState: b_value]; } -#pragma mark - -#pragma mark Dynamic menu creation and validation +#pragma mark - Dynamic menu creation and validation - (void)setupVarMenuItem:(NSMenuItem *)o_mi target:(vlc_object_t *)p_object @@ -1517,7 +1430,7 @@ static VLCMainMenu *_o_sharedInstance = nil; return; } - if (var_Change(p_object, psz_variable, VLC_VAR_GETLIST, + if (var_Change(p_object, psz_variable, VLC_VAR_GETCHOICES, &val_list, &text_list) < 0) { if ((i_type & VLC_VAR_TYPE) == VLC_VAR_STRING) free(val.psz_string); return;