124 lines
4.7 KiB
C
124 lines
4.7 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 "IDirectVobSub.h"
|
||
|
#include "include/IFilterVersion.h"
|
||
|
|
||
|
class CDirectVobSub : public IDirectVobSub2, public IFilterVersion
|
||
|
{
|
||
|
protected:
|
||
|
CDirectVobSub();
|
||
|
virtual ~CDirectVobSub();
|
||
|
|
||
|
protected:
|
||
|
CCritSec m_propsLock;
|
||
|
|
||
|
CString m_FileName;
|
||
|
int m_iSelectedLanguage;
|
||
|
bool m_fHideSubtitles;
|
||
|
bool m_fDoPreBuffering;
|
||
|
bool m_fOverridePlacement;
|
||
|
int m_PlacementXperc, m_PlacementYperc;
|
||
|
bool m_fBufferVobSub, m_fOnlyShowForcedVobSubs, m_fPolygonize;
|
||
|
|
||
|
STSStyle m_defStyle;
|
||
|
|
||
|
bool m_fAdvancedRenderer;
|
||
|
bool m_fFlipPicture, m_fFlipSubtitles;
|
||
|
bool m_fOSD;
|
||
|
int m_nReloaderDisableCount;
|
||
|
int m_SubtitleDelay, m_SubtitleSpeedMul, m_SubtitleSpeedDiv;
|
||
|
bool m_fMediaFPSEnabled;
|
||
|
double m_MediaFPS;
|
||
|
bool m_fSaveFullPath;
|
||
|
NORMALIZEDRECT m_ZoomRect;
|
||
|
|
||
|
CComPtr<ISubClock> m_pSubClock;
|
||
|
bool m_fForced;
|
||
|
|
||
|
public:
|
||
|
|
||
|
// IDirectVobSub
|
||
|
|
||
|
STDMETHODIMP get_FileName(WCHAR* fn);
|
||
|
STDMETHODIMP put_FileName(WCHAR* fn);
|
||
|
STDMETHODIMP get_LanguageCount(int* nLangs);
|
||
|
STDMETHODIMP get_LanguageName(int iLanguage, WCHAR** ppName);
|
||
|
STDMETHODIMP get_SelectedLanguage(int* iSelected);
|
||
|
STDMETHODIMP put_SelectedLanguage(int iSelected);
|
||
|
STDMETHODIMP get_HideSubtitles(bool* fHideSubtitles);
|
||
|
STDMETHODIMP put_HideSubtitles(bool fHideSubtitles);
|
||
|
STDMETHODIMP get_PreBuffering(bool* fDoPreBuffering);
|
||
|
STDMETHODIMP put_PreBuffering(bool fDoPreBuffering);
|
||
|
STDMETHODIMP get_Placement(bool* fOverridePlacement, int* xperc, int* yperc);
|
||
|
STDMETHODIMP put_Placement(bool fOverridePlacement, int xperc, int yperc);
|
||
|
STDMETHODIMP get_VobSubSettings(bool* fBuffer, bool* fOnlyShowForcedSubs, bool* fPolygonize);
|
||
|
STDMETHODIMP put_VobSubSettings(bool fBuffer, bool fOnlyShowForcedSubs, bool fPolygonize);
|
||
|
STDMETHODIMP get_TextSettings(void* lf, int lflen, COLORREF* color, bool* fShadow, bool* fOutline, bool* fAdvancedRenderer);
|
||
|
STDMETHODIMP put_TextSettings(void* lf, int lflen, COLORREF color, bool fShadow, bool fOutline, bool fAdvancedRenderer);
|
||
|
STDMETHODIMP get_Flip(bool* fPicture, bool* fSubtitles);
|
||
|
STDMETHODIMP put_Flip(bool fPicture, bool fSubtitles);
|
||
|
STDMETHODIMP get_OSD(bool* fShowOSD);
|
||
|
STDMETHODIMP put_OSD(bool fShowOSD);
|
||
|
STDMETHODIMP get_SaveFullPath(bool* fSaveFullPath);
|
||
|
STDMETHODIMP put_SaveFullPath(bool fSaveFullPath);
|
||
|
STDMETHODIMP get_SubtitleTiming(int* delay, int* speedmul, int* speeddiv);
|
||
|
STDMETHODIMP put_SubtitleTiming(int delay, int speedmul, int speeddiv);
|
||
|
STDMETHODIMP get_MediaFPS(bool* fEnabled, double* fps);
|
||
|
STDMETHODIMP put_MediaFPS(bool fEnabled, double fps);
|
||
|
STDMETHODIMP get_ZoomRect(NORMALIZEDRECT* rect);
|
||
|
STDMETHODIMP put_ZoomRect(NORMALIZEDRECT* rect);
|
||
|
STDMETHODIMP get_ColorFormat(int* iPosition) {return E_NOTIMPL;}
|
||
|
STDMETHODIMP put_ColorFormat(int iPosition) {return E_NOTIMPL;}
|
||
|
|
||
|
STDMETHODIMP UpdateRegistry();
|
||
|
|
||
|
STDMETHODIMP HasConfigDialog(int iSelected);
|
||
|
STDMETHODIMP ShowConfigDialog(int iSelected, HWND hWndParent);
|
||
|
|
||
|
// settings for the rest are stored in the registry
|
||
|
|
||
|
STDMETHODIMP IsSubtitleReloaderLocked(bool* fLocked);
|
||
|
STDMETHODIMP LockSubtitleReloader(bool fLock);
|
||
|
STDMETHODIMP get_SubtitleReloader(bool* fDisabled);
|
||
|
STDMETHODIMP put_SubtitleReloader(bool fDisable);
|
||
|
|
||
|
// the followings need a partial or full reloading of the filter
|
||
|
|
||
|
STDMETHODIMP get_ExtendPicture(int* horizontal, int* vertical, int* resx2, int* resx2minw, int* resx2minh);
|
||
|
STDMETHODIMP put_ExtendPicture(int horizontal, int vertical, int resx2, int resx2minw, int resx2minh);
|
||
|
STDMETHODIMP get_LoadSettings(int* level, bool* fExternalLoad, bool* fWebLoad, bool* fEmbeddedLoad);
|
||
|
STDMETHODIMP put_LoadSettings(int level, bool fExternalLoad, bool fWebLoad, bool fEmbeddedLoad);
|
||
|
|
||
|
// IDirectVobSub2
|
||
|
|
||
|
STDMETHODIMP AdviseSubClock(ISubClock* pSubClock);
|
||
|
STDMETHODIMP_(bool) get_Forced();
|
||
|
STDMETHODIMP put_Forced(bool fForced);
|
||
|
STDMETHODIMP get_TextSettings(STSStyle* pDefStyle);
|
||
|
STDMETHODIMP put_TextSettings(STSStyle* pDefStyle);
|
||
|
|
||
|
// IFilterVersion
|
||
|
|
||
|
STDMETHODIMP_(DWORD) GetFilterVersion();
|
||
|
};
|