brintos

brintos / linux-shallow public Read only

0
0
Text · 3.6 KiB · 4078173 Raw
112 lines · c
1/* SPDX-License-Identifier: GPL-2.0-or-later */2/***************************************************************************3 *            au88x0_a3d.h4 *5 *  Fri Jul 18 14:16:03 20036 *  Copyright  2003  mjander7 *  mjander@users.sourceforge.net8 ****************************************************************************/9 10/*11 */12 13#ifndef _AU88X0_A3D_H14#define _AU88X0_A3D_H15 16//#include <openal.h>17 18#define HRTF_SZ 0x3819#define DLINE_SZ 0x2820 21#define CTRLID_HRTF		122#define CTRLID_ITD		223#define CTRLID_ILD		424#define CTRLID_FILTER	825#define CTRLID_GAINS	1626 27/* 3D parameter structs */28typedef unsigned short int a3d_Hrtf_t[HRTF_SZ];29typedef unsigned short int a3d_ItdDline_t[DLINE_SZ];30typedef unsigned short int a3d_atmos_t[5];31typedef unsigned short int a3d_LRGains_t[2];32typedef unsigned short int a3d_Itd_t[2];33typedef unsigned short int a3d_Ild_t[2];34 35typedef struct {36	void *vortex;		// Formerly CAsp4HwIO*, now vortex_t*.37	unsigned int source;	/* this_04 */38	unsigned int slice;	/* this_08 */39	a3d_Hrtf_t hrtf[2];40	a3d_Itd_t itd;41	a3d_Ild_t ild;42	a3d_ItdDline_t dline;43	a3d_atmos_t filter;44} a3dsrc_t;45 46/* First Register bank */47 48#define A3D_A_HrtfCurrent	0x18000	/* 56 ULONG */49#define A3D_A_GainCurrent	0x180E050#define A3D_A_GainTarget	0x180E451#define A3D_A_A12Current	0x180E8	/* Atmospheric current. */52#define A3D_A_A21Target		0x180EC	/* Atmospheric target */53#define A3D_A_B01Current	0x180F0	/* Atmospheric current */54#define A3D_A_B10Target		0x180F4	/* Atmospheric target */55#define A3D_A_B2Current		0x180F8	/* Atmospheric current */56#define A3D_A_B2Target		0x180FC	/* Atmospheric target */57#define A3D_A_HrtfTarget	0x18100	/* 56 ULONG */58#define A3D_A_ITDCurrent	0x181E059#define A3D_A_ITDTarget		0x181E460#define A3D_A_HrtfDelayLine	0x181E8	/* 56 ULONG */61#define A3D_A_ITDDelayLine	0x182C8	/* 40/45 ULONG */62#define A3D_A_HrtfTrackTC	0x1837C	/* Time Constants */63#define A3D_A_GainTrackTC	0x1838064#define A3D_A_CoeffTrackTC	0x1838465#define A3D_A_ITDTrackTC	0x1838866#define A3D_A_x1			0x1838C67#define A3D_A_x2			0x1839068#define A3D_A_y1			0x1839469#define A3D_A_y2			0x1839870#define A3D_A_HrtfOutL		0x1839C71#define A3D_A_HrtfOutR		0x183A072#define 	A3D_A_TAIL		0x183A473 74/* Second register bank */75#define A3D_B_HrtfCurrent	0x19000	/* 56 ULONG */76#define A3D_B_GainCurrent	0x190E077#define A3D_B_GainTarget	0x190E478#define A3D_B_A12Current	0x190E879#define A3D_B_A21Target		0x190EC80#define A3D_B_B01Current	0x190F081#define A3D_B_B10Target		0x190F482#define A3D_B_B2Current		0x190F883#define A3D_B_B2Target		0x190FC84#define A3D_B_HrtfTarget	0x19100	/* 56 ULONG */85#define A3D_B_ITDCurrent	0x191E086#define A3D_B_ITDTarget		0x191E487#define A3D_B_HrtfDelayLine	0x191E8	/* 56 ULONG */88#define 	A3D_B_TAIL		0x192C889 90/* There are 4 slices, 4 a3d each = 16 a3d sources. */91#define A3D_SLICE_BANK_A		0x18000	/* 4 sources */92#define A3D_SLICE_BANK_B		0x19000	/* 4 sources */93#define A3D_SLICE_VDBDest		0x19C00	/* 8 ULONG */94#define A3D_SLICE_VDBSource		0x19C20	/* 4 ULONG */95#define A3D_SLICE_ABReg			0x19C3096#define A3D_SLICE_CReg			0x19C3497#define A3D_SLICE_Control		0x19C3898#define A3D_SLICE_DebugReserved	0x19C3c	/* Dangerous! */99#define A3D_SLICE_Pointers		0x19C40100#define 	A3D_SLICE_TAIL		0x1A000101 102// Slice size: 0x2000103// Source size: 0x3A4, 0x2C8104 105/* Address generator macro. */106#define a3d_addrA(slice,source,reg) (((slice)<<0xd)+((source)*0x3A4)+(reg))107#define a3d_addrB(slice,source,reg) (((slice)<<0xd)+((source)*0x2C8)+(reg))108#define a3d_addrS(slice,reg) (((slice)<<0xd)+(reg))109//#define a3d_addr(slice,source,reg) (((reg)>=0x19000) ? a3d_addr2((slice),(source),(reg)) : a3d_addr1((slice),(source),(reg)))110 111#endif				/* _AU88X0_A3D_H */112