#import <Cocoa/Cocoa.h>
-#include "hb.h"
-/* Needed for Quicktime movie previews */
-#import <QTKit/QTKit.h>
+#include "hb.h"
@class HBController;
+@class PreviewController;
-#define HB_NUM_HBLIB_PICTURES 20 // # of preview pictures libhb should generate
+
+
+//#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; // reference to HBController
+ 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 NSImageView * fPictureView;
- IBOutlet NSBox * fPictureViewArea;
+
+ 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 NSPopUpButton * fDeinterlacePopUp;
- IBOutlet NSButton * fDecombCheck;
- IBOutlet NSButton * fDetelecineCheck;
- IBOutlet NSButton * fDeblockCheck;
- IBOutlet NSTextField * fDeblockField;
- IBOutlet NSSlider * fDeblockSlider;
- IBOutlet NSPopUpButton * fDenoisePopUp;
+
+ 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 NSSlider * fPictureSlider;
- 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;
+
+ 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;
+ BOOL keepAspectRatioPreviousState;
+
- struct {
+ /* 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 delegate;
-
- /* Movie Previews */
- IBOutlet NSButton * fCreatePreviewMovieButton;
- IBOutlet NSButton * fShowPreviewMovieButton;
- NSString * fPreviewMoviePath;
- IBOutlet NSProgressIndicator * fMovieCreationProgressIndicator;
- hb_handle_t * fPreviewLibhb; // private libhb for creating previews
- NSTimer * fLibhbTimer; // timer for retrieving state from libhb
- IBOutlet NSTextField * fPreviewMovieStatusField;
- BOOL play_movie; // flag used to determine whether or not to automatically play the movie when done.
- IBOutlet QTMovieView * fMovieView;
- IBOutlet NSPopUpButton * fPreviewMovieLengthPopUp; // popup of choices for length of preview in seconds
+
}
- (id)init;
- (void) SetTitle: (hb_title_t *) title;
- (void)setHBController: (HBController *)controller;
- (IBAction) showPictureWindow: (id)sender;
+- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem;
+- (IBAction) resizeInspectorForTab: (id)sender;
+- (IBAction) showPreviewWindow: (id)sender;
+- (BOOL) previewFullScreenMode;
+- (IBAction) previewGoWindowed: (id)sender;
-- (void) setInitialPictureFilters;
-- (void) displayPreview;
+- (IBAction) adjustSizingDisplay: (id) sender;
-- (IBAction) SettingsChanged: (id) sender;
-- (IBAction) pictureSliderChanged: (id) sender;
-/* Movie Previews */
-- (void) startReceivingLibhbNotifications;
-- (void) stopReceivingLibhbNotifications;
+- (IBAction) SettingsChanged: (id) sender;
-- (IBAction) createMoviePreview: (id) sender;
-- (void) libhbStateChanged: (hb_state_t &) state;
-- (IBAction) showMoviePreview: (NSString *) path;
-- (IBAction) previewDurationPopUpChanged: (id) sender;
+- (NSString*) getPictureSizeInfoString;
+- (void)reloadStillPreview;
- (BOOL) autoCrop;
- (void) setAutoCrop: (BOOL) setting;
- (BOOL) allowLooseAnamorphic;
- (void) setAllowLooseAnamorphic: (BOOL) setting;
+
+- (IBAction)showPreviewPanel: (id)sender forTitle: (hb_title_t *)title;
+- (IBAction) storageLinkChanged: (id) sender;
+- (IBAction) parLinkChanged: (id) sender;
+- (IBAction) displayLinkChanged: (id) sender;
+- (void) setToFullScreenMode;
+- (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;
-- (int) deinterlace;
-- (void) setDeinterlace: (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;
-- (IBAction)showPreviewPanel: (id)sender forTitle: (hb_title_t *)title;
+- (int) grayscale;
+- (void) setGrayscale: (int) setting;
+
+
-+ (NSImage *) makeImageForPicture: (int)pictureIndex
- libhb:(hb_handle_t*)handle
- title:(hb_title_t*)title
- removeBorders:(BOOL)removeBorders;
-- (NSImage *) imageForPicture: (int) pictureIndex;
-- (void) purgeImageCache;
@end