00001 /* $Id: HBPreviewController.h,v 1.6 2005/04/14 20:40:05 titer Exp $ 00002 00003 This file is part of the HandBrake source code. 00004 Homepage: <http://handbrake.fr/>. 00005 It may be used under the terms of the GNU General Public License. */ 00006 00007 #import <Cocoa/Cocoa.h> 00008 00009 #include "hb.h" 00010 /* Needed for Quicktime movie previews */ 00011 #import <QTKit/QTKit.h> 00012 00013 @class HBController; 00014 00015 @interface PreviewController : NSWindowController <NSWindowDelegate> 00016 { 00017 hb_handle_t * fHandle; 00018 hb_title_t * fTitle; 00019 00020 HBController * fHBController; // reference to HBController 00021 00022 NSMutableDictionary * fPicturePreviews; // NSImages, one for each preview libhb creates, created lazily 00023 int fPicture; 00024 00025 CALayer * fWhiteBackground; 00026 CALayer * fPictureLayer; 00027 IBOutlet NSBox * fPictureControlBox; 00028 IBOutlet NSBox * fEncodingControlBox; 00029 IBOutlet NSBox * fMoviePlaybackControlBox; 00030 00031 IBOutlet NSSlider * fPictureSlider; 00032 IBOutlet NSTextField * fInfoField; 00033 IBOutlet NSTextField * fscaleInfoField; 00034 00035 CGFloat backingScaleFactor; 00036 00037 /* Hud Control Overlay */ 00038 NSTimer * fHudTimer; 00039 int hudTimerSeconds; 00040 00041 /* Full Screen Mode Toggle */ 00042 BOOL scaleToScreen; 00043 IBOutlet NSButton * fScaleToScreenToggleButton; 00044 IBOutlet NSButton * fPictureSettingsToggleButton; 00045 00046 /* Movie Previews */ 00047 QTMovie * aMovie; 00048 IBOutlet QTMovieView * fMovieView; 00049 /* Playback Panel Controls */ 00050 IBOutlet NSButton * fPlayPauseButton; 00051 IBOutlet NSButton * fGoToBeginningButton; 00052 IBOutlet NSButton * fGoToEndButton; 00053 IBOutlet NSButton * fGoForwardOneFrameButton; 00054 IBOutlet NSButton * fGoBackwardOneFrameButton; 00055 IBOutlet NSSlider * fMovieScrubberSlider; 00056 IBOutlet NSButton * fGoToStillPreviewButton; 00057 IBOutlet NSTextField * fMovieInfoField; 00058 NSTimer * fMovieTimer; 00059 00060 IBOutlet NSButton * fCreatePreviewMovieButton; 00061 IBOutlet NSButton * fCancelPreviewMovieButton; 00062 IBOutlet NSButton * fShowPreviewMovieButton; 00063 NSString * fPreviewMoviePath; 00064 IBOutlet NSProgressIndicator * fMovieCreationProgressIndicator; 00065 hb_handle_t * fPreviewLibhb; // private libhb for creating previews 00066 NSInteger fEncodeState; 00067 NSTimer * fLibhbTimer; // timer for retrieving state from libhb 00068 IBOutlet NSTextField * fPreviewMovieStatusField; 00069 IBOutlet NSPopUpButton * fPreviewMovieLengthPopUp; // popup of choices for length of preview in seconds 00070 } 00071 - (id)init; 00072 00073 - (void) SetHandle: (hb_handle_t *) handle; 00074 - (void) SetTitle: (hb_title_t *) title; 00075 - (void) setHBController: (HBController *)controller; 00076 - (void) displayPreview; 00077 00078 - (IBAction) settingsChanged: (id) sender; 00079 - (IBAction) pictureSliderChanged: (id) sender; 00080 - (IBAction) showPictureSettings:(id)sender; 00081 - (NSString*) pictureSizeInfoString; 00082 00083 - (IBAction) toggleScaleToScreen:(id)sender; 00084 00085 /* HUD overlay */ 00086 - (void) enableHudControls; 00087 - (void) disableHudControls; 00088 00089 - (void) startHudTimer; 00090 - (void) stopHudTimer; 00091 00092 /* Movie Previews */ 00093 - (void) startReceivingLibhbNotifications; 00094 - (void) stopReceivingLibhbNotifications; 00095 00096 - (void) installMovieCallbacks; 00097 - (void) removeMovieCallbacks; 00098 00099 - (IBAction) cancelCreateMoviePreview: (id) sender; 00100 - (IBAction) createMoviePreview: (id) sender; 00101 - (void) libhbStateChanged: (hb_state_t ) state; 00102 - (IBAction) showMoviePreview: (NSString *) path; 00103 - (IBAction) showPicturesPreview: (id) sender; 00104 - (IBAction) toggleMoviePreviewPlayPause: (id) sender; 00105 - (IBAction) moviePlaybackGoToBeginning: (id) sender; 00106 - (IBAction) moviePlaybackGoToEnd: (id) sender; 00107 - (IBAction) moviePlaybackGoBackwardOneFrame: (id) sender; 00108 - (IBAction) moviePlaybackGoForwardOneFrame: (id) sender; 00109 00110 - (void) initPreviewScrubberForMovie; 00111 - (void) adjustPreviewScrubberForCurrentMovieTime; 00112 - (IBAction) previewScrubberChanged: (id) sender; 00113 - (BOOL) isPlaying; 00114 00115 - (void) startMovieTimer; 00116 - (void) stopMovieTimer; 00117 00118 - (NSString*) SMTPETimecode: (QTTime)time; 00119 - (QTTime)SliderToQTTime:(double)time; 00120 00121 - (IBAction) previewDurationPopUpChanged: (id) sender; 00122 00123 + (NSImage *) makeImageForPicture: (NSInteger)pictureIndex 00124 libhb:(hb_handle_t*)handle 00125 title:(hb_title_t*)title; 00126 - (NSImage *) imageForPicture: (NSInteger) pictureIndex; 00127 - (void) purgeImageCache; 00128 @end 00129
1.7.1