/* $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"
+/* Needed for Quicktime movie previews */
+#import <QTKit/QTKit.h>
-#define HB_NUM_HBLIB_PICTURES 10 // hbilb generates 10 preview pictures
+#define HB_NUM_HBLIB_PICTURES 20 // # of preview pictures libhb should generate
-@interface PictureController : NSObject
+@interface PictureController : NSWindowController
{
hb_handle_t * fHandle;
hb_title_t * fTitle;
NSMutableDictionary * fPicturePreviews; // NSImages, one for each preview libhb creates, created lazily
int fPicture;
- IBOutlet NSPanel * fPicturePanel;
-
IBOutlet NSImageView * fPictureView;
IBOutlet NSBox * fPictureViewArea;
IBOutlet NSTextField * fWidthField;
IBOutlet NSTextField * fCropRightField;
IBOutlet NSStepper * fCropRightStepper;
IBOutlet NSPopUpButton * fDeinterlacePopUp;
+ IBOutlet NSButton * fDecombCheck;
IBOutlet NSButton * fDetelecineCheck;
- IBOutlet NSButton * fVFRCheck;
IBOutlet NSButton * fDeblockCheck;
+ IBOutlet NSTextField * fDeblockField;
+ IBOutlet NSSlider * fDeblockSlider;
IBOutlet NSPopUpButton * fDenoisePopUp;
IBOutlet NSPopUpButton * fAnamorphicPopUp;
- IBOutlet NSButton * fPrevButton;
- IBOutlet NSButton * fNextButton;
+ IBOutlet NSSlider * fPictureSlider;
IBOutlet NSTextField * fInfoField;
int MaxOutputWidth;
struct {
int detelecine;
- int vfr;
int deinterlace;
+ int decomb;
int denoise;
int deblock;
} 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)initWithDelegate:(id)del;
- (void) displayPreview;
- (IBAction) SettingsChanged: (id) sender;
-- (IBAction) PreviousPicture: (id) sender;
-- (IBAction) NextPicture: (id) sender;
+- (IBAction) pictureSliderChanged: (id) sender;
+
+/* Movie Previews */
+- (void) startReceivingLibhbNotifications;
+- (void) stopReceivingLibhbNotifications;
+
+- (IBAction) createMoviePreview: (id) sender;
+- (void) libhbStateChanged: (hb_state_t &) state;
+- (IBAction) showMoviePreview: (NSString *) path;
+- (IBAction) previewDurationPopUpChanged: (id) sender;
+
+
- (IBAction) ClosePanel: (id) sender;
- (BOOL) autoCrop;
- (BOOL) allowLooseAnamorphic;
- (void) setAllowLooseAnamorphic: (BOOL) setting;
-
+- (IBAction) deblockSliderChanged: (id) sender;
- (int) detelecine;
- (void) setDetelecine: (int) setting;
-- (int) vfr;
-- (void) setVFR: (int) setting;
- (int) deinterlace;
- (void) setDeinterlace: (int) setting;
+- (int) decomb;
+- (void) setDecomb: (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;
+- (IBAction)showPreviewPanel: (id)sender forTitle: (hb_title_t *)title;
+ (NSImage *) makeImageForPicture: (int)pictureIndex
libhb:(hb_handle_t*)handle
@interface NSObject (PictureControllertDelegateMethod)
- (void)pictureSettingsDidChange;
+- (void)prepareJobForPreview;
@end