/[openvortex]/alsa/pci/au88x0/au88x0_a3d.h
ViewVC logotype

Diff of /alsa/pci/au88x0/au88x0_a3d.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by vizard, Sun Aug 10 20:12:04 2003 UTC revision 1.3 by mjander, Wed Nov 19 23:48:50 2003 UTC
# Line 6  Line 6 
6   *  mjander@users.sourceforge.net   *  mjander@users.sourceforge.net
7   ****************************************************************************/   ****************************************************************************/
8    
9    #ifndef _AU88X0_A3D_H
10    #define _AU88X0_A3D_H
11    
12    
13    #ifdef __cplusplus
14    extern "C"
15    {
16    #endif
17    
18    #define HRTF_SZ 0x38
19    #define DLINE_SZ 0x28
20    
21  typedef struct {  typedef struct {
22          ulong this00; // CAsp4hwIO          void *vortex; // Formerly CAsp4HwIO*, now vortex_t*.
23          ulong this04;          unsigned int source; /* this_04 */
24          ulong this08; // A3D module Index          unsigned int slice;  /* this_08 */
25            } a3dsrc_t;
26  } CA3dSourceHw_t;  
27    
28    
29    /* 3D parameter structs */
30    typedef unsigned short int a3d_Hrtf_t[HRTF_SZ];
31    typedef unsigned short int a3d_ItdDline_t[DLINE_SZ];
32    typedef unsigned short int a3d_atmos_t[5];
33    typedef unsigned short int a3d_LRGains_t[2];
34    typedef unsigned short int a3d_Itd_t[2];
35    
36    typedef struct {
37            a3d_atmos_t atmos_target;
38            a3d_atmos_t atmos_current;
39            a3d_Hrtf_t hrtf_target[2];
40            a3d_Hrtf_t hrtf_current[2];
41            a3d_ItdDline_t dline;
42            a3d_LRGains_t lrgains;
43            a3d_Itd_t itd_target;
44            a3d_Itd_t itd_current;
45            unsigned short gainL;
46            unsigned short gainR;
47    } a3d_params_t;
48    
49    /* First Register bank */
50    #define A3D_A_HrtfCurrent       0x18000 /* 56 ULONG */
51    #define A3D_A_GainCurrent       0x180E0
52    #define A3D_A_GainTarget        0x180E4
53    #define A3D_A_A12Current        0x180E8 /* Atmospheric current. */
54    #define A3D_A_A21Target         0x180EC /* Atmospheric target */
55    #define A3D_A_B01Current        0x180F0 /* Atmospheric current */
56    #define A3D_A_B10Target         0x180F4 /* Atmospheric target */
57    #define A3D_A_B2Current         0x180F8 /* Atmospheric current */
58    #define A3D_A_B2Target          0x180FC /* Atmospheric target */
59    #define A3D_A_HrtfTarget        0x18100 /* 56 ULONG */
60    #define A3D_A_ITDCurrent        0x181E0
61    #define A3D_A_ITDTarget         0x181E4
62    #define A3D_A_HrtfDelayLine     0x181E8 /* 56 ULONG */
63    #define A3D_A_ITDDelayLine      0x182C8 /* 45 ULONG */
64    #define A3D_A_HrtfTrackTC       0x1837C /* Time Constants */
65    #define A3D_A_GainTrackTC       0x18380
66    #define A3D_A_CoeffTrackTC      0x18384
67    #define A3D_A_ITDTrackTC        0x18388
68    #define A3D_A_x1                        0x1838C
69    #define A3D_A_x2                        0x18390
70    #define A3D_A_y1                        0x18394
71    #define A3D_A_y2                        0x18398
72    #define A3D_A_HrtfOutL          0x1839C
73    #define A3D_A_HrtfOutR          0x183A0
74    #define         A3D_A_TAIL              0x183A4
75    
76    /* Second register bank */
77    #define A3D_B_HrtfCurrent       0x19000 /* 56 ULONG */
78    #define A3D_B_GainCurrent       0x190E0
79    #define A3D_B_GainTarget        0x190E4
80    #define A3D_B_A12Current        0x190E8
81    #define A3D_B_A21Target         0x190EC
82    #define A3D_B_B01Current        0x190F0
83    #define A3D_B_B10Target         0x190F4
84    #define A3D_B_B2Current         0x190F8
85    #define A3D_B_B2Target          0x190FC
86    #define A3D_B_HrtfTarget        0x19100 /* 56 ULONG */
87    #define A3D_B_ITDCurrent        0x191E0
88    #define A3D_B_ITDTarget         0x191E4
89    #define A3D_B_HrtfDelayLine     0x191E8 /* 56 ULONG */
90    #define         A3D_B_TAIL              0x192C8
91    
92    /* There are 4 slices, 4 a3d each = 16 a3d sources. */
93    #define A3D_SLICE_BANK_A                0x18000 /* 4 sources */
94    #define A3D_SLICE_BANK_B                0x19000 /* 4 sources */
95    #define A3D_SLICE_VDBDest               0x19C00 /* 8 ULONG */
96    #define A3D_SLICE_VDBSource             0x19C20 /* 4 ULONG */
97    #define A3D_SLICE_ABReg                 0x19C30
98    #define A3D_SLICE_CReg                  0x19C34
99    #define A3D_SLICE_Control               0x19C38
100    #define A3D_SLICE_DebugReserved 0x19C3c /* Dangerous! */
101    #define A3D_SLICE_Pointers              0x19C40 /* 4 ULONG */
102    #define         A3D_SLICE_TAIL          0x1A000
103    
104    
105    /* Address generator macro. */
106    #define a3d_addr(slice,source,reg) ((slice<<0xf)+(source<<0xd)+reg)
107            
108    #ifdef __cplusplus
109    }
110    #endif
111    
112  short A3dHrirZeros[0x1C] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};  #endif /* _AU88X0_A3D_H */
 short A3dItdDlineZeros[0x16] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};  
 short A3dHrirImpulse[0x1c] = {7FFFh,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};  

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26