[vlc-commits] macosx: CAS: enforce the chosen encapsulation format' s file extension for the destination selection panel
Felix Paul Kühne
git at videolan.org
Mon Jul 16 00:48:23 CEST 2012
vlc | branch: master | Felix Paul Kühne <fkuehne at videolan.org> | Mon Jul 16 00:42:23 2012 +0200| [52a47a8f5fc91290f129e7974e4e646fdef0124e] | committer: Felix Paul Kühne
macosx: CAS: enforce the chosen encapsulation format's file extension for the destination selection panel
Note that the extension isn't magically switched yet when choosing a different encapsulation format after your output destination.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=52a47a8f5fc91290f129e7974e4e646fdef0124e
---
modules/gui/macosx/ConvertAndSave.m | 27 ++++++++++++++++++++++-----
1 file changed, 22 insertions(+), 5 deletions(-)
diff --git a/modules/gui/macosx/ConvertAndSave.m b/modules/gui/macosx/ConvertAndSave.m
index cdfe7af..611d371 100644
--- a/modules/gui/macosx/ConvertAndSave.m
+++ b/modules/gui/macosx/ConvertAndSave.m
@@ -315,7 +315,7 @@ static VLCConvertAndSave *_o_sharedInstance = nil;
if (sender == _customize_ok_btn && [_currentProfile count] == 16) {
NSInteger i;
- [_currentProfile replaceObjectAtIndex:0 withObject:[self currentEncapsulationFormat]];
+ [_currentProfile replaceObjectAtIndex:0 withObject:[self currentEncapsulationFormatAsFileExtension:NO]];
[_currentProfile replaceObjectAtIndex:1 withObject:[NSString stringWithFormat:@"%li", [_customize_vid_ckb state]]];
[_currentProfile replaceObjectAtIndex:2 withObject:[NSString stringWithFormat:@"%li", [_customize_aud_ckb state]]];
[_currentProfile replaceObjectAtIndex:3 withObject:[NSString stringWithFormat:@"%li", [_customize_subs_ckb state]]];
@@ -351,6 +351,8 @@ static VLCConvertAndSave *_o_sharedInstance = nil;
NSSavePanel * saveFilePanel = [NSSavePanel savePanel];
[saveFilePanel setCanSelectHiddenExtension: YES];
[saveFilePanel setCanCreateDirectories: YES];
+ if ([[_customize_encap_matrix selectedCell] tag] != RAW) // there is no clever guess for this
+ [saveFilePanel setAllowedFileTypes:[NSArray arrayWithObject:[self currentEncapsulationFormatAsFileExtension:YES]]];
[saveFilePanel beginSheetForDirectory:nil file:nil modalForWindow:_window modalDelegate:self didEndSelector:@selector(savePanelDidEnd:returnCode:contextInfo:) contextInfo:nil];
}
@@ -566,7 +568,7 @@ static VLCConvertAndSave *_o_sharedInstance = nil;
msg_Err(VLCIntf, "CAS: unknown encap format requested for customization");
}
-- (NSString *)currentEncapsulationFormat
+- (NSString *)currentEncapsulationFormatAsFileExtension:(BOOL)b_extension
{
NSUInteger cellTag = [[_customize_encap_matrix selectedCell] tag];
NSString * returnValue;
@@ -581,11 +583,21 @@ static VLCConvertAndSave *_o_sharedInstance = nil;
returnValue = @"ogg";
break;
case MP4:
- returnValue = @"mp4";
+ {
+ if (b_extension)
+ returnValue = @"m4v";
+ else
+ returnValue = @"mp4";
break;
+ }
case MPEGPS:
- returnValue = @"ps";
+ {
+ if (b_extension)
+ returnValue = @"mpg";
+ else
+ returnValue = @"ps";
break;
+ }
case MJPEG:
returnValue = @"mjpeg";
break;
@@ -596,8 +608,13 @@ static VLCConvertAndSave *_o_sharedInstance = nil;
returnValue = @"flv";
break;
case MPEG1:
- returnValue = @"mpeg1";
+ {
+ if (b_extension)
+ returnValue = @"mpg";
+ else
+ returnValue = @"mpeg1";
break;
+ }
case MKV:
returnValue = @"mkv";
break;
More information about the vlc-commits
mailing list