/* $Id: HBPreviewController.h,v 1.6 2005/04/14 20:40:05 titer Exp $
This file is part of the HandBrake source code.
Homepage: .
It may be used under the terms of the GNU General Public License. */
#import
#include "hb.h"
/* Needed for Quicktime movie previews */
#import
@class HBController;
#define HB_NUM_HBLIB_PICTURES 20 // # of preview pictures libhb should generate
@interface PreviewController : NSWindowController
{
hb_handle_t * fHandle;
hb_title_t * fTitle;
HBController *fHBController; // reference to HBController
IBOutlet NSWindow * fPreviewWindow;
NSWindow * fFullScreenWindow; // Full Screen window
NSMutableDictionary * fPicturePreviews; // NSImages, one for each preview libhb creates, created lazily
int fPicture;
IBOutlet NSImageView * fPictureView;
IBOutlet NSBox * fPictureViewArea;
IBOutlet NSBox * fPictureControlBox;
IBOutlet NSBox * fEncodingControlBox;
IBOutlet NSBox * fMoviePlaybackControlBox;
IBOutlet NSSlider * fPictureSlider;
IBOutlet NSTextField * fInfoField;
IBOutlet NSTextField * fscaleInfoField;
BOOL isEncoding;
CGFloat backingScaleFactor;
int MaxOutputWidth;
int MaxOutputHeight;
int output_width, output_height, output_par_width, output_par_height;
int display_width;
/* Hud Control Overlay */
NSTimer * fHudTimer;
int hudTimerSeconds;
/* Full Screen Mode Toggle */
IBOutlet NSButton * fScaleToScreenToggleButton;
IBOutlet NSButton * fPictureSettingsToggleButton;
BOOL scaleToScreen;
/* Movie Previews */
QTMovie * aMovie;
IBOutlet QTMovieView * fMovieView;
/* Playback Panel Controls */
IBOutlet NSButton * fPlayPauseButton;
IBOutlet NSButton * fGoToBeginningButton;
IBOutlet NSButton * fGoToEndButton;
IBOutlet NSButton * fGoForwardOneFrameButton;
IBOutlet NSButton * fGoBackwardOneFrameButton;
IBOutlet NSSlider * fMovieScrubberSlider;
IBOutlet NSButton * fGoToStillPreviewButton;
IBOutlet NSTextField * fMovieInfoField;
NSTimer * fMovieTimer;
IBOutlet NSButton * fCreatePreviewMovieButton;
IBOutlet NSButton * fCancelPreviewMovieButton;
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;
IBOutlet NSPopUpButton * fPreviewMovieLengthPopUp; // popup of choices for length of preview in seconds
}
- (id)init;
- (void) SetHandle: (hb_handle_t *) handle;
- (void) SetTitle: (hb_title_t *) title;
- (void)setHBController: (HBController *)controller;
- (IBAction) showPreviewWindow: (id)sender;
- (BOOL)acceptsMouseMovedEvents;
- (void) displayPreview;
- (IBAction) SettingsChanged: (id) sender;
- (IBAction) pictureSliderChanged: (id) sender;
- (IBAction)showPictureSettings:(id)sender;
- (NSString*) pictureSizeInfoString;
- (IBAction)toggleScaleToScreen:(id)sender;
- (IBAction)goWindowedScreen:(id)sender;
/* HUD overlay */
- (void) enableHudControls;
- (void) disableHudControls;
- (void) startHudTimer;
- (void) stopHudTimer;
/* Movie Previews */
- (void) startReceivingLibhbNotifications;
- (void) stopReceivingLibhbNotifications;
- (void) installMovieCallbacks;
- (void)removeMovieCallbacks;
- (IBAction) cancelCreateMoviePreview: (id) sender;
- (IBAction) createMoviePreview: (id) sender;
- (void) libhbStateChanged: (hb_state_t ) state;
- (IBAction) showMoviePreview: (NSString *) path;
- (IBAction) toggleMoviePreviewPlayPause: (id) sender;
- (IBAction) moviePlaybackGoToBeginning: (id) sender;
- (IBAction) moviePlaybackGoToEnd: (id) sender;
- (IBAction) moviePlaybackGoBackwardOneFrame: (id) sender;
- (IBAction) moviePlaybackGoForwardOneFrame: (id) sender;
-(void) initPreviewScrubberForMovie;
-(void) adjustPreviewScrubberForCurrentMovieTime;
- (IBAction) previewScrubberChanged: (id) sender;
-(void)setTime:(int)timeValue;
-(void)timeToQTTime:(long)timeValue resultTime:(QTTime *)aQTTime;
- (void) startMovieTimer;
- (void) stopMovieTimer;
- (NSString*) calculatePlaybackSMTPETimecodeForDisplay;
- (IBAction) previewDurationPopUpChanged: (id) sender;
- (IBAction)showPreviewPanel: (id)sender forTitle: (hb_title_t *)title;
+ (NSImage *) makeImageForPicture: (int)pictureIndex
libhb:(hb_handle_t*)handle
title:(hb_title_t*)title;
- (NSImage *) imageForPicture: (int) pictureIndex;
- (void) purgeImageCache;
@end