X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=macosx%2FController.h;h=f9634abe901bbb999b1217008b1f76341fea89a7;hb=4b72a63eb61a01275493c4bfb51ba02152d1c5e1;hp=a68087d23d22e3006a2841668f6d382784bd54da;hpb=fdaa6d5fc1f71fd25fcea3b37798d0195f729504;p=handbrake-jp%2Fhandbrake-jp-git.git diff --git a/macosx/Controller.h b/macosx/Controller.h index a68087d2..f9634abe 100644 --- a/macosx/Controller.h +++ b/macosx/Controller.h @@ -1,7 +1,7 @@ /* $Id: Controller.h,v 1.35 2005/08/01 14:29:50 titer Exp $ This file is part of the HandBrake source code. - Homepage: . + Homepage: . It may be used under the terms of the GNU General Public License. */ #import @@ -10,20 +10,36 @@ #include "hb.h" #import "ChapterTitles.h" +#import "HBSubtitles.h" #import "PictureController.h" +#import "HBPreviewController.h" #import "HBQueueController.h" -#import "MVMenuButton.h" #import "HBAdvancedController.h" #import "HBPreferencesController.h" #import "HBPresets.h" +#import "HBAudioController.h" + +extern NSString *HBContainerChangedNotification; +extern NSString *keyContainerTag; +extern NSString *HBTitleChangedNotification; +extern NSString *keyTitleTag; + @class HBOutputPanelController; -@interface HBController : NSObject +/* We subclass NSView so that our drags show both the icon as well as PresetName columns */ +@interface HBPresetsOutlineView : NSOutlineView +{ + +BOOL fIsDragging; + +} +@end +@interface HBController : NSObject { + NSImage * fApplicationIcon; IBOutlet NSWindow * fWindow; - NSToolbar * toolbar; - + /* Main Menu Outlets */ NSMenuItem * fOpenSourceTitleMMenu; @@ -34,10 +50,14 @@ IBOutlet NSTextField * fScanSrcTitleNumField; IBOutlet NSButton * fScanSrcTitleCancelButton; IBOutlet NSButton * fScanSrcTitleOpenButton; + - /* Picture panel */ + /* Picture Settings */ PictureController * fPictureController; + /* Picture Preview */ + PreviewController * fPreviewController; + /* Advanced options tab */ HBAdvancedController * fAdvancedOptions; IBOutlet NSBox * fAdvancedView; @@ -57,18 +77,34 @@ IBOutlet NSTextField * fSrcDVD2Field; IBOutlet NSTextField * fSrcTitleField; IBOutlet NSPopUpButton * fSrcTitlePopUp; + + + /* lib dvd nav specific */ + IBOutlet NSTextField * fSrcAngleLabel; + IBOutlet NSPopUpButton * fSrcAnglePopUp; + + /* Source start and end points */ + IBOutlet NSPopUpButton * fEncodeStartStopPopUp; + /* pts based start / stop */ + IBOutlet NSTextField * fSrcTimeStartEncodingField; + IBOutlet NSTextField * fSrcTimeEndEncodingField; + /* frame based based start / stop */ + IBOutlet NSTextField * fSrcFrameStartEncodingField; + IBOutlet NSTextField * fSrcFrameEndEncodingField; + IBOutlet NSTextField * fSrcChapterField; IBOutlet NSPopUpButton * fSrcChapterStartPopUp; IBOutlet NSTextField * fSrcChapterToField; IBOutlet NSPopUpButton * fSrcChapterEndPopUp; + + /* Source duration information */ IBOutlet NSTextField * fSrcDuration1Field; IBOutlet NSTextField * fSrcDuration2Field; /* Destination box */ IBOutlet NSTextField * fDstFormatField; IBOutlet NSPopUpButton * fDstFormatPopUp; - IBOutlet NSTextField * fDstCodecsField; - IBOutlet NSPopUpButton * fDstCodecsPopUp; + IBOutlet NSTextField * fDstFile1Field; IBOutlet NSTextField * fDstFile2Field; IBOutlet NSButton * fDstBrowseButton; @@ -77,13 +113,19 @@ 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 NSButton * fFrameratePfrCheck; + IBOutlet NSTextField * fVidRateField; IBOutlet NSPopUpButton * fVidRatePopUp; IBOutlet NSTextField * fVidEncoderField; IBOutlet NSPopUpButton * fVidEncoderPopUp; IBOutlet NSTextField * fVidQualityField; + IBOutlet NSTextField * fVidQualityRFLabel; + IBOutlet NSTextField * fVidQualityRFField; IBOutlet NSMatrix * fVidQualityMatrix; IBOutlet NSButtonCell * fVidTargetCell; IBOutlet NSTextField * fVidTargetSizeField; @@ -91,32 +133,15 @@ IBOutlet NSTextField * fVidBitrateField; IBOutlet NSButtonCell * fVidConstantCell; 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 * 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 * fPicSettingAutoCrop; - IBOutlet NSTextField * fPicSettingDetelecine; - IBOutlet NSTextField * fPicSettingDenoise; - IBOutlet NSTextField * fPicSettingDeblock; + /* Status read out fileds for picture sizing */ + IBOutlet NSTextField * fPictureSizeField; + IBOutlet NSTextField * fPictureCroppingField; + + /* Status read out fileds for video filters */ + IBOutlet NSTextField * fVideoFiltersField; /* Picture variables */ int PicOrigOutputWidth; @@ -129,51 +154,45 @@ 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 */ - /* 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; + + IBOutlet NSTableView * fSubtitlesTable; + HBSubtitles * fSubtitlesDelegate; + IBOutlet NSButton * fBrowseSrtFileButton; + + /* New Audio box */ + IBOutlet HBAudioController * fAudioDelegate; + /* Chapters box */ IBOutlet NSButton * fCreateChapterMarkers; IBOutlet NSTableView * fChapterTable; + IBOutlet NSButton * fLoadChaptersButton; + IBOutlet NSButton * fSaveChaptersButton; + IBOutlet NSTableColumn * fChapterTableNameColumn; ChapterTitles * fChapterTitlesDelegate; /* Bottom */ - IBOutlet NSButton * fPictureButton; IBOutlet NSTextField * fStatusField; IBOutlet NSProgressIndicator * fRipIndicator; BOOL fRipIndicatorShown; + /* Queue File variables */ + NSString * QueueFile; + NSMutableArray * QueueFileArray; + int currentQueueEncodeIndex; // Used to track the currently encoding queueu item + /* User Preset variables here */ HBPresets * fPresetsBuiltin; IBOutlet NSDrawer * fPresetDrawer; IBOutlet NSTextField * fPresetNewName; IBOutlet NSTextField * fPresetNewDesc; IBOutlet NSPopUpButton * fPresetNewPicSettingsPopUp; + IBOutlet NSTextField * fPresetNewPicWidth; + IBOutlet NSTextField * fPresetNewPicHeight; + IBOutlet NSBox * fPresetNewPicWidthHeightBox; + IBOutlet NSButton * fPresetNewPicFiltersCheck; + IBOutlet NSButton * fPresetNewFolderCheck; IBOutlet NSTextField * fPresetSelectedDisplay; NSString * AppSupportDirectory; @@ -183,28 +202,54 @@ NSMutableDictionary * chosenPreset; int curUserPresetChosenNum; - int presetHbDefault; // this is 1 in "Default" preset key - int presetUserDefault;// this is 2 in "Default" preset key + NSMutableDictionary *presetHbDefault; // this is 1 in "Default" preset key + NSMutableDictionary *presetUserDefault;// this is 2 in "Default" preset key + NSMutableDictionary *presetUserDefaultParent; + NSMutableDictionary *presetUserDefaultParentParent; + int presetCurrentBuiltInCount; // keeps track of the current number of built in presets IBOutlet NSPanel * fAddPresetPanel; - /* new NSOutline View for the presets */ + + /* NSOutline View for the presets */ NSArray *fDraggedNodes; - IBOutlet NSOutlineView * fPresetsOutlineView; + IBOutlet HBPresetsOutlineView * fPresetsOutlineView; IBOutlet NSButton * fPresetsAdd; IBOutlet NSButton * fPresetsDelete; - IBOutlet MVMenuButton * fPresetsActionButton; - IBOutlet NSMenu * fPresetsActionMenu; - + IBOutlet NSPopUpButton * fPresetsActionButton; + hb_handle_t * fHandle; + + /* Queue variables */ + int hbInstanceNum; //stores the number of HandBrake instances currently running + hb_handle_t * fQueueEncodeLibhb; // libhb for HB Encoding hb_title_t * fTitle; + hb_title_t * fQueueEncodeTitle; + int fEncodingQueueItem; // corresponds to the index of fJobGroups encoding item + int fPendingCount; // Number of various kinds of job groups in fJobGroups. + int fCompletedCount; + int fCanceledCount; + int fWorkingCount; + + int fqueueEditRescanItemNum; // queue array item to be reloaded into the main window + int pidNum; // The pid number for this instance + NSString * currentQueueEncodeNameString; + /* integer to set to determine the previous state of encode 0==idle, 1==encoding, 2==cancelled*/ int fEncodeState; int currentScanCount; int currentSuccessfulScanCount; BOOL SuccessfulScan; + BOOL applyQueueToScan; NSString * currentSource; + NSString * browsedSourceDisplayName; + + double dockIconProgress; + BOOL hasValidPresetSelected; } +- (int) getPidnum; +- (IBAction) showAboutPanel:(id)sender; +- (void) writeToActivityLog:(const char *) format, ...; - (IBAction) browseSources: (id) sender; - (void) browseSourcesDone: (NSOpenPanel *) sheet returnCode: (int) returnCode contextInfo: (void *) contextInfo; @@ -213,39 +258,63 @@ - (void) performScan:(NSString *) scanPath scanTitleNum: (int) scanTitleNum; - (IBAction) showNewScan: (id) sender; -- (void) TranslateStrings; + +- (IBAction) cancelScanning:(id)sender; - (void) updateUI: (NSTimer *) timer; - (void) enableUI: (bool) enable; - +- (IBAction) encodeStartStopPopUpChanged: (id) sender; - (IBAction) titlePopUpChanged: (id) sender; - (IBAction) chapterPopUpChanged: (id) sender; +- (IBAction) startEndSecValueChanged: (id) sender; +- (IBAction) startEndFrameValueChanged: (id) sender; + - (IBAction) formatPopUpChanged: (id) sender; -- (IBAction) codecsPopUpChanged: (id) sender; -- (IBAction) encoderPopUpChanged: (id) sender; +- (IBAction) videoEncoderPopUpChanged: (id) sender; +- (IBAction) autoSetM4vExtension: (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; - +- (void) prepareJob; - (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; +- (void) setupQualitySlider; + +- (IBAction) browseImportSrtFile: (id) sender; +- (void) browseImportSrtFileDone: (NSSavePanel *) sheet + returnCode: (int) returnCode contextInfo: (void *) contextInfo; - (IBAction) showPicturePanel: (id) sender; +- (void) picturePanelFullScreen; +- (void) picturePanelWindowed; +- (IBAction) showPreviewWindow: (id) sender; +- (void)pictureSettingsDidChange; - (IBAction) calculatePictureSizing: (id) sender; - (IBAction) openMainWindow: (id) sender; +/* Queue File Stuff */ +- (void) loadQueueFile; +- (NSDictionary *)createQueueFileItem; +- (void)saveQueueFileItem; +- (void) incrementQueueItemDone:(int) queueItemDoneIndexNum; +- (void) performNewQueueScan:(NSString *) scanPath scanTitleNum: (int) scanTitleNum; +- (void) processNewQueueEncode; +- (void) clearQueueEncodedItems; +/* Queue Editing */ +- (IBAction)applyQueueSettingsToMainWindow:(id)sender; +- (IBAction)rescanQueueItemToMainWindow:(NSString *) scanPath scanTitleNum: (int) scanTitleNum selectedQueueItem: (int) selectedQueueItem; + + +- (void) removeQueueFileItem:(int) queueItemToRemove; +- (void) clearQueueAllItems; +- (void)moveObjectsInQueueArray:(NSMutableArray *)array fromIndexes:(NSIndexSet *)indexSet toIndex:(NSUInteger)insertIndex; +- (void)getQueueStats; +- (void)setQueueEncodingItemsAsPending; - (IBAction) addToQueue: (id) sender; - (void) overwriteAddToQueueAlertDone: (NSWindow *) sheet returnCode: (int) returnCode contextInfo: (void *) contextInfo; @@ -258,13 +327,11 @@ - (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) doRip; - (IBAction) Cancel: (id) sender; - (void) doCancelCurrentJob; - +- (void) doCancelCurrentJobAndStop; - (IBAction) Pause: (id) sender; - (IBAction) calculateBitrate: (id) sender; @@ -291,14 +358,24 @@ - (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; - +- (void) checkBuiltInsForUpdates; /* We use this to actually select the preset and act accordingly */ - (IBAction)selectPreset:(id)sender; +/* Export / Import Presets */ +- (IBAction) browseExportPresetFile: (id) sender; +- (void) browseExportPresetFileDone: (NSSavePanel *) sheet + returnCode: (int) returnCode contextInfo: (void *) contextInfo; + +- (IBAction) browseImportPresetFile: (id) sender; +- (void) browseImportPresetDone: (NSSavePanel *) sheet + returnCode: (int) returnCode contextInfo: (void *) contextInfo; + /* Manage User presets */ - (void) loadPresets; - (IBAction) customSettingUsed: (id) sender; - (IBAction) showAddPresetPanel: (id) sender; +- (IBAction) addPresetPicDropdownChanged: (id) sender; - (IBAction) closeAddPresetPanel: (id) sender; - (NSDictionary *)createPreset; @@ -307,6 +384,7 @@ - (IBAction)setDefaultPreset:(id)sender; - (IBAction)selectDefaultPreset:(id)sender; - (void) savePreset; +- (void)sortPresets; - (IBAction)addFactoryPresets:(id)sender; - (IBAction)deleteFactoryPresets:(id)sender; - (IBAction)addUserPreset:(id)sender; @@ -315,13 +393,32 @@ - (IBAction)deletePreset:(id)sender; - (IBAction)getDefaultPresets:(id)sender; - - // Growl methods +-(void)sendToMetaX:(NSString *) filePath; +// Growl methods - (NSDictionary *) registrationDictionaryForGrowl; --(IBAction)showGrowlDoneNotification:(id)sender; +-(void)showGrowlDoneNotification:(NSString *) filePath; - (IBAction)showDebugOutputPanel:(id)sender; - (void)setupToolbar; +- (void) prepareJobForPreview; - (void) remindUserOfSleepOrShutdown; + +- (void)moveObjectsInPresetsArray:(NSMutableArray *)array fromIndexes:(NSIndexSet *)indexSet toIndex:(NSUInteger)insertIndex; + +- (int) hbInstances; + +// Chapter files methods +- (IBAction) browseForChapterFile: (id) sender; +- (void) browseForChapterFileDone: (NSOpenPanel *) sheet + returnCode: (int) returnCode contextInfo: (void *) contextInfo; + +- (IBAction) browseForChapterFileSave: (id) sender; +- (void) browseForChapterFileSaveDone: (NSSavePanel *) sheet + returnCode: (int) returnCode contextInfo: (void *) contextInfo; + ++ (unsigned int) maximumNumberOfAllowedAudioTracks; +@property (nonatomic, assign) BOOL hasValidPresetSelected; +- (IBAction) addAllAudioTracks: (id) sender; + @end