Aegisub/vsfilter/DirectVobSub.h

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();
};