Support unrar64.dll
[xy_vsfilter.git] / src / subpic / SubPicProviderImpl.h
blob5aff98b0223122344c99faf2b071266b2ca45e1a
1 /*
2 * $Id: SubPicProviderImpl.h 2585 2010-09-18 12:39:20Z xhmikosr $
4 * (C) 2003-2006 Gabest
5 * (C) 2006-2010 see AUTHORS
7 * This Program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2, or (at your option)
10 * any later version.
12 * This Program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with GNU Make; see the file COPYING. If not, write to
19 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
20 * http://www.gnu.org/copyleft/gpl.html
24 #pragma once
26 #include "ISubPic.h"
28 class CSubPicProviderImpl : public CUnknown, public ISubPicProviderEx
30 protected:
31 CCritSec* m_pLock;
33 public:
34 CSubPicProviderImpl(CCritSec* pLock);
35 virtual ~CSubPicProviderImpl();
37 DECLARE_IUNKNOWN;
38 STDMETHODIMP NonDelegatingQueryInterface(REFIID riid, void** ppv);
40 // ISubPicProvider
42 STDMETHODIMP Lock();
43 STDMETHODIMP Unlock();
45 STDMETHODIMP_(POSITION) GetStartPosition(REFERENCE_TIME rt, double fps) = 0;
46 STDMETHODIMP_(POSITION) GetNext(POSITION pos) = 0;
48 STDMETHODIMP_(REFERENCE_TIME) GetStart(POSITION pos, double fps) = 0;
49 STDMETHODIMP_(REFERENCE_TIME) GetStop(POSITION pos, double fps) = 0;
51 STDMETHODIMP Render(SubPicDesc& spd, REFERENCE_TIME rt, double fps, RECT& bbox) = 0;
52 STDMETHODIMP GetTextureSize (POSITION pos, SIZE& MaxTextureSize, SIZE& VirtualSize, POINT& VirtualTopLeft) {
53 return E_NOTIMPL;
56 // ISubPicProviderEx
58 STDMETHODIMP_(VOID) GetStartStop(POSITION pos, double fps, /*out*/REFERENCE_TIME& start, /*out*/REFERENCE_TIME& stop);
60 STDMETHODIMP RenderEx(SubPicDesc& spd, REFERENCE_TIME rt, double fps, CAtlList<CRect>& rectList);
62 STDMETHODIMP_(bool) IsColorTypeSupported(int type);