Separate new options from IDirectVobSub interface and revert IDirectVobSub.h guliverk...
[xy_vsfilter.git] / src / filters / transform / vsfilter / IDirectVobSub.h
blob4d22120e3f31ac5cc3cc1cbb33781437d84786d1
1 /*
2 * Copyright (C) 2003-2006 Gabest
3 * http://www.gabest.org
5 * This Program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
8 * any later version.
9 *
10 * This Program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with GNU Make; see the file COPYING. If not, write to
17 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
18 * http://www.gnu.org/copyleft/gpl.html
22 #pragma once
24 #include "..\..\..\subtitles\STS.h"
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
30 [uuid("EBE1FB08-3957-47ca-AF13-5827E5442E56")]
31 interface IDirectVobSub : public IUnknown
33 STDMETHOD(get_FileName) (THIS_
34 WCHAR* fn // fn should point to a buffer allocated to at least the length of MAX_PATH (=260)
35 ) PURE;
37 STDMETHOD(put_FileName) (THIS_
38 WCHAR* fn
39 ) PURE;
41 STDMETHOD(get_LanguageCount) (THIS_
42 int* nLangs
43 ) PURE;
45 STDMETHOD(get_LanguageName) (THIS_
46 int iLanguage,
47 WCHAR** ppName // the returned *ppName is allocated with CoTaskMemAlloc
48 ) PURE;
50 STDMETHOD(get_SelectedLanguage) (THIS_
51 int* iSelected
52 ) PURE;
54 STDMETHOD(put_SelectedLanguage) (THIS_
55 int iSelected
56 ) PURE;
58 STDMETHOD(get_HideSubtitles) (THIS_
59 bool* fHideSubtitles
60 ) PURE;
62 STDMETHOD(put_HideSubtitles) (THIS_
63 bool fHideSubtitles
64 ) PURE;
66 STDMETHOD(get_PreBuffering) (THIS_
67 bool* fDoPreBuffering
68 ) PURE;
70 STDMETHOD(put_PreBuffering) (THIS_
71 bool fDoPreBuffering
72 ) PURE;
74 STDMETHOD(get_Placement) (THIS_
75 bool* fOverridePlacement,
76 int* xperc,
77 int* yperc
78 ) PURE;
80 STDMETHOD(put_Placement) (THIS_
81 bool fOverridePlacement,
82 int xperc,
83 int yperc
84 ) PURE;
86 STDMETHOD(get_VobSubSettings) (THIS_
87 bool* fBuffer,
88 bool* fOnlyShowForcedSubs,
89 bool* fPolygonize
90 ) PURE;
92 STDMETHOD(put_VobSubSettings) (THIS_
93 bool fBuffer,
94 bool fOnlyShowForcedSubs,
95 bool fPolygonize
96 ) PURE;
98 STDMETHOD(get_TextSettings) (THIS_
99 void* lf,
100 int lflen, // depending on lflen, lf must point to LOGFONTA or LOGFONTW
101 COLORREF* color,
102 bool* fShadow,
103 bool* fOutline,
104 bool* fAdvancedRenderer
105 ) PURE;
107 STDMETHOD(put_TextSettings) (THIS_
108 void* lf,
109 int lflen,
110 COLORREF color,
111 bool fShadow,
112 bool fOutline,
113 bool fAdvancedRenderer
114 ) PURE;
116 STDMETHOD(get_Flip) (THIS_
117 bool* fPicture,
118 bool* fSubtitles
119 ) PURE;
121 STDMETHOD(put_Flip) (THIS_
122 bool fPicture,
123 bool fSubtitles
124 ) PURE;
126 STDMETHOD(get_OSD) (THIS_
127 bool* fOSD
128 ) PURE;
130 STDMETHOD(put_OSD) (THIS_
131 bool fOSD
132 ) PURE;
134 STDMETHOD(get_SaveFullPath) (THIS_
135 bool* fSaveFullPath
136 ) PURE;
138 STDMETHOD(put_SaveFullPath) (THIS_
139 bool fSaveFullPath
140 ) PURE;
142 STDMETHOD(get_SubtitleTiming) (THIS_
143 int* delay,
144 int* speedmul,
145 int* speeddiv
146 ) PURE;
148 STDMETHOD(put_SubtitleTiming) (THIS_
149 int delay,
150 int speedmul,
151 int speeddiv
152 ) PURE;
154 STDMETHOD(get_MediaFPS) (THIS_
155 bool* fEnabled,
156 double* fps
157 ) PURE;
159 STDMETHOD(put_MediaFPS) (THIS_
160 bool fEnabled,
161 double fps
162 ) PURE;
164 // no longer supported
166 STDMETHOD(get_ColorFormat) (THIS_
167 int* iPosition
168 ) PURE;
170 STDMETHOD(put_ColorFormat) (THIS_
171 int iPosition
172 ) PURE;
176 STDMETHOD(get_ZoomRect) (THIS_
177 NORMALIZEDRECT* rect
178 ) PURE;
180 STDMETHOD(put_ZoomRect) (THIS_
181 NORMALIZEDRECT* rect
182 ) PURE;
186 STDMETHOD(UpdateRegistry) (THIS_
187 ) PURE;
191 STDMETHOD(HasConfigDialog) (THIS_
192 int iSelected
193 ) PURE;
195 STDMETHOD(ShowConfigDialog) (THIS_ // if available, this will popup a child dialog allowing the user to edit the style options
196 int iSelected,
197 HWND hWndParent
198 ) PURE;
202 STDMETHOD(IsSubtitleReloaderLocked) (THIS_
203 bool* fLocked
204 ) PURE;
206 STDMETHOD(LockSubtitleReloader) (THIS_
207 bool fLock
208 ) PURE;
210 STDMETHOD(get_SubtitleReloader) (THIS_
211 bool* fDisabled
212 ) PURE;
214 STDMETHOD(put_SubtitleReloader) (THIS_
215 bool fDisable
216 ) PURE;
220 STDMETHOD(get_ExtendPicture) (THIS_
221 int* horizontal, // 0 - disabled, 1 - mod32 extension (width = (width+31)&~31)
222 int* vertical, // 0 - disabled, 1 - 16:9, 2 - 4:3, 0x80 - crop (use crop together with 16:9 or 4:3, eg 0x81 will crop to 16:9 if the picture was taller)
223 int* resx2, // 0 - disabled, 1 - enabled, 2 - depends on the original resolution
224 int* resx2minw, // resolution doubler will be used if width*height <= resx2minw*resx2minh (resx2minw*resx2minh equals to 384*288 by default)
225 int* resx2minh
226 ) PURE;
228 STDMETHOD(put_ExtendPicture) (THIS_
229 int horizontal,
230 int vertical,
231 int resx2,
232 int resx2minw,
233 int resx2minh
234 ) PURE;
236 STDMETHOD(get_LoadSettings) (THIS_
237 int* level, // 0 - when needed, 1 - always, 2 - disabled
238 bool* fExternalLoad,
239 bool* fWebLoad,
240 bool* fEmbeddedLoad
241 ) PURE;
243 STDMETHOD(put_LoadSettings) (THIS_
244 int level,
245 bool fExternalLoad,
246 bool fWebLoad,
247 bool fEmbeddedLoad
248 ) PURE;
251 [uuid("FE6EC6A0-21CA-4970-9EF0-B296F7F38AF0")]
252 interface ISubClock : public IUnknown
254 STDMETHOD(SetTime)(REFERENCE_TIME rt) PURE;
255 STDMETHOD_(REFERENCE_TIME, GetTime)() PURE;
258 [uuid("0665B760-FBC1-46C3-A35F-E471527C96A4")]
259 interface ISubClock2 : public ISubClock
261 STDMETHOD(SetAvgTimePerFrame)(REFERENCE_TIME rt) PURE;
262 STDMETHOD(GetAvgTimePerFrame)(REFERENCE_TIME* prt) PURE; // return S_OK only if *prt was set and is valid
265 [uuid("AB52FC9C-2415-4dca-BC1C-8DCC2EAE8150")]
266 interface IDirectVobSub2 : public IDirectVobSub
268 STDMETHOD(AdviseSubClock) (THIS_
269 ISubClock* pSubClock
270 ) PURE;
272 STDMETHOD_(bool, get_Forced) (THIS_
273 ) PURE;
275 STDMETHOD(put_Forced) (THIS_
276 bool fForced
277 ) PURE;
279 STDMETHOD(get_TextSettings) (THIS_
280 STSStyle* pDefStyle
281 ) PURE;
283 STDMETHOD(put_TextSettings) (THIS_
284 STSStyle* pDefStyle
285 ) PURE;
287 STDMETHOD(get_AspectRatioSettings) (THIS_
288 CSimpleTextSubtitle::EPARCompensationType* ePARCompensationType
289 ) PURE;
291 STDMETHOD(put_AspectRatioSettings) (THIS_
292 CSimpleTextSubtitle::EPARCompensationType* ePARCompensationType
293 ) PURE;
297 #ifdef __cplusplus
299 #endif