summaryrefslogtreecommitdiffstats
path: root/macosx/PictureController.h
blob: fe6552d32380bafaacb88dc536bb1b0389227f68 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
/* $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.fr/>.
   It may be used under the terms of the GNU General Public License. */

#import <Cocoa/Cocoa.h>

#include "hb.h" 

@class HBController;
@class PreviewController;



//#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;
    PreviewController        *fPreviewController;        // reference to HBController
    
    IBOutlet NSWindow        * fPictureWindow;
    
    IBOutlet NSTabView       * fSizeFilterView;
    
    /* Picture Sizing */
    
    NSMutableDictionary      * fPicturePreviews;        // NSImages, one for each preview libhb creates, created lazily
    int                        fPicture;


    IBOutlet NSBox           * fPictureSizeBox;
    IBOutlet NSBox           * fPictureCropBox;
    IBOutlet NSTextField     * fWidthField;
    IBOutlet NSStepper       * fWidthStepper;
    IBOutlet NSTextField     * fHeightField;
    IBOutlet NSStepper       * fHeightStepper;
    IBOutlet NSButton        * fRatioCheck;
    IBOutlet NSMatrix        * fCropMatrix;
    IBOutlet NSTextField     * fCropTopField;
    IBOutlet NSStepper       * fCropTopStepper;
    IBOutlet NSTextField     * fCropBottomField;
    IBOutlet NSStepper       * fCropBottomStepper;
    IBOutlet NSTextField     * fCropLeftField;
    IBOutlet NSStepper       * fCropLeftStepper;
    IBOutlet NSTextField     * fCropRightField;
    IBOutlet NSStepper       * fCropRightStepper;

	IBOutlet NSPopUpButton   * fAnamorphicPopUp;
    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;
    
    /* 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;
    
    
    /* 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 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)init;

- (void) SetHandle: (hb_handle_t *) handle;
- (void) SetTitle:  (hb_title_t *)  title;
- (void)setHBController: (HBController *)controller;
- (IBAction) showPictureWindow: (id)sender;
- (IBAction) showPreviewWindow: (id)sender;
- (BOOL) previewFullScreenMode;
- (IBAction) previewGoWindowed: (id)sender;




- (IBAction) SettingsChanged: (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;


- (void) setToFullScreenMode;
- (void) setToWindowedMode;

/* Filter Actions */
- (void) setInitialPictureFilters;
- (IBAction) FilterSettingsChanged: (id) sender;
- (void) adjustFilterDisplay: (id) sender;
- (IBAction) modeDecombDeinterlaceSliderChanged: (id) sender;
- (IBAction) deblockSliderChanged: (id) sender;

- (int) detelecine;
- (NSString*) detelecineCustomString;
- (void) setDetelecine: (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;

- (int) grayscale;
- (void) setGrayscale: (int) setting;



@end