OSDN Git Service

add win/C# diff files
[handbrake-jp/handbrake-jp.git] / macosx / HBPreviewController.h
1 /* $Id: HBPreviewController.h,v 1.6 2005/04/14 20:40:05 titer Exp $
2
3    This file is part of the HandBrake source code.
4    Homepage: <http://handbrake.fr/>.
5    It may be used under the terms of the GNU General Public License. */
6
7 #import <Cocoa/Cocoa.h>
8
9 #include "hb.h"
10 /* Needed for Quicktime movie previews */
11 #import <QTKit/QTKit.h> 
12
13 @class HBController;
14
15 #define HB_NUM_HBLIB_PICTURES      20   // # of preview pictures libhb should generate
16
17 @interface PreviewController : NSWindowController
18 {
19     hb_handle_t              * fHandle;
20     hb_title_t               * fTitle;
21
22     HBController             *fHBController;        // reference to HBController
23     
24     IBOutlet NSWindow        * fPreviewWindow;
25     NSWindow                 * fFullScreenWindow; // Full Screen window
26     NSMutableDictionary      * fPicturePreviews;  // NSImages, one for each preview libhb creates, created lazily
27     int                        fPicture;
28
29     IBOutlet NSImageView     * fPictureView;
30     IBOutlet NSBox           * fPictureViewArea;
31     IBOutlet NSBox           * fPictureControlBox;
32     IBOutlet NSBox           * fEncodingControlBox;
33     IBOutlet NSBox           * fMoviePlaybackControlBox;
34
35     IBOutlet NSSlider        * fPictureSlider;
36     IBOutlet NSTextField     * fInfoField;
37     IBOutlet NSTextField     * fscaleInfoField;
38     
39     BOOL                     isEncoding;
40
41         
42     int                      MaxOutputWidth;
43     int                      MaxOutputHeight;
44
45     int output_width, output_height, output_par_width, output_par_height;
46     int display_width;
47     
48     /* Hud Control Overlay */
49     NSTimer                         * fHudTimer;
50     int                               hudTimerSeconds;
51     
52     /* Full Screen Mode Toggle */
53     IBOutlet NSButton               * fScaleToScreenToggleButton;
54     IBOutlet NSButton               * fPictureSettingsToggleButton;
55     BOOL                              scaleToScreen;
56     
57     /* Movie Previews */
58     QTMovie                         * aMovie;
59     IBOutlet QTMovieView            * fMovieView;
60     /* Playback Panel Controls */
61     IBOutlet NSButton               * fPlayPauseButton;
62     IBOutlet NSButton               * fGoToBeginningButton;
63     IBOutlet NSButton               * fGoToEndButton;
64     IBOutlet NSButton               * fGoForwardOneFrameButton;
65     IBOutlet NSButton               * fGoBackwardOneFrameButton;
66     IBOutlet NSSlider               * fMovieScrubberSlider;
67     IBOutlet NSButton               * fGoToStillPreviewButton;
68     IBOutlet NSTextField            * fMovieInfoField;
69     NSTimer                         * fMovieTimer;
70     
71     
72     IBOutlet NSButton               * fCreatePreviewMovieButton;
73     IBOutlet NSButton               * fCancelPreviewMovieButton;
74     IBOutlet NSButton               * fShowPreviewMovieButton;
75     NSString                        * fPreviewMoviePath;
76     IBOutlet NSProgressIndicator    * fMovieCreationProgressIndicator;
77     hb_handle_t                     * fPreviewLibhb;           // private libhb for creating previews
78     NSTimer                         * fLibhbTimer;             // timer for retrieving state from libhb
79     IBOutlet NSTextField            * fPreviewMovieStatusField; 
80     IBOutlet NSPopUpButton          * fPreviewMovieLengthPopUp; // popup of choices for length of preview in seconds
81 }
82 - (id)init;
83
84 - (void) SetHandle: (hb_handle_t *) handle;
85 - (void) SetTitle:  (hb_title_t *)  title;
86 - (void)setHBController: (HBController *)controller;
87 - (IBAction) showPreviewWindow: (id)sender;
88 - (BOOL)acceptsMouseMovedEvents;
89 - (void) displayPreview;
90
91 - (IBAction) SettingsChanged: (id) sender;
92 - (IBAction) pictureSliderChanged: (id) sender;
93 - (IBAction)showPictureSettings:(id)sender;
94 - (NSString*) pictureSizeInfoString;
95
96 - (IBAction)toggleScaleToScreen:(id)sender;
97 - (IBAction)goWindowedScreen:(id)sender;
98
99 /* HUD overlay */
100 - (void) enableHudControls;
101 - (void) disableHudControls;
102
103 - (void) startHudTimer;
104 - (void) stopHudTimer;
105
106 /* Movie Previews */
107 - (void) startReceivingLibhbNotifications;
108 - (void) stopReceivingLibhbNotifications;
109
110 - (void) installMovieCallbacks;
111 - (void)removeMovieCallbacks;
112
113 - (IBAction) cancelCreateMoviePreview: (id) sender;
114 - (IBAction) createMoviePreview: (id) sender;
115 - (void) libhbStateChanged: (hb_state_t ) state;
116 - (IBAction) showMoviePreview: (NSString *) path;
117 - (IBAction) toggleMoviePreviewPlayPause: (id) sender;
118 - (IBAction) moviePlaybackGoToBeginning: (id) sender;
119 - (IBAction) moviePlaybackGoToEnd: (id) sender;
120 - (IBAction) moviePlaybackGoBackwardOneFrame: (id) sender;
121 - (IBAction) moviePlaybackGoForwardOneFrame: (id) sender;
122
123 -(void) initPreviewScrubberForMovie;
124 -(void) adjustPreviewScrubberForCurrentMovieTime;
125 - (IBAction) previewScrubberChanged: (id) sender;
126 -(void)setTime:(int)timeValue;
127 -(void)timeToQTTime:(long)timeValue resultTime:(QTTime *)aQTTime;
128 - (void) startMovieTimer;
129 - (void) stopMovieTimer;
130 - (NSString*) calculatePlaybackSMTPETimecodeForDisplay;
131
132
133 - (IBAction) previewDurationPopUpChanged: (id) sender;
134
135
136 - (IBAction)showPreviewPanel: (id)sender forTitle: (hb_title_t *)title;
137
138 + (NSImage *) makeImageForPicture: (int)pictureIndex
139                 libhb:(hb_handle_t*)handle
140                 title:(hb_title_t*)title;
141 - (NSImage *) imageForPicture: (int) pictureIndex;
142 - (void) purgeImageCache;
143 @end
144