/* $Id: PictureController.h,v 1.6 2005/04/14 20:40:05 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. */
-#include <Cocoa/Cocoa.h>
+#import <Cocoa/Cocoa.h>
-#include "hb.h"
-#include "PictureGLView.h"
+#include "hb.h"
-@interface PictureController : NSObject
+@class HBController;
+@class PreviewController;
+
+
+
+//#define HB_NUM_HBLIB_PICTURES 20 // # of preview pictures libhb should generate
+
+@interface PictureController : NSWindowController
{
hb_handle_t * fHandle;
hb_title_t * fTitle;
- bool fHasQE;
- uint8_t * fBuffer;
- int fBufferSize;
- uint8_t * fTexBuf[2];
- int fTexBufSize;
+ HBController *fHBController;
+ PreviewController *fPreviewController; // reference to HBController
+
+ IBOutlet NSWindow * fPictureWindow;
+
+ IBOutlet NSTabView * fSizeFilterView;
+ IBOutlet NSTabViewItem * fSizeTabView;
+ IBOutlet NSTabViewItem * fFilterTabView;
+
+ /* Picture Sizing */
+
+ NSMutableDictionary * fPicturePreviews; // NSImages, one for each preview libhb creates, created lazily
int fPicture;
- IBOutlet HBPictureGLView * fPictureGLView;
+
+ IBOutlet NSBox * fPictureSizeBox;
+ IBOutlet NSBox * fPictureCropBox;
+
+ IBOutlet NSTextField * fWidthLabel;
IBOutlet NSTextField * fWidthField;
IBOutlet NSStepper * fWidthStepper;
IBOutlet NSTextField * fHeightField;
IBOutlet NSStepper * fHeightStepper;
+ IBOutlet NSTextField * fRatioLabel;
+ IBOutlet NSTextField * fRatioLabel2; // shown for capuj
IBOutlet NSButton * fRatioCheck;
IBOutlet NSMatrix * fCropMatrix;
IBOutlet NSTextField * fCropTopField;
IBOutlet NSStepper * fCropLeftStepper;
IBOutlet NSTextField * fCropRightField;
IBOutlet NSStepper * fCropRightStepper;
- IBOutlet NSButton * fDeinterlaceCheck;
- IBOutlet NSButton * fEffectsCheck;
- IBOutlet NSButton * fPrevButton;
- IBOutlet NSButton * fNextButton;
+
+ IBOutlet NSTextField * fModulusLabel;
+ IBOutlet NSPopUpButton * fModulusPopUp;
+ /* linkers for capuj */
+ IBOutlet NSBox * fStorageLinkBox;
+ IBOutlet NSSlider * fStorageLinkSlider;
+ IBOutlet NSTextField * fStorageLinkParLabel;
+ IBOutlet NSTextField * fStorageLinkDisplayLabel;
+
+ IBOutlet NSSlider * fParLinkSlider;
+ IBOutlet NSTextField * fParLinkStorageLabel;
+ IBOutlet NSTextField * fParLinkDisplayLabel;
+
+ IBOutlet NSSlider * fDisplayLinkSlider;
+ IBOutlet NSTextField * fDisplayLinkStorageLabel;
+ IBOutlet NSTextField * fDisplayLinkParLabel;
+
+
+ IBOutlet NSTextField * fDisplayWidthField;
+ IBOutlet NSTextField * fDisplayWidthLabel;
+
+ IBOutlet NSTextField * fParWidthField;
+ IBOutlet NSTextField * fParHeightField;
+ IBOutlet NSTextField * fParWidthLabel;
+ IBOutlet NSTextField * fParHeightLabel;
+
+ /* for now we setup some values to remember our pars and dars
+ * from scan
+ */
+ float titleDarWidth;
+ float titleDarHeight;
+
+ int titleParWidth;
+ int titleParHeight;
+ float dar;
+ IBOutlet NSButton * fResetParDarButton;
+
+ IBOutlet NSPopUpButton * fAnamorphicPopUp;
+ IBOutlet NSTextField * fSizeInfoField;
+
+ IBOutlet NSButton * fPreviewOpenButton;
+ IBOutlet NSButton * fPictureFiltersOpenButton;
+
+ int MaxOutputWidth;
+ int MaxOutputHeight;
+ BOOL autoCrop;
+
+ int output_width, output_height, output_par_width, output_par_height;
+ int display_width;
+
+ int modulus;
+
+ /* used to track the previous state of the keep aspect
+ ratio checkbox when turning anamorphic on, so it can be
+ returned to the previous state when anamorphic is turned
+ off */
+ BOOL keepAspectRatioPreviousState;
+
+
+ /* Video Filters */
+
+ IBOutlet NSBox * fPictureFilterBox;
+
+ IBOutlet NSBox * fDetelecineBox;
+ IBOutlet NSPopUpButton * fDetelecinePopUp;
+ IBOutlet NSTextField * fDetelecineField;
+
+ IBOutlet NSBox * fDecombDeinterlaceBox;
+ IBOutlet NSSlider * fDecombDeinterlaceSlider;
+
+ IBOutlet NSBox * fDecombBox;
+ IBOutlet NSPopUpButton * fDecombPopUp;
+ IBOutlet NSTextField * fDecombField;
+
+ IBOutlet NSBox * fDeinterlaceBox;
+ IBOutlet NSPopUpButton * fDeinterlacePopUp;
+ IBOutlet NSTextField * fDeinterlaceField;
+
+ IBOutlet NSBox * fDenoiseBox;
+ IBOutlet NSPopUpButton * fDenoisePopUp;
+ IBOutlet NSTextField * fDenoiseField;
+
+
+ IBOutlet NSBox * fDeblockBox; // also holds the grayscale box
+ IBOutlet NSButton * fDeblockCheck;
+ IBOutlet NSTextField * fDeblockField;
+ IBOutlet NSSlider * fDeblockSlider;
+
+ IBOutlet NSButton * fGrayscaleCheck;
+
IBOutlet NSTextField * fInfoField;
+
+
+
+ struct {
+ int detelecine;
+ int deinterlace;
+ int decomb;
+ int usedecomb;
+ int denoise;
+ int deblock;
+ int grayscale;
+ } fPictureFilterSettings;
+
}
+- (id)init;
- (void) SetHandle: (hb_handle_t *) handle;
- (void) SetTitle: (hb_title_t *) title;
-- (void) Display: (int) anim;
+- (void)setHBController: (HBController *)controller;
+- (IBAction) showPictureWindow: (id)sender;
+- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem;
+- (IBAction) resizeInspectorForTab: (id)sender;
+- (IBAction) showPreviewWindow: (id)sender;
+
+
+- (IBAction) adjustSizingDisplay: (id) sender;
+
- (IBAction) SettingsChanged: (id) sender;
-- (IBAction) PreviousPicture: (id) sender;
-- (IBAction) NextPicture: (id) sender;
-- (IBAction) ClosePanel: (id) sender;
+
+- (NSString*) getPictureSizeInfoString;
+- (void)reloadStillPreview;
+
+- (BOOL) autoCrop;
+- (void) setAutoCrop: (BOOL) setting;
+
+- (IBAction)showPreviewPanel: (id)sender forTitle: (hb_title_t *)title;
+- (IBAction) storageLinkChanged: (id) sender;
+- (IBAction) parLinkChanged: (id) sender;
+- (IBAction) displayLinkChanged: (id) sender;
+
+- (void) setToWindowedMode;
+
+/* Filter Actions */
+- (void) setInitialPictureFilters;
+- (IBAction) FilterSettingsChanged: (id) sender;
+- (IBAction) adjustFilterDisplay: (id) sender;
+- (IBAction) modeDecombDeinterlaceSliderChanged: (id) sender;
+- (IBAction) deblockSliderChanged: (id) sender;
+
+- (int) detelecine;
+- (NSString*) detelecineCustomString;
+- (void) setDetelecine: (int) setting;
+- (void) setDetelecineCustomString: (NSString*) string;
+
+- (int) useDecomb;
+- (void) setUseDecomb: (int) setting;
+
+- (int) decomb;
+- (NSString*) decombCustomString;
+- (void) setDecomb: (int) setting;
+- (void) setDecombCustomString: (NSString*) string;
+
+- (int) deinterlace;
+- (NSString*) deinterlaceCustomString;
+- (void) setDeinterlace: (int) setting;
+- (void) setDeinterlaceCustomString: (NSString*) string;
+
+- (int) denoise;
+- (NSString*) denoiseCustomString;
+- (void) setDenoise: (int) setting;
+- (void) setDenoiseCustomString: (NSString*) string;
+
+- (int) deblock;
+- (void) setDeblock: (int) setting;
+
+- (int) grayscale;
+- (void) setGrayscale: (int) setting;
+
+
@end
+