summaryrefslogtreecommitdiffhomepage
path: root/StarsEx/IA3D.H
diff options
context:
space:
mode:
authorAki <please@ignore.pl>2022-04-01 21:23:39 +0200
committerAki <please@ignore.pl>2022-04-01 21:23:39 +0200
commit3c487c5cd69c53d6fea948643c0a76df03516605 (patch)
tree72730c7b8b26a5ef8fc9a987ec4c16129efd5aac /StarsEx/IA3D.H
parent8f353abd0bfe18baddd8a8250ab7c4f2d1c83a6e (diff)
downloadstarshatter-3c487c5cd69c53d6fea948643c0a76df03516605.zip
starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.gz
starshatter-3c487c5cd69c53d6fea948643c0a76df03516605.tar.bz2
Moved Stars45 to StarsEx
Diffstat (limited to 'StarsEx/IA3D.H')
-rw-r--r--StarsEx/IA3D.H128
1 files changed, 128 insertions, 0 deletions
diff --git a/StarsEx/IA3D.H b/StarsEx/IA3D.H
new file mode 100644
index 0000000..9e4e319
--- /dev/null
+++ b/StarsEx/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_