summaryrefslogtreecommitdiffstats
path: root/macosx
diff options
context:
space:
mode:
Diffstat (limited to 'macosx')
-rw-r--r--macosx/Controller.h5
-rw-r--r--macosx/Controller.mm29
-rw-r--r--macosx/English.lproj/MainMenu.nib/classes.nib11
-rw-r--r--macosx/English.lproj/MainMenu.nib/info.nib6
-rw-r--r--macosx/English.lproj/MainMenu.nib/keyedobjects.nibbin133627 -> 134165 bytes
-rw-r--r--macosx/English.lproj/OutputPanel.nib/classes.nib13
-rw-r--r--macosx/English.lproj/OutputPanel.nib/info.nib22
-rw-r--r--macosx/English.lproj/OutputPanel.nib/keyedobjects.nibbin0 -> 6014 bytes
-rw-r--r--macosx/HBOutputPanelController.h30
-rw-r--r--macosx/HBOutputPanelController.m95
-rw-r--r--macosx/HBOutputRedirect.h60
-rw-r--r--macosx/HBOutputRedirect.m190
-rw-r--r--macosx/HandBrake.xcodeproj/project.pbxproj28
-rw-r--r--macosx/PrefsController.m1
14 files changed, 475 insertions, 15 deletions
diff --git a/macosx/Controller.h b/macosx/Controller.h
index 0e846bd94..89755bdb2 100644
--- a/macosx/Controller.h
+++ b/macosx/Controller.h
@@ -15,6 +15,8 @@
#include "PictureController.h"
#include "QueueController.h"
+@class HBOutputPanelController;
+
@interface HBController : NSObject <GrowlApplicationBridgeDelegate>
{
@@ -194,6 +196,8 @@
/* integer to set to determine the previous state
of encode 0==idle, 1==encoding, 2==cancelled*/
int fEncodeState;
+
+ HBOutputPanelController *outputPanel;
}
- (void) TranslateStrings;
@@ -295,6 +299,7 @@
// Growl methods
- (NSDictionary *) registrationDictionaryForGrowl;
-(IBAction)showGrowlDoneNotification:(id)sender;
+- (IBAction)showDebugOutputPanel:(id)sender;
@end
diff --git a/macosx/Controller.mm b/macosx/Controller.mm
index e4d9cbb38..952514a46 100644
--- a/macosx/Controller.mm
+++ b/macosx/Controller.mm
@@ -6,6 +6,7 @@
#include "Controller.h"
#include "a52dec/a52.h"
+#import "HBOutputPanelController.h"
#define _(a) NSLocalizedString(a,NULL)
@@ -36,21 +37,20 @@ static int FormatSettings[3][4] =
{
self = [super init];
fHandle = NULL;
+ outputPanel = [[HBOutputPanelController alloc] init];
return self;
}
- (void) applicationDidFinishLaunching: (NSNotification *) notification
{
-
-
int build;
char * version;
+ // Init libhb
+ int debugLevel = [[NSUserDefaults standardUserDefaults] boolForKey:@"ShowVerboseOutput"] ? HB_DEBUG_ALL : HB_DEBUG_NONE;
+ fHandle = hb_init(debugLevel, [[NSUserDefaults standardUserDefaults] boolForKey:@"CheckForUpdates"]);
- /* Init libhb */
- fHandle = hb_init( HB_DEBUG_NONE, [[NSUserDefaults
- standardUserDefaults] boolForKey:@"CheckForUpdates"] );
- /* Set the Growl Delegate */
+ // Set the Growl Delegate
HBController *hbGrowlDelegate = [[HBController alloc] init];
[GrowlApplicationBridge setGrowlDelegate: hbGrowlDelegate];
/* Init others controllers */
@@ -93,13 +93,17 @@ static int FormatSettings[3][4] =
{
[self Cancel: NULL];
return NSTerminateCancel;
- }
-
- /* Clean up */
- hb_close( &fHandle );
+ }
return NSTerminateNow;
}
+- (void)applicationWillTerminate:(NSNotification *)aNotification
+{
+ [outputPanel release];
+ hb_close(&fHandle);
+}
+
+
- (void) awakeFromNib
{
[fWindow center];
@@ -3347,5 +3351,10 @@ id theRecord, theValue;
URLWithString:@"http://handbrake.m0k.org/trac/wiki/HandBrakeGuide"]];
}
+- (IBAction)showDebugOutputPanel:(id)sender
+{
+ [outputPanel showOutputPanel:nil];
+}
+
@end
diff --git a/macosx/English.lproj/MainMenu.nib/classes.nib b/macosx/English.lproj/MainMenu.nib/classes.nib
index ed1144ba1..6569a8d02 100644
--- a/macosx/English.lproj/MainMenu.nib/classes.nib
+++ b/macosx/English.lproj/MainMenu.nib/classes.nib
@@ -2,14 +2,15 @@
IBClasses = (
{
ACTIONS = {
+ AddAllAudioTracksToPopUp = id;
AddFactoryPresets = id;
- AddPreset = id;
AddToQueue = id;
AddUserPreset = id;
AudioTrackMixdownChanged = id;
AudioTrackPopUpChanged = id;
BrowseFile = id;
CalculateBitrate = id;
+ CalculatePictureSizing = id;
Cancel = id;
ChapterPopUpChanged = id;
CloseAddPresetPanel = id;
@@ -17,7 +18,6 @@
CustomSettingUsed = id;
DeleteFactoryPresets = id;
DeletePreset = id;
- EnableQueue = id;
EncoderPopUpChanged = id;
FormatPopUpChanged = id;
InsertPreset = id;
@@ -26,7 +26,9 @@
OpenUserGuide = id;
Pause = id;
QualitySliderChanged = id;
+ RevertPictureSizeToMax = id;
Rip = id;
+ SetEnabledStateOfAudioMixdownControls = id;
ShowAddPresetPanel = id;
ShowPicturePanel = id;
ShowQueuePanel = id;
@@ -35,6 +37,10 @@
VideoMatrixChanged = id;
X264AdvancedOptionsChanged = id;
X264AdvancedOptionsSet = id;
+ X264AdvancedOptionsSetCurrentSettings = id;
+ X264AdvancedOptionsStandardizeOptString = id;
+ showDebugOutputPanel = id;
+ showGrowlDoneNotification = id;
tableViewSelected = id;
};
CLASS = HBController;
@@ -94,7 +100,6 @@
fPresetDrawer = NSDrawer;
fPresetNewName = NSTextField;
fPresetNewPicSettingsPopUp = NSPopUpButton;
- fPresetSaveButton = NSButton;
fPresetSelectedDisplay = NSTextField;
fPresetsAdd = NSButton;
fPresetsDelete = NSButton;
diff --git a/macosx/English.lproj/MainMenu.nib/info.nib b/macosx/English.lproj/MainMenu.nib/info.nib
index 899a5acaf..974d94096 100644
--- a/macosx/English.lproj/MainMenu.nib/info.nib
+++ b/macosx/English.lproj/MainMenu.nib/info.nib
@@ -9,7 +9,7 @@
<key>1843</key>
<string>863 409 220 592 0 0 1920 1058 </string>
<key>29</key>
- <string>1793 762 365 44 1440 0 1280 1024 </string>
+ <string>281 404 365 44 0 0 1280 778 </string>
</dict>
<key>IBFramework Version</key>
<string>446.1</string>
@@ -19,10 +19,12 @@
</array>
<key>IBOpenObjects</key>
<array>
+ <integer>1438</integer>
+ <integer>29</integer>
<integer>21</integer>
</array>
<key>IBSystem Version</key>
- <string>8L127</string>
+ <string>8P2137</string>
<key>IBUserGuides</key>
<dict>
<key>21</key>
diff --git a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib
index a3c716c38..d49208592 100644
--- a/macosx/English.lproj/MainMenu.nib/keyedobjects.nib
+++ b/macosx/English.lproj/MainMenu.nib/keyedobjects.nib
Binary files differ
diff --git a/macosx/English.lproj/OutputPanel.nib/classes.nib b/macosx/English.lproj/OutputPanel.nib/classes.nib
new file mode 100644
index 000000000..f9f53db9e
--- /dev/null
+++ b/macosx/English.lproj/OutputPanel.nib/classes.nib
@@ -0,0 +1,13 @@
+{
+ IBClasses = (
+ {CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
+ {
+ ACTIONS = {clearOutput = id; copyAllOutputToPasteboard = id; showOutputPanel = id; };
+ CLASS = HBOutputPanelController;
+ LANGUAGE = ObjC;
+ OUTLETS = {outputPanel = NSPanel; textView = NSTextView; };
+ SUPERCLASS = NSObject;
+ }
+ );
+ IBVersion = 1;
+} \ No newline at end of file
diff --git a/macosx/English.lproj/OutputPanel.nib/info.nib b/macosx/English.lproj/OutputPanel.nib/info.nib
new file mode 100644
index 000000000..6f7e1db57
--- /dev/null
+++ b/macosx/English.lproj/OutputPanel.nib/info.nib
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>IBDocumentLocation</key>
+ <string>69 7 356 240 0 0 1280 778 </string>
+ <key>IBEditorPositions</key>
+ <dict>
+ <key>11</key>
+ <string>86 296 145 68 0 0 1280 778 </string>
+ </dict>
+ <key>IBFramework Version</key>
+ <string>446.1</string>
+ <key>IBOpenObjects</key>
+ <array>
+ <integer>5</integer>
+ <integer>11</integer>
+ </array>
+ <key>IBSystem Version</key>
+ <string>8P2137</string>
+</dict>
+</plist>
diff --git a/macosx/English.lproj/OutputPanel.nib/keyedobjects.nib b/macosx/English.lproj/OutputPanel.nib/keyedobjects.nib
new file mode 100644
index 000000000..f1c251939
--- /dev/null
+++ b/macosx/English.lproj/OutputPanel.nib/keyedobjects.nib
Binary files differ
diff --git a/macosx/HBOutputPanelController.h b/macosx/HBOutputPanelController.h
new file mode 100644
index 000000000..c2b6bd75d
--- /dev/null
+++ b/macosx/HBOutputPanelController.h
@@ -0,0 +1,30 @@
+/**
+ * @file
+ * @date 18.5.2007
+ *
+ * Interface of class HBOutputPanelController.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+/**
+ * This class implements a panel that displays all text that is written
+ * to stderr. User can easily copy the text to pasteboard from context menu.
+ */
+@interface HBOutputPanelController : NSObject
+{
+ /// Panel that displays debug output.
+ IBOutlet NSPanel *outputPanel;
+
+ /// Textview that displays debug output.
+ IBOutlet NSTextView *textView;
+
+ /// Text storage for the debug output.
+ NSTextStorage *outputTextStorage;
+}
+
+- (IBAction)showOutputPanel:(id)sender;
+- (IBAction)clearOutput:(id)sender;
+- (IBAction)copyAllOutputToPasteboard:(id)sender;
+
+@end
diff --git a/macosx/HBOutputPanelController.m b/macosx/HBOutputPanelController.m
new file mode 100644
index 000000000..195498654
--- /dev/null
+++ b/macosx/HBOutputPanelController.m
@@ -0,0 +1,95 @@
+/**
+ * @file
+ * @date 18.5.2007
+ *
+ * Implementation of class HBOutputPanelController.
+ */
+
+#import "HBOutputPanelController.h"
+#import "HBOutputRedirect.h"
+
+/// Maximum amount of characters that can be shown in the view.
+#define TextStorageUpperSizeLimit 20000
+
+/// When old output is removed, this is the amount of characters that will be
+/// left in outputTextStorage.
+#define TextStorageLowerSizeLimit 15000
+
+@implementation HBOutputPanelController
+
+/**
+ * Initializes the object, creates outputTextStorage and starts redirection of stderr.
+ */
+- (id)init
+{
+ if (self = [super init])
+ {
+ outputTextStorage = [[NSTextStorage alloc] init];
+ [[HBOutputRedirect stderrRedirect] addListener:self];
+ }
+ return self;
+}
+
+/**
+ * Stops redirection of stderr and releases resources.
+ */
+- (void)dealloc
+{
+ [[HBOutputRedirect stderrRedirect] removeListener:self];
+ [outputTextStorage release];
+ [outputPanel release];
+ [super dealloc];
+}
+
+/**
+ * Loads output panel from OutputPanel.nib and shwos it.
+ */
+- (IBAction)showOutputPanel:(id)sender
+{
+ if (!outputPanel)
+ {
+ BOOL loadSucceeded = [NSBundle loadNibNamed:@"OutputPanel" owner:self] && outputPanel;
+ NSAssert(loadSucceeded, @"Could not open nib file");
+
+ [outputPanel setFrameAutosaveName:@"OutputPanelFrame"];
+ [[textView layoutManager] replaceTextStorage:outputTextStorage];
+ }
+
+ [textView scrollRangeToVisible:NSMakeRange([outputTextStorage length], 0)];
+ [outputPanel orderFront:nil];
+}
+
+/**
+ * Displays text received from HBOutputRedirect in the text view.
+ */
+- (void)stderrRedirect:(NSString *)text
+{
+ NSAttributedString *attributedString = [[NSAttributedString alloc] initWithString:text];
+ [outputTextStorage appendAttributedString:attributedString];
+ [attributedString release];
+
+ if ([outputTextStorage length] > TextStorageUpperSizeLimit)
+ [outputTextStorage deleteCharactersInRange:NSMakeRange(0, [outputTextStorage length] - TextStorageLowerSizeLimit)];
+
+ [textView scrollRangeToVisible:NSMakeRange([outputTextStorage length], 0)];
+}
+
+/**
+ * Clears the output window.
+ */
+- (IBAction)clearOutput:(id)sender
+{
+ [outputTextStorage deleteCharactersInRange:NSMakeRange(0, [outputTextStorage length])];
+}
+
+/**
+ * Copies all text in the output window to pasteboard.
+ */
+- (IBAction)copyAllOutputToPasteboard:(id)sender
+{
+ NSPasteboard *pboard = [NSPasteboard generalPasteboard];
+ [pboard declareTypes:[NSArray arrayWithObject:NSStringPboardType] owner:nil];
+ [pboard setString:[outputTextStorage string] forType:NSStringPboardType];
+}
+
+@end
diff --git a/macosx/HBOutputRedirect.h b/macosx/HBOutputRedirect.h
new file mode 100644
index 000000000..562f09409
--- /dev/null
+++ b/macosx/HBOutputRedirect.h
@@ -0,0 +1,60 @@
+/**
+ * @file
+ * @date 17.5.2007
+ *
+ * Interface of class HBOutputRedirect.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+/**
+ * This class is used to redirect @c stdout and @c stderr outputs. It is never
+ * created directly; @c stdoutRedirect and @c stderrRedirect class methods
+ * should be use instead.
+ *
+ * @note Redirection is done by replacing @c _write functions for @c stdout and
+ * @c stderr streams. Because of this messages written by NSLog(), for
+ * example are not redirected. I consider this a good thing, but if more
+ * universal redirecting is needed, it can be done at file descriptor
+ * level.
+ */
+@interface HBOutputRedirect : NSObject
+{
+ /// Set that contains all registered listeners for this output.
+ NSMutableSet *listeners;
+
+ /// Selector that is called on listeners to forward the output.
+ SEL forwardingSelector;
+
+ /// Output stream (@c stdout or @c stderr) redirected by this object.
+ FILE *stream;
+
+ /// Pointer to old write function for the stream.
+ int (*oldWriteFunc)(void *, const char *, int);
+
+ NSLock *lock;
+}
+
++ (id)stdoutRedirect;
++ (id)stderrRedirect;
+
+- (void)addListener:(id)aListener;
+- (void)removeListener:(id)aListener;
+
+@end
+
+/* Here is another technique to redirect stderr, but it is done at lower level
+ which also redirects NSLog() and other writes that are done directly to the
+ file descriptor. This method is not used by HBOutputRedirect, but should
+ be easy to implement if needed. Code is untested, but this is shows basic
+ idea for future reference.
+
+ // Create a pipe
+ NSPipe *pipe = [[NSPipe alloc] init];
+
+ // Connect stderr to the writing end of the pipe
+ dup2([[pipe fileHandleForWriting] fileDescriptor], STDERR_FILENO);
+
+ // Get reading end of the pipe, we can use this to read stderr
+ NSFileHandle *fh = [pipe fileHandleForReading];
+*/
diff --git a/macosx/HBOutputRedirect.m b/macosx/HBOutputRedirect.m
new file mode 100644
index 000000000..4fab90161
--- /dev/null
+++ b/macosx/HBOutputRedirect.m
@@ -0,0 +1,190 @@
+/**
+ * @file
+ * @date 17.5.2007
+ *
+ * Implementation of class HBOutputRedirect.
+ */
+
+#import "HBOutputRedirect.h"
+
+/// Global pointer to HBOutputRedirect object that manages redirects for stdout.
+static HBOutputRedirect *g_stdoutRedirect = nil;
+
+/// Global pointer to HBOutputRedirect object that manages redirects for stderr.
+static HBOutputRedirect *g_stderrRedirect = nil;
+
+@interface HBOutputRedirect (Private)
+- (id)initWithStream:(FILE *)aStream selector:(SEL)aSelector;
+- (void)startRedirect;
+- (void)stopRedirect;
+- (void)forwardOutput:(NSData *)data;
+@end
+
+/**
+ * Function that replaces stdout->_write and forwards stdout to g_stdoutRedirect.
+ */
+int stdoutwrite(void *inFD, const char *buffer, int size)
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ NSData *data = [[NSData alloc] initWithBytes:buffer length:size];
+ [g_stdoutRedirect performSelectorOnMainThread:@selector(forwardOutput:) withObject:data waitUntilDone:NO];
+ [data release];
+ [pool release];
+ return size;
+}
+
+/**
+ * Function that replaces stderr->_write and forwards stderr to g_stderrRedirect.
+ */
+int stderrwrite(void *inFD, const char *buffer, int size)
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ NSData *data = [[NSData alloc] initWithBytes:buffer length:size];
+ [g_stderrRedirect performSelectorOnMainThread:@selector(forwardOutput:) withObject:data waitUntilDone:NO];
+ [data release];
+ [pool release];
+ return size;
+}
+
+@implementation HBOutputRedirect
+
+/**
+ * Returns HBOutputRedirect object used to redirect stdout.
+ */
++ (id)stdoutRedirect
+{
+ if (!g_stdoutRedirect)
+ g_stdoutRedirect = [[HBOutputRedirect alloc] initWithStream:stdout selector:@selector(stdoutRedirect:)];
+
+ return g_stdoutRedirect;
+}
+
+/**
+ * Returns HBOutputRedirect object used to redirect stderr.
+ */
++ (id)stderrRedirect
+{
+ if (!g_stderrRedirect)
+ g_stderrRedirect = [[HBOutputRedirect alloc] initWithStream:stderr selector:@selector(stderrRedirect:)];
+
+ return g_stderrRedirect;
+}
+
+/**
+ * Adds specified object as listener for this output. Method @c stdoutRedirect:
+ * or @c stderrRedirect: of the listener is called to redirect the output.
+ */
+- (void)addListener:(id)aListener
+{
+ NSAssert2([aListener respondsToSelector:forwardingSelector], @"Object %@ doesn't respond to selector \"%@\"", aListener, NSStringFromSelector(forwardingSelector));
+
+ if (![listeners containsObject:aListener])
+ {
+ [listeners addObject:aListener];
+ [aListener release];
+ }
+
+ if ([listeners count] > 0)
+ [self startRedirect];
+}
+
+/**
+ * Stops forwarding for this output to the specified listener object.
+ */
+- (void)removeListener:(id)aListener
+{
+ if ([listeners containsObject:aListener])
+ {
+ [aListener retain];
+ [listeners removeObject:aListener];
+ }
+
+ // If last listener is removed, stop redirecting output and autorelease
+ // self. Remember to set proper global pointer to NULL so the object is
+ // recreated again when needed.
+ if ([listeners count] == 0)
+ {
+ [self stopRedirect];
+ [self autorelease];
+
+ if (self == g_stdoutRedirect)
+ g_stdoutRedirect = NULL;
+ else if (self == g_stderrRedirect)
+ g_stderrRedirect = NULL;
+ }
+}
+
+@end
+
+@implementation HBOutputRedirect (Private)
+
+/**
+ * Private constructor which should not be called from outside. This is used to
+ * initialize the class at @c stdoutRedirect and @c stderrRedirect.
+ *
+ * @param aStream Stream that wil be redirected (stdout or stderr).
+ * @param aSelector Selector that will be called in listeners to redirect the stream.
+ *
+ * @return New HBOutputRedirect object.
+ */
+- (id)initWithStream:(FILE *)aStream selector:(SEL)aSelector
+{
+ if (self = [super init])
+ {
+ listeners = [[NSMutableSet alloc] init];
+ forwardingSelector = aSelector;
+ stream = aStream;
+ oldWriteFunc = NULL;
+ lock = [[NSLock alloc] init];
+ }
+ return self;
+}
+
+/**
+ * Frees all the listeners and deallocs the object.
+ */
+- (void)dealloc
+{
+ [listeners release];
+ [super dealloc];
+}
+
+/**
+ * Starts redirecting the stream by redirecting its output to function
+ * @c stdoutwrite() or @c stderrwrite(). Old _write function is stored to
+ * @c oldWriteFunc so it can be restored.
+ */
+- (void)startRedirect
+{
+ if (!oldWriteFunc)
+ {
+ oldWriteFunc = stream->_write;
+ stream->_write = stream == stdout ? stdoutwrite : stderrwrite;
+ }
+}
+
+/**
+ * Stops redirecting of the stream by returning the stream's _write function
+ * to original.
+ */
+- (void)stopRedirect
+{
+ if (oldWriteFunc)
+ {
+ stream->_write = oldWriteFunc;
+ oldWriteFunc = NULL;
+ }
+}
+
+/**
+ * Called from @c stdoutwrite() and @c stderrwrite() to forward the output to
+ * listeners.
+ */
+- (void)forwardOutput:(NSData *)data
+{
+ NSString *string = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
+ [listeners makeObjectsPerformSelector:forwardingSelector withObject:string];
+ [string release];
+}
+
+@end
diff --git a/macosx/HandBrake.xcodeproj/project.pbxproj b/macosx/HandBrake.xcodeproj/project.pbxproj
index 43f2ccb53..e978dc9fc 100644
--- a/macosx/HandBrake.xcodeproj/project.pbxproj
+++ b/macosx/HandBrake.xcodeproj/project.pbxproj
@@ -69,6 +69,11 @@
0DFF0B790B6BC72A00549488 /* deca52.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBC9D0B4CAB100064E04C /* deca52.c */; };
0DFF0B7A0B6BC72A00549488 /* decavcodec.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBC9E0B4CAB100064E04C /* decavcodec.c */; };
0DFF0C100B6BCEE800549488 /* test.c in Sources */ = {isa = PBXBuildFile; fileRef = 526FBC760B4CA8F40064E04C /* test.c */; };
+ 253886010BFE0A5B0064E995 /* HBOutputRedirect.h in Headers */ = {isa = PBXBuildFile; fileRef = 253885FF0BFE0A5B0064E995 /* HBOutputRedirect.h */; };
+ 253886020BFE0A5B0064E995 /* HBOutputRedirect.m in Sources */ = {isa = PBXBuildFile; fileRef = 253886000BFE0A5B0064E995 /* HBOutputRedirect.m */; };
+ 2538860C0BFE0B730064E995 /* OutputPanel.nib in Resources */ = {isa = PBXBuildFile; fileRef = 2538860A0BFE0B730064E995 /* OutputPanel.nib */; };
+ 253886170BFE0C160064E995 /* HBOutputPanelController.h in Headers */ = {isa = PBXBuildFile; fileRef = 253886150BFE0C160064E995 /* HBOutputPanelController.h */; };
+ 253886180BFE0C160064E995 /* HBOutputPanelController.m in Sources */ = {isa = PBXBuildFile; fileRef = 253886160BFE0C160064E995 /* HBOutputPanelController.m */; };
4D1125D809D72FD200E0657B /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D1125D709D72FD200E0657B /* libz.dylib */; };
4D1125D909D72FD200E0657B /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D1125D709D72FD200E0657B /* libz.dylib */; };
4D1EA2EA0993B09A00FDC1A2 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.mm */; };
@@ -182,6 +187,11 @@
0DFF0B720B6BC6E600549488 /* libhb.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libhb.a; sourceTree = BUILT_PRODUCTS_DIR; };
0DFF0C0A0B6BCEC200549488 /* HandBrakeCLI */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = HandBrakeCLI; sourceTree = BUILT_PRODUCTS_DIR; };
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
+ 253885FF0BFE0A5B0064E995 /* HBOutputRedirect.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = HBOutputRedirect.h; sourceTree = "<group>"; };
+ 253886000BFE0A5B0064E995 /* HBOutputRedirect.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = HBOutputRedirect.m; sourceTree = "<group>"; };
+ 2538860B0BFE0B730064E995 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/OutputPanel.nib; sourceTree = "<group>"; };
+ 253886150BFE0C160064E995 /* HBOutputPanelController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HBOutputPanelController.h; sourceTree = "<group>"; };
+ 253886160BFE0C160064E995 /* HBOutputPanelController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HBOutputPanelController.m; sourceTree = "<group>"; };
29B97316FDCFA39411CA2CEA /* main.mm */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = "<group>"; };
29B97319FDCFA39411CA2CEA /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/MainMenu.nib; sourceTree = "<group>"; };
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
@@ -311,6 +321,7 @@
29B97318FDCFA39411CA2CEA /* MainMenu.nib */,
4D1EA3000993B13700FDC1A2 /* Express.nib */,
089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
+ 2538860A0BFE0B730064E995 /* OutputPanel.nib */,
);
name = Resources;
sourceTree = "<group>";
@@ -397,6 +408,10 @@
4D2AE78A09CCB24C007E18F6 /* DriveDetector.h */,
593034E90BBA39A100172349 /* ChapterTitles.h */,
593034EA0BBA39A100172349 /* ChapterTitles.m */,
+ 253885FF0BFE0A5B0064E995 /* HBOutputRedirect.h */,
+ 253886000BFE0A5B0064E995 /* HBOutputRedirect.m */,
+ 253886150BFE0C160064E995 /* HBOutputPanelController.h */,
+ 253886160BFE0C160064E995 /* HBOutputPanelController.m */,
);
name = "HandBrake Sources";
sourceTree = "<group>";
@@ -440,6 +455,8 @@
4DD93F93082036E8008E1322 /* QueueController.h in Headers */,
4DD93F94082036E8008E1322 /* PrefsController.h in Headers */,
4D2AEA2A09CCB8FC007E18F6 /* DriveDetector.h in Headers */,
+ 253886010BFE0A5B0064E995 /* HBOutputRedirect.h in Headers */,
+ 253886170BFE0C160064E995 /* HBOutputPanelController.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -574,6 +591,7 @@
4DD93F96082036E8008E1322 /* MainMenu.nib in Resources */,
4DD93F97082036E8008E1322 /* InfoPlist.strings in Resources */,
0DFA5C7B0B8DD1E90020BC09 /* HandBrake.icns in Resources */,
+ 2538860C0BFE0B730064E995 /* OutputPanel.nib in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -687,6 +705,8 @@
4DD93F9F082036E8008E1322 /* QueueController.mm in Sources */,
4DD93FA0082036E8008E1322 /* PrefsController.m in Sources */,
4D2AEA2909CCB8F9007E18F6 /* DriveDetector.m in Sources */,
+ 253886020BFE0A5B0064E995 /* HBOutputRedirect.m in Sources */,
+ 253886180BFE0C160064E995 /* HBOutputPanelController.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -719,6 +739,14 @@
name = InfoPlist.strings;
sourceTree = "<group>";
};
+ 2538860A0BFE0B730064E995 /* OutputPanel.nib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ 2538860B0BFE0B730064E995 /* English */,
+ );
+ name = OutputPanel.nib;
+ sourceTree = "<group>";
+ };
29B97318FDCFA39411CA2CEA /* MainMenu.nib */ = {
isa = PBXVariantGroup;
children = (
diff --git a/macosx/PrefsController.m b/macosx/PrefsController.m
index 2af83fb33..09414e1db 100644
--- a/macosx/PrefsController.m
+++ b/macosx/PrefsController.m
@@ -32,6 +32,7 @@
defSrcDirectory, @"LastSourceDirectory",
@"NO", @"DefaultAutoNaming",
@"NO", @"DefaultChapterMarkers",
+ @"NO", @"ShowVerboseOutput",
nil];
[defaults registerDefaults: appDefaults];