OSDN Git Service

MacGui: "Ritsuka Bar" toolbar initial implementation
[handbrake-jp/handbrake-jp-git.git] / macosx / Controller.h
index afa2fb7..be931df 100644 (file)
-/* $Id: Controller.h,v 1.5 2003/11/09 19:43:06 titer Exp $
+/* $Id: Controller.h,v 1.35 2005/08/01 14:29:50 titer Exp $
 
    This file is part of the HandBrake source code.
    Homepage: <http://handbrake.m0k.org/>.
    It may be used under the terms of the GNU General Public License. */
 
 #include <Cocoa/Cocoa.h>
+#include <Growl/Growl.h>
 
-#include "HandBrake.h"
-#include "PictureGLView.h"
-#include "TargetSizeField.h"
+#include "hb.h"
 
-@interface HBController : NSObject
 
-{
-    bool                           fDie;
-    
-    IBOutlet NSWindow            * fWindow;
+#include "ChapterTitles.h"
+#include "ScanController.h"
+#include "PictureController.h"
+#include "QueueController.h"
 
-    /* Scan view */
-    IBOutlet NSView              * fScanView;
-    IBOutlet NSMatrix            * fScanMatrix;
-    IBOutlet NSPopUpButton       * fDVDPopUp;
-    IBOutlet NSTextField         * fDVDFolderField;
-    IBOutlet NSButton            * fScanBrowseButton;
-    IBOutlet NSTextField         * fScanStatusField;
-    IBOutlet NSProgressIndicator * fScanProgress;
-    IBOutlet NSButton            * fScanButton;
+@class HBOutputPanelController;
 
-    IBOutlet NSView              * fTempView;
-
-    /* Rip view */
-    IBOutlet NSView              * fRipView;
+@interface HBController : NSObject <GrowlApplicationBridgeDelegate>
 
+{
+    IBOutlet NSWindow            * fWindow;
+       
+    /* Scan panel */
+       IBOutlet ScanController      * fScanController;
+    IBOutlet NSPanel             * fScanPanel;
+       
+    /* Picture panel */
+    IBOutlet PictureController   * fPictureController;
+    IBOutlet NSPanel             * fPicturePanel;
+       
+    /* Queue panel */
+    IBOutlet QueueController     * fQueueController;
+    IBOutlet NSPanel             * fQueuePanel;
+    IBOutlet NSTextField         * fQueueStatus;
+    //IBOutlet NSButton            * fQueueAddButton;
+    //IBOutlet NSButton            * fQueueShowButton;
+       
+    /* Source box */
+    IBOutlet NSTextField         * fSrcDVD1Field;
+    IBOutlet NSTextField         * fSrcDVD2Field;
+    IBOutlet NSTextField         * fSrcTitleField;
+    IBOutlet NSPopUpButton       * fSrcTitlePopUp;
+    IBOutlet NSTextField         * fSrcChapterField;
+    IBOutlet NSPopUpButton       * fSrcChapterStartPopUp;
+    IBOutlet NSTextField         * fSrcChapterToField;
+    IBOutlet NSPopUpButton       * fSrcChapterEndPopUp;
+    IBOutlet NSTextField         * fSrcDuration1Field;
+    IBOutlet NSTextField         * fSrcDuration2Field;
+       
+    /* Destination box */
+    IBOutlet NSTextField         * fDstFormatField;
+       IBOutlet NSPopUpButton       * fDstFormatPopUp;
+       IBOutlet NSButton            * fDstMpgLargeFileCheck;
+    IBOutlet NSTextField         * fDstCodecsField;
+    IBOutlet NSPopUpButton       * fDstCodecsPopUp;
+    IBOutlet NSTextField         * fDstFile1Field;
+    IBOutlet NSTextField         * fDstFile2Field;
+    IBOutlet NSButton            * fDstBrowseButton;
+       
     /* Video box */
-    IBOutlet NSPopUpButton       * fTitlePopUp;
-    IBOutlet NSPopUpButton       * fVideoCodecPopUp;
-    IBOutlet NSMatrix            * fVideoMatrix;
-    IBOutlet NSTextField         * fCustomBitrateField;
-    IBOutlet HBTargetSizeField   * fTargetSizeField;
-    IBOutlet NSButton            * fTwoPassCheck;
-    IBOutlet NSButton            * fCropButton;
-
+    IBOutlet NSTextField         * fVidRateField;
+    IBOutlet NSPopUpButton       * fVidRatePopUp;
+    IBOutlet NSTextField         * fVidEncoderField;
+    IBOutlet NSPopUpButton       * fVidEncoderPopUp;
+    IBOutlet NSTextField         * fVidQualityField;
+    IBOutlet NSMatrix            * fVidQualityMatrix;
+    IBOutlet NSButtonCell        * fVidTargetCell;
+    IBOutlet NSTextField         * fVidTargetSizeField;
+    IBOutlet NSButtonCell        * fVidBitrateCell;
+    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         * 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         * fPicSettingARkeep;
+       IBOutlet NSTextField         * fPicSettingPAR;
+       IBOutlet NSTextField         * fPicSettingDeinterlace;
+       IBOutlet NSTextField         * fPicSettingARkeepDsply;
+       IBOutlet NSTextField         * fPicSettingPARDsply;
+       IBOutlet NSTextField         * fPicSettingAutoCropLabel;
+       IBOutlet NSTextField         * fPicSettingAutoCrop;
+       IBOutlet NSTextField         * fPicSettingAutoCropDsply;
+       IBOutlet NSTextField         * fPicSettingDeinterlaceDsply;
+       IBOutlet NSTextField         * fPicLabelAnamorphic;
+       IBOutlet NSTextField         * fPicLabelPAROutp;
+       IBOutlet NSTextField         * fPicLabelPAROutputX;
+       IBOutlet NSTextField         * fPicSettingPARWidth;
+       IBOutlet NSTextField         * fPicSettingPARHeight;
+    /* Picture variables */
+       int                        PicOrigOutputWidth;
+       int                        PicOrigOutputHeight;
+       
+    /* Subtitles box */
+    IBOutlet NSTextField         * fSubField;
+    IBOutlet NSPopUpButton       * fSubPopUp;
+       
     /* Audio box */
-    IBOutlet NSPopUpButton       * fLanguagePopUp;
-    IBOutlet NSPopUpButton       * fSecondaryLanguagePopUp;
-    IBOutlet NSPopUpButton       * fAudioCodecPopUp;
-    IBOutlet NSPopUpButton       * fAudioBitratePopUp;
-
-    /* Destination box */
-    IBOutlet NSPopUpButton       * fFileFormatPopUp;
-    IBOutlet NSTextField         * fFileField;
-    IBOutlet NSButton            * fFileBrowseButton;
-
+    IBOutlet NSTextField         * fAudLang1Field;
+    IBOutlet NSPopUpButton       * fAudLang1PopUp;
+    IBOutlet NSTextField         * fAudLang2Field;
+    IBOutlet NSPopUpButton       * fAudLang2PopUp;
+       /* New Audio Mix PopUps */
+       IBOutlet NSTextField         * fAudTrack1MixLabel;
+       IBOutlet NSPopUpButton       * fAudTrack1MixPopUp;
+    IBOutlet NSTextField         * fAudTrack2MixLabel;
+       IBOutlet NSPopUpButton       * fAudTrack2MixPopUp;
+       
+       IBOutlet NSTextField         * fAudRateField;
+    IBOutlet NSPopUpButton       * fAudRatePopUp;
+    IBOutlet NSTextField         * fAudBitrateField;
+    IBOutlet NSPopUpButton       * fAudBitratePopUp;
+    
+    /* Chapters box */
+    IBOutlet NSButton            * fCreateChapterMarkers;
+    IBOutlet NSTableView         * fChapterTable;
+       ChapterTitles       * fChapterTitlesDelegate;
+       
     /* Bottom */
-    IBOutlet NSTextField         * fRipStatusField;
-    IBOutlet NSTextField         * fRipInfoField;
-    IBOutlet NSProgressIndicator * fRipProgress;
-    IBOutlet NSButton            * fSuspendButton;
+    IBOutlet NSButton            * fPictureButton;
+    IBOutlet NSTextField         * fStatusField;
+    IBOutlet NSProgressIndicator * fRipIndicator;
+    IBOutlet NSButton            * fShowQuButton;
+    IBOutlet NSButton            * fAddToQuButton;
+    IBOutlet NSButton            * fPauseButton;
     IBOutlet NSButton            * fRipButton;
-
-    /* "Done" alert panel */
-    IBOutlet NSPanel             * fDonePanel;
-
-    /* Crop & scale panel */
-    IBOutlet NSPanel             * fPicturePanel;
-    IBOutlet HBPictureGLView     * fPictureGLView;
-    IBOutlet NSTextField         * fWidthField;
-    IBOutlet NSStepper           * fWidthStepper;
-    IBOutlet NSButton            * fDeinterlaceCheck;
-    IBOutlet NSTextField         * fTopField;
-    IBOutlet NSStepper           * fTopStepper;
-    IBOutlet NSTextField         * fBottomField;
-    IBOutlet NSStepper           * fBottomStepper;
-    IBOutlet NSTextField         * fLeftField;
-    IBOutlet NSStepper           * fLeftStepper;
-    IBOutlet NSTextField         * fRightField;
-    IBOutlet NSStepper           * fRightStepper;
-    IBOutlet NSTextField         * fInfoField;
-    IBOutlet NSButton            * fOpenGLCheck;
-    IBOutlet NSButton            * fPreviousButton;
-    IBOutlet NSButton            * fNextButton;
-    int                            fPicture;
-
-    HBHandle                     * fHandle;
-    HBList                       * fTitleList;
+       
+       /* 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;
+    
+       /* User Preset variables here fPresetNewDesc*/
+       
+       IBOutlet NSDrawer            * fPresetDrawer;
+       IBOutlet NSTextField         * fPresetNewName;
+       IBOutlet NSTextField         * fPresetNewDesc;
+       IBOutlet NSPopUpButton       * fPresetNewPicSettingsPopUp;
+       IBOutlet NSTextField         * fPresetSelectedDisplay;
+       
+       NSString                     * AppSupportDirectory;
+       NSString                     * UserPresetsFile;
+       NSString                     * x264ProfilesFile;
+       NSMutableArray               * UserPresets;
+       NSMutableArray               * x264Profiles;
+       NSMutableArray               * UserPresetssortedArray;
+       NSMutableDictionary          * chosenPreset;
+    int                            curUserPresetChosenNum;
+       
+    IBOutlet NSPanel             * fAddPresetPanel;
+       IBOutlet NSTableView         * tableView;
+       IBOutlet NSButton            * fPresetsAdd;
+       IBOutlet NSButton            * fPresetsDelete;
+    hb_handle_t                  * fHandle;
+       hb_title_t                   * fTitle;
+    /* integer to set to determine the previous state
+               of encode 0==idle, 1==encoding, 2==cancelled*/
+    int                            fEncodeState;
+       int                            currentScanCount;
+       NSString                      * currentSource;
+       HBOutputPanelController *outputPanel;
+       
+       BOOL                         startButtonEnabled;
+    BOOL                         pauseButtonEnabled;
+    BOOL                         AddToQueueButtonEnabled;
+       BOOL                         stopOrStart;
+       BOOL                         resumeOrPause;
 }
 
-- (IBAction) ScanMatrixChanged: (id) sender;
-- (IBAction) BrowseDVD: (id) sender;
-- (void)     BrowseDVDDone: (NSOpenPanel *) sheet
-    returnCode: (int) returnCode contextInfo: (void *) contextInfo;
-- (IBAction) Scan: (id) sender;
+- (void)     TranslateStrings;
+
+- (void)     UpdateUI: (NSTimer *) timer;
+- (void)     EnableUI: (bool) enable;
+- (IBAction) ShowNewScan: (id) sender;
+- (IBAction) ShowScanPanel: (id) sender;
 
 - (IBAction) TitlePopUpChanged: (id) sender;
-- (IBAction) VideoMatrixChanged: (id) sender;
-- (IBAction) AudioPopUpChanged: (id) sender;
+- (IBAction) ChapterPopUpChanged: (id) sender;
+
+- (IBAction) FormatPopUpChanged: (id) sender;
+- (IBAction) CodecsPopUpChanged: (id) sender;
+- (IBAction) EncoderPopUpChanged: (id) sender;
+- (IBAction) TwoPassCheckboxChanged: (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) VideoMatrixChanged: (id) sender;
+- (IBAction) QualitySliderChanged: (id) sender;
+
 - (IBAction) ShowPicturePanel: (id) sender;
-- (IBAction) ClosePanel: (id) sender;
+- (IBAction) CalculatePictureSizing: (id) sender;
+- (IBAction) OpenMainWindow: (id) sender;
+
+- (IBAction) AddToQueue: (id) sender;
+- (IBAction) ShowQueuePanel: (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;
 - (IBAction) Cancel: (id) sender;
-- (IBAction) Suspend: (id) sender;
-- (IBAction) Resume: (id) sender;
+- (void)     _Cancel: (NSWindow *) sheet returnCode: (int) returnCode
+    contextInfo: (void *) contextInfo;
+- (IBAction) Pause: (id) sender;
+
+- (IBAction) CalculateBitrate: (id) sender;
+- (void) controlTextDidBeginEditing: (NSNotification *) notification;
+- (void) controlTextDidEndEditing: (NSNotification *) notification;
+- (void) controlTextDidChange: (NSNotification *) notification;
 
-- (IBAction) PreviousPicture: (id) sender;
-- (IBAction) NextPicture: (id) sender;
-- (IBAction) UpdatePicture: (id) sender;
+- (IBAction) OpenHomepage: (id) sender;
+- (IBAction) OpenForums:   (id) sender;
+- (IBAction) OpenUserGuide:   (id) sender;
 
-- (void)     UpdateIntf: (NSTimer *) timer;
-- (void)     DetectDrives: (NSNotification *) notification;
+// x264 Advanced Panel Methods
+- (IBAction) X264AdvancedOptionsSet: (id) sender;
+- (IBAction) X264AdvancedOptionsStandardizeOptString: (id) sender;
+- (IBAction) X264AdvancedOptionsSetCurrentSettings: (id) sender;
+- (NSString *)  X264AdvancedOptionsStandardizeOptNames:(NSString *) cleanOptNameString;
+- (IBAction) X264AdvancedOptionsChanged: (id) sender;
 
+// Preset Methods Here
+- (IBAction) CustomSettingUsed: (id) sender;
+- (IBAction) ShowAddPresetPanel: (id) sender;
+- (IBAction) CloseAddPresetPanel: (id) sender;
+- (NSDictionary *)CreatePreset;
+- (NSDictionary *)CreateIpodLowPreset;
+- (NSDictionary *)CreateIpodHighPreset;
+- (NSDictionary *)CreateAppleTVPreset;
+- (NSDictionary *)CreatePSThreePreset;  
+- (NSDictionary *)CreatePSPPreset;
+- (NSDictionary *)CreateNormalPreset;
+- (NSDictionary *)CreateClassicPreset;
+- (NSDictionary *)CreateQuickTimePreset;
+- (NSDictionary *)CreateFilmPreset;
+- (NSDictionary *)CreateTelevisionPreset;
+- (NSDictionary *)CreateAnimationPreset;
+- (NSDictionary *)CreateBedlamPreset;
+- (NSDictionary *)CreateiPhonePreset;
+- (IBAction) RevertPictureSizeToMax:(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;
+
+// Growl methods
+- (NSDictionary *) registrationDictionaryForGrowl;
+-(IBAction)showGrowlDoneNotification:(id)sender;
+- (IBAction)showDebugOutputPanel:(id)sender;
+- (void)setupToolbar;
 @end
+