X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=macosx%2FController.h;h=3c912f0776fcb4f1e9a20779ea8243b93ef8dda5;hb=3506dd0e4c866aa9ea00aa071286052963f6e1f6;hp=2cfd06628126d85f334a19e70b3fe734a54d7c7a;hpb=0022b1e81f34e091952b900c96d5c5d026a3b8d2;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/macosx/Controller.h b/macosx/Controller.h index 2cfd0662..3c912f07 100644 --- a/macosx/Controller.h +++ b/macosx/Controller.h @@ -4,41 +4,56 @@ Homepage: . It may be used under the terms of the GNU General Public License. */ -#include -#include +#import +#import #include "hb.h" - -#include "ChapterTitles.h" -#include "ScanController.h" -#include "PictureController.h" -#include "QueueController.h" - +#import "ChapterTitles.h" +#import "PictureController.h" +#import "HBQueueController.h" +#import "MVMenuButton.h" +#import "HBAdvancedController.h" +#import "HBPreferencesController.h" +#import "HBPresets.h" @class HBOutputPanelController; @interface HBController : NSObject { IBOutlet NSWindow * fWindow; - - /* Scan panel */ - IBOutlet ScanController * fScanController; - IBOutlet NSPanel * fScanPanel; - + NSToolbar * toolbar; + + /* Main Menu Outlets */ + NSMenuItem * fOpenSourceTitleMMenu; + + /* Source Title Scan Outlets */ + IBOutlet NSPanel * fScanSrcTitlePanel; + IBOutlet NSTextField * fScanSrcTitlePathField; + IBOutlet NSTextField * fSrcDsplyNameTitleScan; + IBOutlet NSTextField * fScanSrcTitleNumField; + IBOutlet NSButton * fScanSrcTitleCancelButton; + IBOutlet NSButton * fScanSrcTitleOpenButton; + /* Picture panel */ - IBOutlet PictureController * fPictureController; - IBOutlet NSPanel * fPicturePanel; - + PictureController * fPictureController; + + /* Advanced options tab */ + HBAdvancedController * fAdvancedOptions; + IBOutlet NSBox * fAdvancedView; + + HBPreferencesController * fPreferencesController; + /* Queue panel */ - IBOutlet QueueController * fQueueController; - IBOutlet NSPanel * fQueuePanel; + HBQueueController * fQueueController; IBOutlet NSTextField * fQueueStatus; - IBOutlet NSButton * fQueueAddButton; - IBOutlet NSButton * fQueueShowButton; - + + /* Output panel */ + HBOutputPanelController *outputPanel; + /* Source box */ - IBOutlet NSTextField * fSrcDVD1Field; + IBOutlet NSProgressIndicator * fScanIndicator; + NSString * sourceDisplayName; IBOutlet NSTextField * fSrcDVD2Field; IBOutlet NSTextField * fSrcTitleField; IBOutlet NSPopUpButton * fSrcTitlePopUp; @@ -48,16 +63,23 @@ IBOutlet NSPopUpButton * fSrcChapterEndPopUp; IBOutlet NSTextField * fSrcDuration1Field; IBOutlet NSTextField * fSrcDuration2Field; - + /* Destination box */ IBOutlet NSTextField * fDstFormatField; - IBOutlet NSPopUpButton * fDstFormatPopUp; - IBOutlet NSTextField * fDstCodecsField; + IBOutlet NSPopUpButton * fDstFormatPopUp; + IBOutlet NSTextField * fDstCodecsField; IBOutlet NSPopUpButton * fDstCodecsPopUp; IBOutlet NSTextField * fDstFile1Field; IBOutlet NSTextField * fDstFile2Field; IBOutlet NSButton * fDstBrowseButton; - + /* MP4 Options */ + // Creates 64 bit mp4's that allow file sizes over 4gb + IBOutlet NSButton * fDstMp4LargeFileCheck; + // Optimizes mp4's for http + IBOutlet NSButton * fDstMp4HttpOptFileCheck; + // Creates iPod compatible mp4's (add ipod uuid atom) + IBOutlet NSButton * fDstMp4iPodFileCheck; + /* Video box */ IBOutlet NSTextField * fVidRateField; IBOutlet NSPopUpButton * fVidRatePopUp; @@ -73,236 +95,234 @@ IBOutlet NSSlider * fVidQualitySlider; IBOutlet NSButton * fVidGrayscaleCheck; IBOutlet NSButton * fVidTwoPassCheck; - + IBOutlet NSButton * fVidTurboPassCheck; /* Picture Settings box */ IBOutlet NSTextField * fPicLabelSettings; IBOutlet NSTextField * fPicLabelSrc; + IBOutlet NSTextField * fPicSettingsSrc; IBOutlet NSTextField * fPicLabelOutp; - IBOutlet NSTextField * fPicLabelAr; - IBOutlet NSTextField * fPicLabelDeinter; - IBOutlet NSTextField * fPicLabelSrcX; - IBOutlet NSTextField * fPicLabelOutputX; - - IBOutlet NSTextField * fPicSrcWidth; - IBOutlet NSTextField * fPicSrcHeight; - IBOutlet NSTextField * fPicSettingWidth; - IBOutlet NSTextField * fPicSettingHeight; + IBOutlet NSTextField * fPicSettingsOutp; + IBOutlet NSTextField * fPicLabelAnamorphic; + IBOutlet NSTextField * fPicSettingsAnamorphic; + + IBOutlet NSTextField * fPicLabelAr; + IBOutlet NSTextField * fPicLabelAutoCrop; + IBOutlet NSTextField * fPicLabelDetelecine; + IBOutlet NSTextField * fPicLabelDeinterlace; + IBOutlet NSTextField * fPicLabelDenoise; + IBOutlet NSTextField * fPicLabelDeblock; + IBOutlet NSTextField * fPicSettingDeinterlace; IBOutlet NSTextField * fPicSettingARkeep; IBOutlet NSTextField * fPicSettingPAR; - IBOutlet NSTextField * fPicSettingDeinterlace; - IBOutlet NSTextField * fPicSettingARkeepDsply; - IBOutlet NSTextField * fPicSettingPARDsply; - IBOutlet NSTextField * fPicSettingDeinterlaceDsply; - IBOutlet NSTextField * fPicLabelAnamorphic; - IBOutlet NSTextField * fPicLabelPAROutp; - IBOutlet NSTextField * fPicLabelPAROutputX; - IBOutlet NSTextField * fPicSettingPARWidth; - IBOutlet NSTextField * fPicSettingPARHeight; - /* Picture variables */ + IBOutlet NSTextField * fPicSettingAutoCrop; + IBOutlet NSTextField * fPicSettingDetelecine; + IBOutlet NSTextField * fPicSettingDenoise; + IBOutlet NSTextField * fPicSettingDeblock; + + /* Picture variables */ int PicOrigOutputWidth; int PicOrigOutputHeight; - + int AutoCropTop; + int AutoCropBottom; + int AutoCropLeft; + int AutoCropRight; /* Subtitles box */ IBOutlet NSTextField * fSubField; IBOutlet NSPopUpButton * fSubPopUp; - + IBOutlet NSButton * fSubForcedCheck; + /* Audio box */ IBOutlet NSTextField * fAudLang1Field; IBOutlet NSPopUpButton * fAudLang1PopUp; IBOutlet NSTextField * fAudLang2Field; IBOutlet NSPopUpButton * fAudLang2PopUp; /* New Audio Mix PopUps */ - IBOutlet NSTextField * fAudTrack1MixLabel; + /* Track info */ + IBOutlet NSTextField * fAudTrack1MixLabel; IBOutlet NSPopUpButton * fAudTrack1MixPopUp; IBOutlet NSTextField * fAudTrack2MixLabel; IBOutlet NSPopUpButton * fAudTrack2MixPopUp; + /* Quality info */ IBOutlet NSTextField * fAudRateField; IBOutlet NSPopUpButton * fAudRatePopUp; IBOutlet NSTextField * fAudBitrateField; IBOutlet NSPopUpButton * fAudBitratePopUp; + /*Dynamic Range Compression */ + IBOutlet NSSlider * fAudDrcSlider; + IBOutlet NSTextField * fAudDrcField; + IBOutlet NSTextField * fAudDrcLabel; + IBOutlet NSTextField * fAudDrcDescLabel1; + IBOutlet NSTextField * fAudDrcDescLabel2; + IBOutlet NSTextField * fAudDrcDescLabel3; + IBOutlet NSTextField * fAudDrcDescLabel4; /* Chapters box */ IBOutlet NSButton * fCreateChapterMarkers; IBOutlet NSTableView * fChapterTable; - ChapterTitles * fChapterTitlesDelegate; - + ChapterTitles * fChapterTitlesDelegate; + /* Bottom */ IBOutlet NSButton * fPictureButton; IBOutlet NSTextField * fStatusField; IBOutlet NSProgressIndicator * fRipIndicator; - IBOutlet NSButton * fShowQuButton; - IBOutlet NSButton * fAddToQuButton; - IBOutlet NSButton * fPauseButton; - IBOutlet NSButton * fRipButton; - - /* Advanced Tab for opts fX264optView*/ - IBOutlet NSView * fX264optView; - IBOutlet NSTextField * fX264optViewTitleLabel; - IBOutlet NSTextField * fDisplayX264OptionsLabel; - IBOutlet NSTextField * fDisplayX264Options; - IBOutlet NSTextField * fX264optBframesLabel; - IBOutlet NSPopUpButton * fX264optBframesPopUp; - IBOutlet NSTextField * fX264optRefLabel; - IBOutlet NSPopUpButton * fX264optRefPopUp; - IBOutlet NSTextField * fX264optNfpskipLabel; - IBOutlet NSButton * fX264optNfpskipSwitch; - IBOutlet NSTextField * fX264optNodctdcmtLabel; - IBOutlet NSButton * fX264optNodctdcmtSwitch; - IBOutlet NSTextField * fX264optSubmeLabel; - IBOutlet NSPopUpButton * fX264optSubmePopUp; - IBOutlet NSTextField * fX264optTrellisLabel; - IBOutlet NSPopUpButton * fX264optTrellisPopUp; - IBOutlet NSTextField * fX264optMixedRefsLabel; - IBOutlet NSButton * fX264optMixedRefsSwitch; - IBOutlet NSTextField * fX264optMotionEstLabel; - IBOutlet NSPopUpButton * fX264optMotionEstPopUp; - IBOutlet NSTextField * fX264optMERangeLabel; - IBOutlet NSPopUpButton * fX264optMERangePopUp; - IBOutlet NSTextField * fX264optWeightBLabel; - IBOutlet NSButton * fX264optWeightBSwitch; - IBOutlet NSTextField * fX264optBRDOLabel; - IBOutlet NSButton * fX264optBRDOSwitch; - IBOutlet NSTextField * fX264optBPyramidLabel; - IBOutlet NSButton * fX264optBPyramidSwitch; - IBOutlet NSTextField * fX264optBiMELabel; - IBOutlet NSButton * fX264optBiMESwitch; - IBOutlet NSTextField * fX264optDirectPredLabel; - IBOutlet NSPopUpButton * fX264optDirectPredPopUp; - IBOutlet NSTextField * fX264optDeblockLabel; - IBOutlet NSPopUpButton * fX264optAlphaDeblockPopUp; - IBOutlet NSPopUpButton * fX264optBetaDeblockPopUp; + BOOL fRipIndicatorShown; - /* User Preset variables here fPresetNewPicSettingsApply*/ - + /* User Preset variables here */ + HBPresets * fPresetsBuiltin; IBOutlet NSDrawer * fPresetDrawer; IBOutlet NSTextField * fPresetNewName; + IBOutlet NSTextField * fPresetNewDesc; IBOutlet NSPopUpButton * fPresetNewPicSettingsPopUp; + IBOutlet NSButton * fPresetNewPicFiltersCheck; IBOutlet NSTextField * fPresetSelectedDisplay; NSString * AppSupportDirectory; NSString * UserPresetsFile; - NSString * x264ProfilesFile; NSMutableArray * UserPresets; - NSMutableArray * x264Profiles; NSMutableArray * UserPresetssortedArray; NSMutableDictionary * chosenPreset; int curUserPresetChosenNum; - + + int presetHbDefault; // this is 1 in "Default" preset key + int presetUserDefault;// this is 2 in "Default" preset key IBOutlet NSPanel * fAddPresetPanel; - IBOutlet NSTableView * tableView; - IBOutlet NSButton * fPresetsAdd; + /* new NSOutline View for the presets */ + NSArray *fDraggedNodes; + IBOutlet NSOutlineView * fPresetsOutlineView; + IBOutlet NSButton * fPresetsAdd; IBOutlet NSButton * fPresetsDelete; + IBOutlet MVMenuButton * fPresetsActionButton; + IBOutlet NSMenu * fPresetsActionMenu; + hb_handle_t * fHandle; hb_title_t * fTitle; /* integer to set to determine the previous state - of encode 0==idle, 1==encoding, 2==cancelled*/ + of encode 0==idle, 1==encoding, 2==cancelled*/ int fEncodeState; - - HBOutputPanelController *outputPanel; + int currentScanCount; + int currentSuccessfulScanCount; + BOOL SuccessfulScan; + NSString * currentSource; + NSString * browsedSourceDisplayName; } +- (void) writeToActivityLog:(char *) format, ...; +- (IBAction) browseSources: (id) sender; +- (void) browseSourcesDone: (NSOpenPanel *) sheet + returnCode: (int) returnCode contextInfo: (void *) contextInfo; +- (IBAction) showSourceTitleScanPanel: (id) sender; +- (IBAction) closeSourceTitleScanPanel: (id) sender; +- (void) performScan:(NSString *) scanPath scanTitleNum: (int) scanTitleNum; +- (IBAction) showNewScan: (id) sender; - (void) TranslateStrings; -- (void) UpdateUI: (NSTimer *) timer; -- (void) EnableUI: (bool) enable; - -- (IBAction) ShowScanPanel: (id) sender; +- (void) updateUI: (NSTimer *) timer; +- (void) enableUI: (bool) enable; -- (IBAction) TitlePopUpChanged: (id) sender; -- (IBAction) ChapterPopUpChanged: (id) sender; +- (IBAction) titlePopUpChanged: (id) sender; +- (IBAction) chapterPopUpChanged: (id) sender; -- (IBAction) FormatPopUpChanged: (id) sender; -- (IBAction) CodecsPopUpChanged: (id) sender; -- (IBAction) EncoderPopUpChanged: (id) sender; +- (IBAction) formatPopUpChanged: (id) sender; +- (IBAction) codecsPopUpChanged: (id) sender; +- (IBAction) encoderPopUpChanged: (id) sender; +- (IBAction) twoPassCheckboxChanged: (id) sender; +- (IBAction) videoFrameRateChanged: (id) sender; +- (IBAction) setEnabledStateOfAudioMixdownControls: (id) sender; +- (IBAction) addAllAudioTracksToPopUp: (id) sender; +- (IBAction) selectAudioTrackInPopUp: (id) sender searchPrefixString: (NSString *) searchPrefixString selectIndexIfNotFound: (int) selectIndexIfNotFound; +- (IBAction) audioTrackPopUpChanged: (id) sender; +- (IBAction) audioTrackPopUpChanged: (id) sender mixdownToUse: (int) mixdownToUse; +- (IBAction) audioTrackMixdownChanged: (id) sender; +- (IBAction) subtitleSelectionChanged: (id) sender; -- (IBAction) SetEnabledStateOfAudioMixdownControls: (id) sender; -- (IBAction) AddAllAudioTracksToPopUp: (id) sender; -- (IBAction) SelectAudioTrackInPopUp: (id) sender searchPrefixString: (NSString *) searchPrefixString selectIndexIfNotFound: (int) selectIndexIfNotFound; -- (IBAction) AudioTrackPopUpChanged: (id) sender; -- (IBAction) AudioTrackPopUpChanged: (id) sender mixdownToUse: (int) mixdownToUse; -- (IBAction) AudioTrackMixdownChanged: (id) sender; +- (IBAction) browseFile: (id) sender; +- (void) browseFileDone: (NSSavePanel *) sheet + returnCode: (int) returnCode contextInfo: (void *) contextInfo; -- (IBAction) BrowseFile: (id) sender; -- (void) BrowseFileDone: (NSSavePanel *) sheet - returnCode: (int) returnCode contextInfo: (void *) contextInfo; +- (IBAction) videoMatrixChanged: (id) sender; +- (IBAction) qualitySliderChanged: (id) sender; +- (IBAction) audioDRCSliderChanged: (id) sender; -- (IBAction) VideoMatrixChanged: (id) sender; -- (IBAction) QualitySliderChanged: (id) sender; +- (IBAction) showPicturePanel: (id) sender; +- (IBAction) calculatePictureSizing: (id) sender; +- (IBAction) openMainWindow: (id) sender; -- (IBAction) ShowPicturePanel: (id) sender; -- (IBAction) CalculatePictureSizing: (id) sender; +- (IBAction) addToQueue: (id) sender; +- (void) overwriteAddToQueueAlertDone: (NSWindow *) sheet + returnCode: (int) returnCode contextInfo: (void *) contextInfo; +- (void) doAddToQueue; +- (IBAction) showQueueWindow:(id)sender; -- (IBAction) AddToQueue: (id) sender; -- (IBAction) ShowQueuePanel: (id) sender; +- (IBAction)showPreferencesWindow:(id)sender; - (IBAction) Rip: (id) sender; -- (void) OverwriteAlertDone: (NSWindow *) sheet - returnCode: (int) returnCode contextInfo: (void *) contextInfo; -- (void) UpdateAlertDone: (NSWindow *) sheet - returnCode: (int) returnCode contextInfo: (void *) contextInfo; -- (void) _Rip; +- (void) overWriteAlertDone: (NSWindow *) sheet + returnCode: (int) returnCode contextInfo: (void *) contextInfo; +- (void) doRip; + - (IBAction) Cancel: (id) sender; -- (void) _Cancel: (NSWindow *) sheet returnCode: (int) returnCode - contextInfo: (void *) contextInfo; +- (void) doCancelCurrentJob; + - (IBAction) Pause: (id) sender; -- (IBAction) CalculateBitrate: (id) sender; -- (void) controlTextDidBeginEditing: (NSNotification *) notification; -- (void) controlTextDidEndEditing: (NSNotification *) notification; +- (IBAction) calculateBitrate: (id) sender; - (void) controlTextDidChange: (NSNotification *) notification; -- (IBAction) OpenHomepage: (id) sender; -- (IBAction) OpenForums: (id) sender; -- (IBAction) OpenUserGuide: (id) sender; - -// x264 Advanced Panel Methods -- (IBAction) X264AdvancedOptionsSet: (id) sender; -- (IBAction) X264AdvancedOptionsStandardizeOptString: (id) sender; -- (IBAction) X264AdvancedOptionsSetCurrentSettings: (id) sender; -- (NSString *) X264AdvancedOptionsStandardizeOptNames:(NSString *) cleanOptNameString; -- (IBAction) X264AdvancedOptionsChanged: (id) sender; +- (IBAction) openHomepage: (id) sender; +- (IBAction) openForums: (id) sender; +- (IBAction) openUserGuide: (id) sender; // Preset Methods Here -- (IBAction) CustomSettingUsed: (id) sender; -- (IBAction) ShowAddPresetPanel: (id) sender; -- (IBAction) CloseAddPresetPanel: (id) sender; -- (NSDictionary *)CreatePreset; -- (NSDictionary *)CreateIpodPreset; -- (NSDictionary *)CreateAppleTVPreset; -- (NSDictionary *)CreatePSThreePreset; -- (NSDictionary *)CreatePSPPreset; -- (IBAction) RevertPictureSizeToMax:(id)sender; - - + +/* These are required by the NSOutlineView Datasource Delegate */ +/* We use this to deterimine children of an item */ +- (id)outlineView:(NSOutlineView *)fPresetsOutlineView child:(NSInteger)index ofItem:(id)item; +/* We use this to determine if an item should be expandable */ +- (BOOL)outlineView:(NSOutlineView *)fPresetsOutlineView isItemExpandable:(id)item; +/* used to specify the number of levels to show for each item */ +- (int)outlineView:(NSOutlineView *)fPresetsOutlineView numberOfChildrenOfItem:(id)item; +/* Used to tell the outline view which information is to be displayed per item */ +- (id)outlineView:(NSOutlineView *)fPresetsOutlineView objectValueForTableColumn:(NSTableColumn *)tableColumn byItem:(id)item; +/* Use to customize the font and display characteristics of the title cell */ +- (void)outlineView:(NSOutlineView *)fPresetsOutlineView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)tableColumn item:(id)item; +/* We use this to edit the name field in the outline view */ +- (void)outlineView:(NSOutlineView *)fPresetsOutlineView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn byItem:(id)item; +/* We use this to provide tooltips for the items in the presets outline view */ +- (NSString *)outlineView:(NSOutlineView *)fPresetsOutlineView toolTipForCell:(NSCell *)cell rect:(NSRectPointer)rect tableColumn:(NSTableColumn *)tc item:(id)item mouseLocation:(NSPoint)mouseLocation; + +/* We use this to actually select the preset and act accordingly */ +- (IBAction)selectPreset:(id)sender; + +/* Manage User presets */ +- (void) loadPresets; +- (IBAction) customSettingUsed: (id) sender; +- (IBAction) showAddPresetPanel: (id) sender; +- (IBAction) closeAddPresetPanel: (id) sender; +- (NSDictionary *)createPreset; + +- (IBAction) revertPictureSizeToMax:(id)sender; + +- (IBAction)setDefaultPreset:(id)sender; +- (IBAction)selectDefaultPreset:(id)sender; - (void) savePreset; -- (IBAction)AddFactoryPresets:(id)sender; -- (IBAction)DeleteFactoryPresets:(id)sender; -- (IBAction)AddUserPreset:(id)sender; -- (void)AddPreset; -- (IBAction)InsertPreset:(id)sender; -- (IBAction)DeletePreset:(id)sender; -- (IBAction)tableViewSelected:(id)sender; -// NSTableDataSource methods -- (int)numberOfRowsInTableView:(NSTableView *)aTableView; -- (id)tableView:(NSTableView *)aTableView - objectValueForTableColumn:(NSTableColumn *)aTableColumn - row:(int)rowIndex; -- (void)tableView:(NSTableView *)aTableView - setObjectValue:(id)anObject - forTableColumn:(NSTableColumn *)aTableColumn - row:(int)rowIndex; -// To determine user presets cell display properties -- (void)tableView:(NSTableView *)aTableView - willDisplayCell:(id)aCell forTableColumn:(NSTableColumn *)aTableColumn - row:(int)rowIndex; +- (IBAction)addFactoryPresets:(id)sender; +- (IBAction)deleteFactoryPresets:(id)sender; +- (IBAction)addUserPreset:(id)sender; +- (void)addPreset; +- (IBAction)insertPreset:(id)sender; +- (IBAction)deletePreset:(id)sender; +- (IBAction)getDefaultPresets:(id)sender; + -// Growl methods + // Growl methods - (NSDictionary *) registrationDictionaryForGrowl; -(IBAction)showGrowlDoneNotification:(id)sender; - (IBAction)showDebugOutputPanel:(id)sender; +- (void)setupToolbar; +- (void) remindUserOfSleepOrShutdown; @end