OSDN Git Service

MacGui: The textarea was misaligned of 1px to the left.
[handbrake-jp/handbrake-jp-git.git] / macosx / Controller.h
index 4994e81..b3c425e 100644 (file)
@@ -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: <http://handbrake.m0k.org/>.
+   Homepage: <http://handbrake.fr/>.
    It may be used under the terms of the GNU General Public License. */
 
 #import <Cocoa/Cocoa.h>
 
 #import "ChapterTitles.h"
 #import "PictureController.h"
+#import "HBPreviewController.h"
 #import "HBQueueController.h"
-#import "MVMenuButton.h"
 #import "HBAdvancedController.h"
 #import "HBPreferencesController.h"
 #import "HBPresets.h"
+
 @class HBOutputPanelController;
 
-@interface HBController : NSObject <GrowlApplicationBridgeDelegate>
+/* 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 <GrowlApplicationBridgeDelegate>
 {
     IBOutlet NSWindow            * fWindow;
-    NSToolbar                    * toolbar;
-    
+
     /* Main Menu Outlets */
     NSMenuItem                   * fOpenSourceTitleMMenu;
     
     IBOutlet NSButton             * fScanSrcTitleCancelButton;
     IBOutlet NSButton             * fScanSrcTitleOpenButton;
     
-    /* Picture panel */
+    /* Picture Settings */
     PictureController            * fPictureController;
     
+    /* Picture Preview */
+    PreviewController            * fPreviewController;
+    
     /* Advanced options tab */
     HBAdvancedController         * fAdvancedOptions;
        IBOutlet NSBox               * fAdvancedView;
@@ -67,8 +78,7 @@
     /* Destination box */
     IBOutlet NSTextField         * fDstFormatField;
        IBOutlet NSPopUpButton       * fDstFormatPopUp;
-       IBOutlet NSTextField         * fDstCodecsField;
-    IBOutlet NSPopUpButton       * fDstCodecsPopUp;
+       
     IBOutlet NSTextField         * fDstFile1Field;
     IBOutlet NSTextField         * fDstFile2Field;
     IBOutlet NSButton            * fDstBrowseButton;
@@ -86,6 +96,8 @@
     IBOutlet NSTextField         * fVidEncoderField;
     IBOutlet NSPopUpButton       * fVidEncoderPopUp;
     IBOutlet NSTextField         * fVidQualityField;
+    IBOutlet NSTextField         * fVidQualityRFLabel;
+    IBOutlet NSTextField         * fVidQualityRFField;
     IBOutlet NSMatrix            * fVidQualityMatrix;
     IBOutlet NSButtonCell        * fVidTargetCell;
     IBOutlet NSTextField         * fVidTargetSizeField;
     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;
        IBOutlet NSButton            * fSubForcedCheck;
        
     /* Audio box */
-    IBOutlet NSTextField         * fAudLang1Field;
+    /* Track Labels */
+    IBOutlet NSTextField         * fAudSourceLabel;
+    IBOutlet NSTextField         * fAudCodecLabel;
+    IBOutlet NSTextField         * fAudMixdownLabel;
+    IBOutlet NSTextField         * fAudSamplerateLabel;
+    IBOutlet NSTextField         * fAudBitrateLabel;
+    IBOutlet NSTextField         * fAudDrcLabel;
+    
+    IBOutlet NSTextField         * fAudTrack1Label;
+    IBOutlet NSTextField         * fAudTrack2Label;
+    IBOutlet NSTextField         * fAudTrack3Label;
+    IBOutlet NSTextField         * fAudTrack4Label;
+    
+    /* Source Audio PopUps */
     IBOutlet NSPopUpButton       * fAudLang1PopUp;
-    IBOutlet NSTextField         * fAudLang2Field;
     IBOutlet NSPopUpButton       * fAudLang2PopUp;
-       /* New Audio Mix PopUps */
-       /* Track info */
-    IBOutlet NSTextField         * fAudTrack1MixLabel;
+    IBOutlet NSPopUpButton       * fAudLang3PopUp;
+    IBOutlet NSPopUpButton       * fAudLang4PopUp;
+    
+    /* Codec Popups */
+    IBOutlet NSPopUpButton       * fAudTrack1CodecPopUp;
+    IBOutlet NSPopUpButton       * fAudTrack2CodecPopUp;
+    IBOutlet NSPopUpButton       * fAudTrack3CodecPopUp;
+    IBOutlet NSPopUpButton       * fAudTrack4CodecPopUp;
+    
+       /* Mixdown PopUps */
        IBOutlet NSPopUpButton       * fAudTrack1MixPopUp;
