IDirectVobSub.h

00001 /* 
00002  *      Copyright (C) 2003-2005 Gabest
00003  *      http://www.gabest.org
00004  *
00005  *  This Program is free software; you can redistribute it and/or modify
00006  *  it under the terms of the GNU General Public License as published by
00007  *  the Free Software Foundation; either version 2, or (at your option)
00008  *  any later version.
00009  *   
00010  *  This Program is distributed in the hope that it will be useful,
00011  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
00013  *  GNU General Public License for more details.
00014  *   
00015  *  You should have received a copy of the GNU General Public License
00016  *  along with GNU Make; see the file COPYING.  If not, write to
00017  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. 
00018  *  http://www.gnu.org/copyleft/gpl.html
00019  *
00020  */
00021 
00022 #pragma once
00023 
00024 #include "..\..\..\subtitles\STS.h"
00025 
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029 
00030     [uuid("EBE1FB08-3957-47ca-AF13-5827E5442E56")]
00031         interface IDirectVobSub : public IUnknown 
00032     {
00033         STDMETHOD(get_FileName) (THIS_
00034                     WCHAR* fn   // fn should point to a buffer allocated to at least the length of MAX_PATH (=260)
00035                  ) PURE;
00036 
00037         STDMETHOD(put_FileName) (THIS_
00038                     WCHAR* fn
00039                  ) PURE;
00040 
00041                 STDMETHOD(get_LanguageCount) (THIS_
00042                                         int* nLangs
00043                  ) PURE;
00044 
00045                 STDMETHOD(get_LanguageName) (THIS_
00046                                         int iLanguage, 
00047                                         WCHAR** ppName  // the returned *ppName is allocated with CoTaskMemAlloc
00048                  ) PURE;
00049 
00050                 STDMETHOD(get_SelectedLanguage) (THIS_
00051                                         int* iSelected
00052                  ) PURE;
00053 
00054         STDMETHOD(put_SelectedLanguage) (THIS_
00055                                         int iSelected
00056                  ) PURE;
00057 
00058         STDMETHOD(get_HideSubtitles) (THIS_
00059                     bool* fHideSubtitles
00060                  ) PURE;
00061 
00062         STDMETHOD(put_HideSubtitles) (THIS_
00063                     bool fHideSubtitles
00064                  ) PURE;
00065 
00066         STDMETHOD(get_PreBuffering) (THIS_
00067                                         bool* fDoPreBuffering
00068                  ) PURE;
00069 
00070         STDMETHOD(put_PreBuffering) (THIS_
00071                                         bool fDoPreBuffering
00072                  ) PURE;
00073 
00074         STDMETHOD(get_Placement) (THIS_
00075                                         bool* fOverridePlacement,
00076                                         int* xperc,
00077                                         int* yperc
00078                  ) PURE;
00079 
00080         STDMETHOD(put_Placement) (THIS_
00081                                         bool fOverridePlacement,
00082                                         int xperc,
00083                                         int yperc
00084                  ) PURE;
00085 
00086         STDMETHOD(get_VobSubSettings) (THIS_
00087                                         bool* fBuffer,
00088                                         bool* fOnlyShowForcedSubs,
00089                                         bool* fPolygonize
00090                  ) PURE;
00091 
00092         STDMETHOD(put_VobSubSettings) (THIS_
00093                                         bool fBuffer,
00094                                         bool fOnlyShowForcedSubs,
00095                                         bool fPolygonize
00096                  ) PURE;
00097 
00098         STDMETHOD(get_TextSettings) (THIS_
00099                                         void* lf,
00100                                         int lflen, // depending on lflen, lf must point to LOGFONTA or LOGFONTW
00101                                         COLORREF* color,
00102                                         bool* fShadow,
00103                                         bool* fOutline,
00104                                         bool* fAdvancedRenderer
00105                  ) PURE;
00106 
00107         STDMETHOD(put_TextSettings) (THIS_
00108                                         void* lf,
00109                                         int lflen,
00110                                         COLORREF color,
00111                                         bool fShadow,
00112                                         bool fOutline,
00113                                         bool fAdvancedRenderer
00114                  ) PURE;
00115 
00116         STDMETHOD(get_Flip) (THIS_
00117                     bool* fPicture,
00118                     bool* fSubtitles
00119                  ) PURE;
00120 
00121         STDMETHOD(put_Flip) (THIS_
00122                     bool fPicture,
00123                     bool fSubtitles
00124                  ) PURE;
00125 
00126         STDMETHOD(get_OSD) (THIS_
00127                                         bool* fOSD
00128                  ) PURE;
00129 
00130         STDMETHOD(put_OSD) (THIS_
00131                                         bool fOSD
00132                  ) PURE;
00133 
00134         STDMETHOD(get_SaveFullPath) (THIS_
00135                                         bool* fSaveFullPath
00136                  ) PURE;
00137 
00138         STDMETHOD(put_SaveFullPath) (THIS_
00139                                         bool fSaveFullPath
00140                  ) PURE;
00141 
00142         STDMETHOD(get_SubtitleTiming) (THIS_
00143                                         int* delay,
00144                                         int* speedmul,
00145                                         int* speeddiv
00146                  ) PURE;
00147 
00148         STDMETHOD(put_SubtitleTiming) (THIS_
00149                                         int delay,
00150                                         int speedmul,
00151                                         int speeddiv
00152                  ) PURE;
00153 
00154         STDMETHOD(get_MediaFPS) (THIS_
00155                                         bool* fEnabled,
00156                                         double* fps
00157                  ) PURE;
00158 
00159         STDMETHOD(put_MediaFPS) (THIS_
00160                                         bool fEnabled,
00161                                         double fps
00162                  ) PURE;
00163 
00164                 // no longer supported
00165 
00166         STDMETHOD(get_ColorFormat) (THIS_
00167                                         int* iPosition
00168                  ) PURE;
00169 
00170         STDMETHOD(put_ColorFormat) (THIS_
00171                                         int iPosition
00172                  ) PURE;
00173 
00174                 //
00175 
00176         STDMETHOD(get_ZoomRect) (THIS_
00177                                         NORMALIZEDRECT* rect
00178                  ) PURE;
00179 
00180         STDMETHOD(put_ZoomRect) (THIS_
00181                                         NORMALIZEDRECT* rect
00182                  ) PURE;
00183 
00184                 //
00185 
00186         STDMETHOD(UpdateRegistry) (THIS_
00187                  ) PURE;
00188 
00189                 //
00190 
00191                 STDMETHOD(HasConfigDialog) (THIS_
00192                                         int iSelected
00193                                 ) PURE;
00194 
00195                 STDMETHOD(ShowConfigDialog) (THIS_      // if available, this will popup a child dialog allowing the user to edit the style options
00196                                         int iSelected, 
00197                                         HWND hWndParent
00198                                 ) PURE; 
00199 
00200                 //
00201 
00202         STDMETHOD(IsSubtitleReloaderLocked) (THIS_
00203                                         bool* fLocked
00204                  ) PURE;
00205 
00206         STDMETHOD(LockSubtitleReloader) (THIS_
00207                                         bool fLock
00208                  ) PURE;
00209 
00210                 STDMETHOD(get_SubtitleReloader) (THIS_
00211                                         bool* fDisabled
00212                  ) PURE;
00213 
00214         STDMETHOD(put_SubtitleReloader) (THIS_
00215                                         bool fDisable
00216                  ) PURE;
00217 
00218                 //
00219 
00220         STDMETHOD(get_ExtendPicture) (THIS_
00221                                         int* horizontal, // 0 - disabled, 1 - mod32 extension (width = (width+31)&~31)
00222                                         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)
00223                                         int* resx2, // 0 - disabled, 1 - enabled, 2 - depends on the original resolution
00224                                         int* resx2minw, // resolution doubler will be used if width*height <= resx2minw*resx2minh (resx2minw*resx2minh equals to 384*288 by default)
00225                                         int* resx2minh 
00226                  ) PURE;
00227 
00228         STDMETHOD(put_ExtendPicture) (THIS_
00229                                         int horizontal,
00230                                         int vertical,
00231                                         int resx2,
00232                                         int resx2minw,
00233                                         int resx2minh
00234                  ) PURE;
00235 
00236         STDMETHOD(get_LoadSettings) (THIS_
00237                                         int* level, // 0 - when needed, 1 - always, 2 - disabled
00238                                         bool* fExternalLoad,
00239                                         bool* fWebLoad, 
00240                                         bool* fEmbeddedLoad
00241                  ) PURE;
00242 
00243         STDMETHOD(put_LoadSettings) (THIS_
00244                                         int level,
00245                                         bool fExternalLoad,
00246                                         bool fWebLoad, 
00247                                         bool fEmbeddedLoad
00248                                 ) PURE;
00249         };
00250 
00251     [uuid("FE6EC6A0-21CA-4970-9EF0-B296F7F38AF0")]
00252         interface ISubClock : public IUnknown
00253         {
00254         STDMETHOD(SetTime)(REFERENCE_TIME rt) PURE;
00255         STDMETHOD_(REFERENCE_TIME, GetTime)() PURE;
00256         };
00257 
00258     [uuid("0665B760-FBC1-46C3-A35F-E471527C96A4")]
00259         interface ISubClock2 : public ISubClock
00260         {
00261         STDMETHOD(SetAvgTimePerFrame)(REFERENCE_TIME rt) PURE;
00262         STDMETHOD(GetAvgTimePerFrame)(REFERENCE_TIME* prt) PURE; // return S_OK only if *prt was set and is valid
00263         };
00264 
00265     [uuid("AB52FC9C-2415-4dca-BC1C-8DCC2EAE8150")]
00266         interface IDirectVobSub2 : public IDirectVobSub
00267         {
00268         STDMETHOD(AdviseSubClock) (THIS_
00269                     ISubClock* pSubClock
00270                                 ) PURE;
00271 
00272                 STDMETHOD_(bool, get_Forced) (THIS_
00273                                 ) PURE;
00274 
00275         STDMETHOD(put_Forced) (THIS_
00276                     bool fForced
00277                                 ) PURE;
00278 
00279                 STDMETHOD(get_TextSettings) (THIS_
00280                                         STSStyle* pDefStyle
00281                                 ) PURE;
00282 
00283                 STDMETHOD(put_TextSettings) (THIS_
00284                                         STSStyle* pDefStyle
00285                                 ) PURE;
00286         };
00287 
00288 
00289 #ifdef __cplusplus
00290 }
00291 #endif

Generated on Tue Dec 13 14:47:52 2005 for guliverkli by  doxygen 1.4.5