From 966fe28c59f59fc8be795c8215b9352435982445 Mon Sep 17 00:00:00 2001 From: Aki Date: Thu, 30 Sep 2021 16:46:36 +0200 Subject: Merged nGenEx and Parser into Stars45 --- Stars45/IA3D.H | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 Stars45/IA3D.H (limited to 'Stars45/IA3D.H') diff --git a/Stars45/IA3D.H b/Stars45/IA3D.H new file mode 100644 index 0000000..9e4e319 --- /dev/null +++ b/Stars45/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_ -- cgit v1.1