OSDN Git Service

libhb: Fix linux compilation. Only set the pthread mutex type on cygwin since it...
[handbrake-jp/handbrake-jp-git.git] / macosx / Controller.h
index 22ce107..60f6ce0 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 "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;
     
@@ -67,8 +72,7 @@
     /* Destination box */
     IBOutlet NSTextField         * fDstFormatField;
        IBOutlet NSPopUpButton       * fDstFormatPopUp;
-       IBOutlet NSTextField         * fDstCodecsField;
-    IBOutlet NSPopUpButton       * fDstCodecsPopUp;
+       
     IBOutlet NSTextField         * fDstFile1Field;
     IBOutlet NSTextField         * fDstFile2Field;
     IBOutlet NSButton            * fDstBrowseButton;
        IBOutlet NSTextField         * fPicLabelAutoCrop;
     IBOutlet NSTextField         * fPicLabelDetelecine;
        IBOutlet NSTextField         * fPicLabelDeinterlace;
+    IBOutlet NSTextField         * fPicLabelDecomb;
     IBOutlet NSTextField         * fPicLabelDenoise;
     IBOutlet NSTextField         * fPicLabelDeblock;
        IBOutlet NSTextField         * fPicSettingDeinterlace;
+    IBOutlet NSTextField         * fPicSettingDecomb;
        IBOutlet NSTextField         * fPicSettingARkeep;
        IBOutlet NSTextField         * fPicSettingPAR;
        IBOutlet NSTextField         * fPicSettingAutoCrop;
        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;
     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;
         
        int                            presetHbDefault; // this is 1 in "Default" preset key
        int                            presetUserDefault;// this is 2 in "Default" preset key
+    int                        presetCurrentBuiltInCount; // keeps track of the current number of built in presets
     IBOutlet NSPanel             * fAddPresetPanel;
        /* new 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;
+    
+    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;
 }
 - (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;
+- (void) shouldEnableHttpMp4CheckBox: (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) 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:(unsigned)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)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) remindUserOfSleepOrShutdown;
+
+- (void)moveObjectsInPresetsArray:(NSMutableArray *)array fromIndexes:(NSIndexSet *)indexSet toIndex:(unsigned)insertIndex;
 @end