summaryrefslogtreecommitdiffhomepage
path: root/nGenEx/IA3D.H
diff options
context:
space:
mode:
authorFWoltermann@gmail.com <FWoltermann@gmail.com@076cb2c4-205e-83fd-5cf3-1be9aa105544>2011-12-08 14:53:40 +0000
committerFWoltermann@gmail.com <FWoltermann@gmail.com@076cb2c4-205e-83fd-5cf3-1be9aa105544>2011-12-08 14:53:40 +0000
commite33e19d0587146859d48a134ec9fd94e7b7ba5cd (patch)
tree69d048c8801858d2756ab3a487090a7a1b74bf14 /nGenEx/IA3D.H
downloadstarshatter-e33e19d0587146859d48a134ec9fd94e7b7ba5cd.zip
starshatter-e33e19d0587146859d48a134ec9fd94e7b7ba5cd.tar.gz
starshatter-e33e19d0587146859d48a134ec9fd94e7b7ba5cd.tar.bz2
Initial upload
Diffstat (limited to 'nGenEx/IA3D.H')
-rw-r--r--nGenEx/IA3D.H128
1 files changed, 128 insertions, 0 deletions
diff --git a/nGenEx/IA3D.H b/nGenEx/IA3D.H
new file mode 100644
index 0000000..9ecef73
--- /dev/null
+++ b/nGenEx/IA3D.H
@@ -0,0 +1,128 @@
+/*---------------------------------------------------------------------
+ *
+ * ia3d.h
+ *
+ *---------------------------------------------------------------------
+ *
+ * $Id: ia3d.h%v 1.1 1996/09/02 10:50:35 mike Exp mike $
+ *
+ *---------------------------------------------------------------------
+ *
+ * ia3d header file. It's the part the outside world needs to see.
+ *
+ *---------------------------------------------------------------------
+ *
+ * AUREAL SEMICONDUCTOR, INC. PROPRIETARY AND CONFIDENTIAL
+ * Copyright (c) 1996 Aureal Semiconductor, Inc. - All rights
+ * reserved.
+ *
+ *---------------------------------------------------------------------
+ */
+
+
+#ifndef _IA3D_H_
+#define _IA3D_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+// A3d Class ID! {D8F1EEE0-F634-11cf-8700-00A0245D918B}
+DEFINE_GUID(CLSID_A3d,
+0xd8f1eee0, 0xf634, 0x11cf, 0x87, 0x0, 0x0, 0xa0, 0x24, 0x5d, 0x91, 0x8b);
+
+// A3d Interface ID! {D8F1EEE1-F634-11cf-8700-00A0245D918B}
+DEFINE_GUID(IID_IA3d,
+0xd8f1eee1, 0xf634, 0x11cf, 0x87, 0x0, 0x0, 0xa0, 0x24, 0x5d, 0x91, 0x8b);
+
+
+// Bits for manipulating output modes
+
+// Values for bOutputMode
+#define OUTPUT_MODE_STEREO 0x00000001
+#define OUTPUT_MODE_QUAD 0x00000002
+
+// Values for FrontXtalkMode and bRearXtalkMode
+#define OUTPUT_HEADPHONES 0x00000001 // headphones
+#define OUTPUT_SPEAKERS_WIDE 0x00000002
+#define OUTPUT_SPEAKERS_NARROW 0x00000003
+
+// Values for Resource Management Mode
+#define A3D_RESOURCE_MODE_OFF 0x00000000
+#define A3D_RESOURCE_MODE_NOTIFY 0x00000001
+#define A3D_RESOURCE_MODE_DYNAMIC 0x00000002
+
+// Declare the IA3d Interface. It's not very complex at all.
+
+#undef INTERFACE
+#define INTERFACE IA3d
+
+typedef struct IA3d *LPIA3D;
+
+DECLARE_INTERFACE_(IA3d, IUnknown)
+{
+ // IUnknown
+ STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID * ppvObj) PURE;
+ STDMETHOD_(ULONG,AddRef) (THIS) PURE;
+ STDMETHOD_(ULONG,Release) (THIS) PURE;
+
+ // IA3d
+ STDMETHOD(SetOutputMode)(THIS_ DWORD dwFrontXtalkMode, DWORD dwBackXtalkMode, DWORD dwQuadMode) PURE;
+ STDMETHOD(GetOutputMode)(THIS_ DWORD *lpdwFrontXtalkMode, DWORD *lpdwBackXtalkMode, DWORD *lpdwQuadMode) PURE;
+
+ STDMETHOD(SetResourceManagerMode) (THIS_ DWORD ) PURE;
+ STDMETHOD(GetResourceManagerMode) (THIS_ DWORD *) PURE;
+
+ STDMETHOD(SetHFAbsorbFactor)(THIS_ FLOAT ) PURE;
+ STDMETHOD(GetHFAbsorbFactor)(THIS_ FLOAT *) PURE;
+
+};
+
+
+
+
+// The library function that gets things going. It returns an interface
+// pointer to DirectSound.
+
+#define A3D_OK 1 // A3dCreate returns this upon detection of A3D enabled hardware.
+
+_declspec (dllexport) HRESULT WINAPI
+A3dCreate(GUID * lpGUID, LPDIRECTSOUND * ppDS, IUnknown FAR *pUnkOuter );
+
+// Usefull Macros for C folks.
+
+#if !defined(__cplusplus) || defined(CINTERFACE)
+#define IA3d_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
+#define IA3d_AddRef(p) (p)->lpVtbl->AddRef(p)
+#define IA3d_Release(p) (p)->lpVtbl->Release(p)
+#define IA3d_SetOutputMode(p,a,b,c) (p)->lpVtbl->SetOutputMode(p,a,b,c)
+#define IA3d_GetOutputMode(p,a,b,c) (p)->lpVtbl->GetOutputMode(p,a,b,c)
+#define IA3d_SetResourceManagerMode(p,a) (p)->lpVtbl->SetResourceManagerMode(p,a)
+#define IA3d_GetResourceManagerMode(p,a) (p)->lpVtbl->GetResourceManagerMode(p,a)
+#define IA3d_SetHFAbsorbFactor(p,a) (p)->lpVtbl->SetHFAbsorbFactor(p,a)
+#define IA3d_GetHFAbsorbFactor(p,a) (p)->lpVtbl->GetHFAbsorbFactor(p,a)
+
+
+#else
+#define IA3d_QueryInterface(p,a,b) (p)->QueryInterface(a,b)
+#define IA3d_AddRef(p) (p)->AddRef()
+#define IA3d_Release(p) (p)->Release()
+#define IA3d_SetOutputMode(p,a,b,c) (p)->SetOutputMode(a,b,c)
+#define IA3d_GetOutputMode(p,a,b,c) (p)->GetOutputMode(a,b,c)
+#define IA3d_SetResourceManagerMode(p,a) (p)->SetResourceManagerMode(a)
+#define IA3d_GetResourceManagerMode(p,a) (p)->GetResourceManagerMode(a)
+#define IA3d_SetHFAbsorbFactor(p,a) (p)->SetHFAbsorbFactor(a)
+#define IA3d_GetHFAbsorbFactor(p,a) (p)->GetHFAbsorbFactor(a)
+
+#endif
+
+
+
+#ifdef __cplusplus
+};
+#endif
+
+
+
+#endif // _IA3D_H_