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 "hb.h"
-#define HB_NUM_HBLIB_PICTURES 10 // hbilb generates 10 preview pictures
+@class HBController;
+@class PreviewController;
+@class PictureFilterController;
-@interface PictureController : NSObject
+
+//#define HB_NUM_HBLIB_PICTURES 20 // # of preview pictures libhb should generate
+
+@interface PictureController : NSWindowController
{
hb_handle_t * fHandle;
hb_title_t * fTitle;
+ HBController *fHBController;
+ PreviewController *fPreviewController; // reference to HBController
+ PictureFilterController *fPictureFilterController;
+
+ IBOutlet NSWindow * fPictureWindow;
NSMutableDictionary * fPicturePreviews; // NSImages, one for each preview libhb creates, created lazily
int fPicture;
- IBOutlet NSPanel * fPicturePanel;
- IBOutlet NSImageView * fPictureView;
- IBOutlet NSBox * fPictureViewArea;
+ IBOutlet NSBox * fPictureSizeBox;
+ IBOutlet NSBox * fPictureCropBox;
IBOutlet NSTextField * fWidthField;
IBOutlet NSStepper * fWidthStepper;
IBOutlet NSTextField * fHeightField;
IBOutlet NSStepper * fCropLeftStepper;
IBOutlet NSTextField * fCropRightField;
IBOutlet NSStepper * fCropRightStepper;
- IBOutlet NSPopUpButton * fDeinterlacePopUp;
- IBOutlet NSButton * fDetelecineCheck;
- IBOutlet NSButton * fVFRCheck;
- IBOutlet NSButton * fDeblockCheck;
- IBOutlet NSPopUpButton * fDenoisePopUp;
+
IBOutlet NSPopUpButton * fAnamorphicPopUp;
- IBOutlet NSButton * fPrevButton;
- IBOutlet NSButton * fNextButton;
- IBOutlet NSTextField * fInfoField;
+ IBOutlet NSTextField * fSizeInfoField;
+ IBOutlet NSButton * fPreviewOpenButton;
+ IBOutlet NSButton * fPictureFiltersOpenButton;
+
int MaxOutputWidth;
int MaxOutputHeight;
BOOL autoCrop;
BOOL allowLooseAnamorphic;
+
int output_width, output_height, output_par_width, output_par_height;
int display_width;
+
/* 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;
-
- struct {
- int detelecine;
- int vfr;
- int deinterlace;
- int denoise;
- int deblock;
- } fPictureFilterSettings;
-
- id delegate;
+ BOOL keepAspectRatioPreviousState;
}
-- (id)initWithDelegate:(id)del;
+- (id)init;
- (void) SetHandle: (hb_handle_t *) handle;
- (void) SetTitle: (hb_title_t *) title;
-- (void) setInitialPictureFilters;
-- (void) displayPreview;
+- (void)setHBController: (HBController *)controller;
+- (IBAction) showPictureWindow: (id)sender;
+- (IBAction) showPreviewWindow: (id)sender;
+- (IBAction) showFilterWindow: (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;
- (BOOL) allowLooseAnamorphic;
- (void) setAllowLooseAnamorphic: (BOOL) setting;
-- (int) detelecine;
-- (void) setDetelecine: (int) setting;
-- (int) vfr;
-- (void) setVFR: (int) setting;
-- (int) deinterlace;
-- (void) setDeinterlace: (int) setting;
-- (int) denoise;
-- (void) setDenoise: (int) setting;
-- (int) deblock;
-- (void) setDeblock: (int) setting;
-
-- (void)showPanelInWindow: (NSWindow *)fWindow forTitle: (hb_title_t *)title;
-- (BOOL) loadMyNibFile;
-
-+ (NSImage *) makeImageForPicture: (int)pictureIndex
- libhb:(hb_handle_t*)handle
- title:(hb_title_t*)title
- removeBorders:(BOOL)removeBorders;
-- (NSImage *) imageForPicture: (int) pictureIndex;
-- (void) purgeImageCache;
-@end
+- (IBAction)showPreviewPanel: (id)sender forTitle: (hb_title_t *)title;
+
+
+- (void) setToFullScreenMode;
+- (void) setToWindowedMode;
+
-@interface NSObject (PictureControllertDelegateMethod)
-- (void)pictureSettingsDidChange;
@end
+