- Main Page
- Namespaces
- Classes
- Files
- Directories

- File List
- File Members

# 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