doom3-gpl
Doom 3 GPL source release
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
eaxman.h
Go to the documentation of this file.
1 /*
2 */
3 #ifndef __EAXMANH
4 #define __EAXMANH
5 
6 #define COM_NO_WINDOWS_H
7 #include <objbase.h>
8 #include "eax3.h"
9 
10 #ifdef __cplusplus
11 extern "C" {
12 #endif // __cplusplus
13 
14 //#define CLSID_EAXMANAGER CLSID_EAX20_Manager
15 //#define IID_IEaxManager IID_EAX20_Manager
16 #define EM_MAX_NAME 32
17 
18 #define EMFLAG_IDDEFAULT (-1)
19 #define EMFLAG_IDNONE (-2)
20 #define EMFLAG_LOCKPOSITION 1
21 #define EMFLAG_LOADFROMMEMORY 2
22 #define EMFLAG_NODIFFRACTION 4
23 
24 typedef struct _EMPOINT {
25  float fX;
26  float fY;
27  float fZ;
28 } EMPOINT;
30 
31 typedef struct _LISTENERATTRIBUTES {
37 
38 typedef struct _SOURCEATTRIBUTES {
40  unsigned long ulInsideConeAngle;
41  unsigned long ulOutsideConeAngle;
43  float fConeXdir;
44  float fConeYdir;
45  float fConeZdir;
46  float fMinDistance;
47  float fMaxDistance;
48  long lDupCount;
49  long lPriority;
52 
53 typedef struct _MATERIALATTRIBUTES {
54  long lLevel;
55  float fLFRatio;
56  float fRoomRatio;
60 
61 #define EMMATERIAL_OBSTRUCTS 1
62 #define EMMATERIAL_OCCLUDES 3
63 
64 typedef struct _DIFFRACTIONBOX {
70 
71 // {7CE4D6E6-562F-11d3-8812-005004062F83}
72 DEFINE_GUID(CLSID_EAXMANAGER, 0x60b721a1, 0xf7c8, 0x11d2, 0xa0, 0x2e, 0x0, 0x50, 0x4, 0x6, 0x18, 0xb8);
73 
74 #ifdef __cplusplus
75 struct IEaxManager;
76 #endif // __cplusplus
77 
78 typedef struct IEaxManager *LPEAXMANAGER;
79 
80 // {7CE4D6E8-562F-11d3-8812-005004062F83}
81 DEFINE_GUID(IID_IEaxManager, 0x60b721a2, 0xf7c8, 0x11d2, 0xa0, 0x2e, 0x0, 0x50, 0x4, 0x6, 0x18, 0xb8);
82 
83 #undef INTERFACE
84 #define INTERFACE IEaxManager
85 
86 extern HRESULT __stdcall EaxManagerCreate(LPEAXMANAGER*);
87 typedef HRESULT (__stdcall *LPEAXMANAGERCREATE)(LPEAXMANAGER*);
88 
89 DECLARE_INTERFACE_(IEaxManager, IUnknown)
90 {
91  // IUnknown methods
92  STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID *) PURE;
93  STDMETHOD_(ULONG,AddRef) (THIS) PURE;
94  STDMETHOD_(ULONG,Release) (THIS) PURE;
95 
96  STDMETHOD(GetDataSetSize) (THIS_ unsigned long*, DWORD) PURE;
97  STDMETHOD(LoadDataSet) (THIS_ char*, DWORD) PURE;
98  STDMETHOD(FreeDataSet) (THIS_ DWORD) PURE;
99  STDMETHOD(GetListenerAttributes) (THIS_ LPLISTENERATTRIBUTES) PURE;
100  STDMETHOD(GetSourceID) (THIS_ char*, long*) PURE;
101  STDMETHOD(GetSourceAttributes) (THIS_ long, LPSOURCEATTRIBUTES) PURE;
102  STDMETHOD(GetSourceNumInstances) (THIS_ long, long*) PURE;
103  STDMETHOD(GetSourceInstancePos) (THIS_ long, long, LPEMPOINT) PURE;
104  STDMETHOD(GetEnvironmentID) (THIS_ char*, long*) PURE;
105  STDMETHOD(GetEnvironmentAttributes) (THIS_ long, LPEAXLISTENERPROPERTIES) PURE;
106  STDMETHOD(GetMaterialID) (THIS_ char*, long*) PURE;
107  STDMETHOD(GetMaterialAttributes) (THIS_ long, LPMATERIALATTRIBUTES) PURE;
108  STDMETHOD(GetGeometrySetID) (THIS_ char*, long*) PURE;
109  STDMETHOD(GetListenerDynamicAttributes) (THIS_ long, LPEMPOINT, long*, DWORD) PURE;
110  STDMETHOD(GetSourceDynamicAttributes) (THIS_ long, LPEMPOINT, long*, float*, long*, float*, float*, LPEMPOINT, DWORD) PURE;
111 // STDMETHOD(GetSubSpaceID) (THIS_ long, LPEMPOINT, long *) PURE;
112  STDMETHOD(GetEnvironmentName) (THIS_ long, char *szString, long lStrlen) PURE;
113 };
114 
115 #if !defined(__cplusplus) || defined(CINTERFACE)
116 #define IEaxManager_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
117 #define IEaxManager_AddRef(p) (p)->lpVtbl->AddRef(p)
118 #define IEaxManager_Release(p) (p)->lpVtbl->Release(p)
119 #define IEaxManager_GetDataSetSize(p,a,b) (p)->lpVtbl->GetDataSetSize(p,a,b)
120 #define IEaxManager_LoadDataSet(p,a,b) (p)->lpVtbl->LoadDataSet(p,a,b)
121 #define IEaxManager_FreeDataSet(p,a) (p)->lpVtbl->FreeDataSet(p,a)
122 #define IEaxManager_GetListenerAttributes(p,a) (p)->lpVtbl->GetListenerAttributes(p,a)
123 #define IEaxManager_GetSourceID(p,a,b) (p)->lpVtbl->GetSourceID(p,a,b)
124 #define IEaxManager_GetSourceAttributes(p,a,b) (p)->lpVtbl->GetSourceAttributes(p,a,b)
125 #define IEaxManager_GetSourceNumInstances(p,a,b) (p)->lpVtbl->GetSourceNumInstances(p,a,b)
126 #define IEaxManager_GetSourceInstancePos(p,a,b,c) (p)->lpVtbl->GetSourceInstancePos(p,a,b,c)
127 #define IEaxManager_GetEnvironmentID(p,a,b) (p)->lpVtbl->GetEnvironmentID(p,a,b)
128 #define IEaxManager_GetEnvironmentAttributes(p,a,b) (p)->lpVtbl->GetEnvironmentAttributes(p,a,b)
129 #define IEaxManager_GetMaterialID(p,a,b) (p)->lpVtbl->GetMaterialID(p,a,b)
130 #define IEaxManager_GetMaterialAttributes(p,a,b) (p)->lpVtbl->GetMaterialAttributes(p,a,b)
131 #define IEaxManager_GetGeometrySetID(p,a,b) (p)->lpVtbl->GetGeometrySetID(p,a,b)
132 #define IEaxManager_GetListenerDynamicAttributes(p,a,b,c,d) (p)->lpVtbl->GetListenerDynamicAttributes(p,a,b,c,d)
133 #define IEaxManager_GetSourceDynamicAttributes(p,a,b,c,d,e,f,g,h,i) (p)->lpVtbl->GetSourceDynamicAttributes(p,a,b,c,d,e,f,g,h,i)
134 //#define IEaxManager_GetSubSpaceID(p,a,b,c) (p)->lpVtbl->GetSubSpaceID(p,a,b,c)
135 #define IEaxManager_GetEnvironmentName(p,a,b,c) (p)->lpVtbl->GetEnvironmentName(p,a,b,c)
136 #else
137 #define IEaxManager_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
138 #define IEaxManager_AddRef(p) (p)->AddRef()
139 #define IEaxManager_Release(p) (p)->Release()
140 #define IEaxManager_GetDataSetSize(p,a,b) (p)->GetDataSetSize(a,b)
141 #define IEaxManager_LoadDataSet(p,a,b) (p)->LoadDataSet(a,b)
142 #define IEaxManager_FreeDataSet(p,a) (p)->FreeDataSet(a)
143 #define IEaxManager_GetListenerAttributes(p,a) (p)->GetListenerAttributes(a)
144 #define IEaxManager_GetSourceID(p,a,b) (p)->GetSourceID(a,b)
145 #define IEaxManager_GetSourceAttributes(p,a,b) (p)->GetSourceAttributes(a,b)
146 #define IEaxManager_GetSourceNumInstances(p,a,b) (p)->GetSourceNumInstances(a,b)
147 #define IEaxManager_GetSourceInstancePos(p,a,b,c) (p)->GetSourceInstancePos(a,b,c)
148 #define IEaxManager_GetEnvironmentID(p,a,b) (p)->GetEnvironmentID(a,b)
149 #define IEaxManager_GetEnvironmentAttributes(p,a,b) (p)->GetEnvironmentAttributes(a,b)
150 #define IEaxManager_GetMaterialID(p,a,b) (p)->GetMaterialID(a,b)
151 #define IEaxManager_GetMaterialAttributes(p,a,b) (p)->GetMaterialAttributes(a,b)
152 #define IEaxManager_GetGeometrySetID(p,a,b) (p)->GetGeometrySetID(a,b)
153 #define IEaxManager_GetListenerDynamicAttributes(p,a,b,c,d) (p)->GetListenerDynamicAttributes(a,b,c,d)
154 #define IEaxManager_GetSourceDynamicAttributes(p,a,b,c,d,e,f,g,h,i) (p)->GetSourceDynamicAttributes(a,b,c,d,e,f,g,h,i)
155 //#define IEaxManager_GetSubSpaceID(p,a,b,c) (p)->GetSubSpaceID(a,b,c)
156 #define IEaxManager_GetEnvironmentName(p,a,b,c) (p)->GetEnvironmentName(a,b,c)
157 #endif
158 
159 #define EM_OK 0
160 #define EM_INVALIDID MAKE_HRESULT(1, FACILITY_ITF, 1)
161 #define EM_IDNOTFOUND MAKE_HRESULT(1, FACILITY_ITF, 2)
162 #define EM_FILENOTFOUND MAKE_HRESULT(1, FACILITY_ITF, 3)
163 #define EM_FILEINVALID MAKE_HRESULT(1, FACILITY_ITF, 4)
164 #define EM_VERSIONINVALID MAKE_HRESULT(1, FACILITY_ITF, 5)
165 #define EM_INSTANCENOTFOUND MAKE_HRESULT(1, FACILITY_ITF, 6)
166 
167 #ifdef __cplusplus
168 };
169 #endif // __cplusplus
170 
171 #endif
float fMinDistance
Definition: eaxman.h:46
float fX
Definition: eaxman.h:25
float fConeXdir
Definition: eaxman.h:43
struct _SOURCEATTRIBUTES SOURCEATTRIBUTES
HRESULT(__stdcall * LPEAXMANAGERCREATE)(LPEAXMANAGER *)
Definition: eaxman.h:87
DWORD
Definition: win_qgl.cpp:61
SOURCEATTRIBUTES FAR * LPSOURCEATTRIBUTES
Definition: eaxman.h:51
DEFINE_GUID(CLSID_EAXMANAGER, 0x60b721a1, 0xf7c8, 0x11d2, 0xa0, 0x2e, 0x0, 0x50, 0x4, 0x6, 0x18, 0xb8)
struct _EMPOINT EMPOINT
EMPOINT FAR * LPEMPOINT
Definition: eaxman.h:29
float fY
Definition: eaxman.h:26
float fConeZdir
Definition: eaxman.h:45
MATERIALATTRIBUTES FAR * LPMATERIALATTRIBUTES
Definition: eaxman.h:59
DECLARE_INTERFACE_(IEaxManager, IUnknown)
Definition: eaxman.h:89
EMPOINT empMax
Definition: eaxman.h:67
unsigned long ulInsideConeAngle
Definition: eaxman.h:40
EMPOINT empMin
Definition: eaxman.h:66
LISTENERATTRIBUTES FAR * LPLISTENERATTRIBUTES
Definition: eaxman.h:36
unsigned long ulOutsideConeAngle
Definition: eaxman.h:41
#define FAR
Definition: jmorecfg.h:205
DIFFRACTIONBOX FAR * LPDIFFRACTIONBOX
Definition: eaxman.h:69
struct _DIFFRACTIONBOX DIFFRACTIONBOX
long lPriority
Definition: eaxman.h:49
HRESULT __stdcall EaxManagerCreate(LPEAXMANAGER *)
float fDopplerFactor
Definition: eaxman.h:34
float fZ
Definition: eaxman.h:27
float fDistanceFactor
Definition: eaxman.h:32
long lConeOutsideVolume
Definition: eaxman.h:42
EAXBUFFERPROPERTIES eaxAttributes
Definition: eaxman.h:39
float fRolloffFactor
Definition: eaxman.h:33
typedef LPVOID(WINAPI *PFNWGLCREATEIMAGEBUFFERI3DPROC)(HDC hDC
long lDupCount
Definition: eaxman.h:48
struct _LISTENERATTRIBUTES LISTENERATTRIBUTES
struct IEaxManager * LPEAXMANAGER
Definition: eaxman.h:78
long lSubspaceID
Definition: eaxman.h:65
struct _MATERIALATTRIBUTES MATERIALATTRIBUTES
struct _EAXLISTENERPROPERTIES * LPEAXLISTENERPROPERTIES
float fConeYdir
Definition: eaxman.h:44
LPDIRECTSOUND IUnknown FAR *typedef HRESULT(FAR PASCAL *LPEAXDIRECTSOUNDCREATE)(GUID *
float fRoomRatio
Definition: eaxman.h:56
float fMaxDistance
Definition: eaxman.h:47