]> git.vomp.tv Git - vompclient.git/blob - dsallocator.h
Completion of move recording code. Fixes for dir counts, other bugs.
[vompclient.git] / dsallocator.h
1 /*
2     Copyright 2004-2005 Chris Tallon
3
4     This file is part of VOMP.
5
6     VOMP is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10
11     VOMP is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with VOMP; if not, write to the Free Software
18     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19 */
20 #ifndef DSALLOCATOR_H
21 #define DSALLOCATOR_H
22
23 #include <vector>
24 using namespace std;
25 #include <winsock2.h>
26 #include <streams.h>
27 #include <d3d9.h>
28 #include <vmr9.h>
29
30
31
32
33 class DsAllocator: public IVMRSurfaceAllocator9, IVMRImagePresenter9 {
34 public:
35         DsAllocator();
36         virtual ~DsAllocator();
37
38         virtual HRESULT STDMETHODCALLTYPE StartPresenting(DWORD_PTR userid);
39         virtual HRESULT STDMETHODCALLTYPE StopPresenting(DWORD_PTR userid);
40         virtual HRESULT STDMETHODCALLTYPE PresentImage(DWORD_PTR userid,VMR9PresentationInfo* presinf);
41
42         virtual HRESULT STDMETHODCALLTYPE InitializeDevice(DWORD_PTR userid,
43                 VMR9AllocationInfo* allocinf,DWORD* numbuf);
44         virtual HRESULT STDMETHODCALLTYPE TerminateDevice(DWORD_PTR userid); 
45         virtual HRESULT STDMETHODCALLTYPE GetSurface(DWORD_PTR userid,DWORD surfindex,DWORD surfflags, IDirect3DSurface9** surf);
46         virtual HRESULT STDMETHODCALLTYPE AdviseNotify(IVMRSurfaceAllocatorNotify9* allnoty);
47         \r
48 \r
49         virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID refiid,void ** obj);\r
50         virtual ULONG STDMETHODCALLTYPE AddRef();\r
51         virtual ULONG STDMETHODCALLTYPE Release();\r
52 \r
53     void LostDevice();
54
55 protected:
56         
57         vector<IDirect3DSurface9* > surfaces;
58         CCritSec objCritSec;
59         IVMRSurfaceAllocatorNotify9* surfallocnotify;
60         void CleanupSurfaces();
61         LONG refcount;
62
63
64 };
65
66
67
68
69
70
71
72 #endif\r