292 lines
7.2 KiB
C
292 lines
7.2 KiB
C
|
/*
|
||
|
* Copyright (C) 2003-2006 Gabest
|
||
|
* http://www.gabest.org
|
||
|
*
|
||
|
* This Program is free software; you can redistribute it and/or modify
|
||
|
* it under the terms of the GNU General Public License as published by
|
||
|
* the Free Software Foundation; either version 2, or (at your option)
|
||
|
* any later version.
|
||
|
*
|
||
|
* This Program is distributed in the hope that it will be useful,
|
||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
* GNU General Public License for more details.
|
||
|
*
|
||
|
* You should have received a copy of the GNU General Public License
|
||
|
* along with GNU Make; see the file COPYING. If not, write to
|
||
|
* the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
|
||
|
* http://www.gnu.org/copyleft/gpl.html
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
#pragma once
|
||
|
|
||
|
#include "subtitles/STS.h"
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
[uuid("EBE1FB08-3957-47ca-AF13-5827E5442E56")]
|
||
|
interface IDirectVobSub : public IUnknown
|
||
|
{
|
||
|
STDMETHOD(get_FileName) (THIS_
|
||
|
WCHAR* fn // fn should point to a buffer allocated to at least the length of MAX_PATH (=260)
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_FileName) (THIS_
|
||
|
WCHAR* fn
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_LanguageCount) (THIS_
|
||
|
int* nLangs
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_LanguageName) (THIS_
|
||
|
int iLanguage,
|
||
|
WCHAR** ppName // the returned *ppName is allocated with CoTaskMemAlloc
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_SelectedLanguage) (THIS_
|
||
|
int* iSelected
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_SelectedLanguage) (THIS_
|
||
|
int iSelected
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_HideSubtitles) (THIS_
|
||
|
bool* fHideSubtitles
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_HideSubtitles) (THIS_
|
||
|
bool fHideSubtitles
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_PreBuffering) (THIS_
|
||
|
bool* fDoPreBuffering
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_PreBuffering) (THIS_
|
||
|
bool fDoPreBuffering
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_Placement) (THIS_
|
||
|
bool* fOverridePlacement,
|
||
|
int* xperc,
|
||
|
int* yperc
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_Placement) (THIS_
|
||
|
bool fOverridePlacement,
|
||
|
int xperc,
|
||
|
int yperc
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_VobSubSettings) (THIS_
|
||
|
bool* fBuffer,
|
||
|
bool* fOnlyShowForcedSubs,
|
||
|
bool* fPolygonize
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_VobSubSettings) (THIS_
|
||
|
bool fBuffer,
|
||
|
bool fOnlyShowForcedSubs,
|
||
|
bool fPolygonize
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_TextSettings) (THIS_
|
||
|
void* lf,
|
||
|
int lflen, // depending on lflen, lf must point to LOGFONTA or LOGFONTW
|
||
|
COLORREF* color,
|
||
|
bool* fShadow,
|
||
|
bool* fOutline,
|
||
|
bool* fAdvancedRenderer
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_TextSettings) (THIS_
|
||
|
void* lf,
|
||
|
int lflen,
|
||
|
COLORREF color,
|
||
|
bool fShadow,
|
||
|
bool fOutline,
|
||
|
bool fAdvancedRenderer
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_Flip) (THIS_
|
||
|
bool* fPicture,
|
||
|
bool* fSubtitles
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_Flip) (THIS_
|
||
|
bool fPicture,
|
||
|
bool fSubtitles
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_OSD) (THIS_
|
||
|
bool* fOSD
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_OSD) (THIS_
|
||
|
bool fOSD
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_SaveFullPath) (THIS_
|
||
|
bool* fSaveFullPath
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_SaveFullPath) (THIS_
|
||
|
bool fSaveFullPath
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_SubtitleTiming) (THIS_
|
||
|
int* delay,
|
||
|
int* speedmul,
|
||
|
int* speeddiv
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_SubtitleTiming) (THIS_
|
||
|
int delay,
|
||
|
int speedmul,
|
||
|
int speeddiv
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_MediaFPS) (THIS_
|
||
|
bool* fEnabled,
|
||
|
double* fps
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_MediaFPS) (THIS_
|
||
|
bool fEnabled,
|
||
|
double fps
|
||
|
) PURE;
|
||
|
|
||
|
// no longer supported
|
||
|
|
||
|
STDMETHOD(get_ColorFormat) (THIS_
|
||
|
int* iPosition
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_ColorFormat) (THIS_
|
||
|
int iPosition
|
||
|
) PURE;
|
||
|
|
||
|
//
|
||
|
|
||
|
STDMETHOD(get_ZoomRect) (THIS_
|
||
|
NORMALIZEDRECT* rect
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_ZoomRect) (THIS_
|
||
|
NORMALIZEDRECT* rect
|
||
|
) PURE;
|
||
|
|
||
|
//
|
||
|
|
||
|
STDMETHOD(UpdateRegistry) (THIS_
|
||
|
) PURE;
|
||
|
|
||
|
//
|
||
|
|
||
|
STDMETHOD(HasConfigDialog) (THIS_
|
||
|
int iSelected
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(ShowConfigDialog) (THIS_ // if available, this will popup a child dialog allowing the user to edit the style options
|
||
|
int iSelected,
|
||
|
HWND hWndParent
|
||
|
) PURE;
|
||
|
|
||
|
//
|
||
|
|
||
|
STDMETHOD(IsSubtitleReloaderLocked) (THIS_
|
||
|
bool* fLocked
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(LockSubtitleReloader) (THIS_
|
||
|
bool fLock
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_SubtitleReloader) (THIS_
|
||
|
bool* fDisabled
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_SubtitleReloader) (THIS_
|
||
|
bool fDisable
|
||
|
) PURE;
|
||
|
|
||
|
//
|
||
|
|
||
|
STDMETHOD(get_ExtendPicture) (THIS_
|
||
|
int* horizontal, // 0 - disabled, 1 - mod32 extension (width = (width+31)&~31)
|
||
|
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)
|
||
|
int* resx2, // 0 - disabled, 1 - enabled, 2 - depends on the original resolution
|
||
|
int* resx2minw, // resolution doubler will be used if width*height <= resx2minw*resx2minh (resx2minw*resx2minh equals to 384*288 by default)
|
||
|
int* resx2minh
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_ExtendPicture) (THIS_
|
||
|
int horizontal,
|
||
|
int vertical,
|
||
|
int resx2,
|
||
|
int resx2minw,
|
||
|
int resx2minh
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_LoadSettings) (THIS_
|
||
|
int* level, // 0 - when needed, 1 - always, 2 - disabled
|
||
|
bool* fExternalLoad,
|
||
|
bool* fWebLoad,
|
||
|
bool* fEmbeddedLoad
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_LoadSettings) (THIS_
|
||
|
int level,
|
||
|
bool fExternalLoad,
|
||
|
bool fWebLoad,
|
||
|
bool fEmbeddedLoad
|
||
|
) PURE;
|
||
|
};
|
||
|
|
||
|
[uuid("FE6EC6A0-21CA-4970-9EF0-B296F7F38AF0")]
|
||
|
interface ISubClock : public IUnknown
|
||
|
{
|
||
|
STDMETHOD(SetTime)(REFERENCE_TIME rt) PURE;
|
||
|
STDMETHOD_(REFERENCE_TIME, GetTime)() PURE;
|
||
|
};
|
||
|
|
||
|
[uuid("0665B760-FBC1-46C3-A35F-E471527C96A4")]
|
||
|
interface ISubClock2 : public ISubClock
|
||
|
{
|
||
|
STDMETHOD(SetAvgTimePerFrame)(REFERENCE_TIME rt) PURE;
|
||
|
STDMETHOD(GetAvgTimePerFrame)(REFERENCE_TIME* prt) PURE; // return S_OK only if *prt was set and is valid
|
||
|
};
|
||
|
|
||
|
[uuid("AB52FC9C-2415-4dca-BC1C-8DCC2EAE8150")]
|
||
|
interface IDirectVobSub2 : public IDirectVobSub
|
||
|
{
|
||
|
STDMETHOD(AdviseSubClock) (THIS_
|
||
|
ISubClock* pSubClock
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD_(bool, get_Forced) (THIS_
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_Forced) (THIS_
|
||
|
bool fForced
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(get_TextSettings) (THIS_
|
||
|
STSStyle* pDefStyle
|
||
|
) PURE;
|
||
|
|
||
|
STDMETHOD(put_TextSettings) (THIS_
|
||
|
STSStyle* pDefStyle
|
||
|
) PURE;
|
||
|
};
|
||
|
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
}
|
||
|
#endif
|