-    IBOutlet NSTextField         * fAudTrack2MixLabel;
-       IBOutlet NSPopUpButton       * fAudTrack2MixPopUp;
+    IBOutlet NSPopUpButton       * fAudTrack2MixPopUp;
+    IBOutlet NSPopUpButton       * fAudTrack3MixPopUp;
+    IBOutlet NSPopUpButton       * fAudTrack4MixPopUp;
        
-    /* 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;
+    /* Samplerate PopUps */
+       IBOutlet NSPopUpButton       * fAudTrack1RatePopUp;
+    IBOutlet NSPopUpButton       * fAudTrack2RatePopUp;
+    IBOutlet NSPopUpButton       * fAudTrack3RatePopUp;
+    IBOutlet NSPopUpButton       * fAudTrack4RatePopUp;
+    
+    /* Bitrate PopUps */
+    IBOutlet NSPopUpButton       * fAudTrack1BitratePopUp;
+    IBOutlet NSPopUpButton       * fAudTrack2BitratePopUp;
+    IBOutlet NSPopUpButton       * fAudTrack3BitratePopUp;
+    IBOutlet NSPopUpButton       * fAudTrack4BitratePopUp;
+    
+    /* Dynamic Range Compression */
+    IBOutlet NSSlider            * fAudTrack1DrcSlider;
+    IBOutlet NSTextField         * fAudTrack1DrcField;
+    IBOutlet NSSlider            * fAudTrack2DrcSlider;
+    IBOutlet NSTextField         * fAudTrack2DrcField;
+    IBOutlet NSSlider            * fAudTrack3DrcSlider;
+    IBOutlet NSTextField         * fAudTrack3DrcField;
+    IBOutlet NSSlider            * fAudTrack4DrcSlider;
+    IBOutlet NSTextField         * fAudTrack4DrcField;
     
     /* Chapters box */
     IBOutlet NSButton            * fCreateChapterMarkers;
        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         * fPresetNewDesc;
        IBOutlet NSPopUpButton       * fPresetNewPicSettingsPopUp;
     IBOutlet NSButton            * fPresetNewPicFiltersCheck;
+    IBOutlet NSButton            * fPresetNewFolderCheck;
        IBOutlet NSTextField         * fPresetSelectedDisplay;
        
        NSString                     * AppSupportDirectory;
        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 */
+    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;
+    
+    
     /* 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;
 }
-- (void) writeToActivityLog:(char *) format, ...;
+
+- (void) writeToActivityLog:(const char *) format, ...;
 - (IBAction) browseSources: (id) sender;
 - (void) browseSourcesDone: (NSOpenPanel *) sheet
                 returnCode: (int) returnCode contextInfo: (void *) contextInfo;
 - (void) performScan:(NSString *) scanPath scanTitleNum: (int) scanTitleNum;
 - (IBAction) showNewScan: (id) sender;
 
-- (void)     TranslateStrings;
-
 - (void)     updateUI: (NSTimer *) timer;
 - (void)     enableUI: (bool) enable;
 
 - (IBAction) chapterPopUpChanged: (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) audioAddAudioTrackCodecs: (id)sender;
+- (IBAction) audioCodecsPopUpChanged: (id) sender;
 - (IBAction) setEnabledStateOfAudioMixdownControls: (id) sender;
 - (IBAction) addAllAudioTracksToPopUp: (id) sender;
 - (IBAction) selectAudioTrackInPopUp: (id) sender searchPrefixString: (NSString *) searchPrefixString selectIndexIfNotFound: (int) selectIndexIfNotFound;
 - (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;
+- (void) setupQualitySlider;
+
 - (IBAction) audioDRCSliderChanged: (id) sender;
 
 - (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;
+- (IBAction)applyQueueSettings:(id)sender;
+- (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;
 
 - (IBAction) Cancel: (id) sender;
 - (void)     doCancelCurrentJob;
-
+- (void) doCancelCurrentJobAndStop;
 - (IBAction) Pause: (id) sender;
 
 - (IBAction) calculateBitrate: (id) sender;
 - (IBAction)setDefaultPreset:(id)sender;
 - (IBAction)selectDefaultPreset:(id)sender;
 - (void) savePreset;
+- (void)sortPresets;
 - (IBAction)addFactoryPresets:(id)sender;
 - (IBAction)deleteFactoryPresets:(id)sender;
 - (IBAction)addUserPreset:(id)sender;
 - (IBAction)deletePreset:(id)sender;
 - (IBAction)getDefaultPresets:(id)sender;
 
-
+-(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;
 @end