| version 1.4, 2004/01/05 14:16:35 | version 1.7, 2005/04/08 19:39:09 | 
| Line 1 | Line 1 | 
 |  |  | 
 | typedef REG8 (*CS4231DMA)(DMACH dmach); |  | 
 |  |  | 
 | enum { | enum { | 
| CS4231_BUFFERS  = (1 << 6), | CS4231_BUFFERS  = (1 << 9), | 
| CS4231_BUFBYTES = (CS4231_BUFFERS * 4) | CS4231_BUFMASK  = (CS4231_BUFFERS - 1) | 
 | }; | }; | 
 |  |  | 
 | typedef struct { | typedef struct { | 
| BYTE    adc_l;                          // 0 | UINT8   adc_l;                          // 0 | 
| BYTE    adc_r;                          // 1 | UINT8   adc_r;                          // 1 | 
| BYTE    aux1_l;                         // 2 | UINT8   aux1_l;                         // 2 | 
| BYTE    aux1_r;                         // 3 | UINT8   aux1_r;                         // 3 | 
| BYTE    aux2_l;                         // 4 | UINT8   aux2_l;                         // 4 | 
| BYTE    aux2_r;                         // 5 | UINT8   aux2_r;                         // 5 | 
| BYTE    dac_l;                          // 6 | UINT8   dac_l;                          // 6 | 
| BYTE    dac_r;                          // 7 | UINT8   dac_r;                          // 7 | 
| BYTE    datafmt;                        // 8 | UINT8   datafmt;                        // 8 | 
| BYTE    intconfig;                      // 9 | UINT8   iface;                          // 9 | 
| BYTE    pinctrl;                        // a | UINT8   pinctrl;                        // a | 
| BYTE    errorstatus; | UINT8   errorstatus; | 
| BYTE    mode_id; | UINT8   mode_id; | 
| BYTE    loopctrl; | UINT8   loopctrl; | 
| BYTE    playcount[2]; | UINT8   playcount[2]; | 
|  |  | 
| BYTE    featurefunc[2]; | UINT8   featurefunc[2]; | 
| BYTE    line_l; | UINT8   line_l; | 
| BYTE    line_r; | UINT8   line_r; | 
| BYTE    timer[2]; | UINT8   timer[2]; | 
| BYTE    reserved1; | UINT8   reserved1; | 
| BYTE    reserved2; | UINT8   reserved2; | 
| BYTE    featurestatus; | UINT8   featurestatus; | 
| BYTE    chipid; | UINT8   chipid; | 
| BYTE    monoinput; | UINT8   monoinput; | 
| BYTE    reserved3; | UINT8   reserved3; | 
| BYTE    cap_datafmt; | UINT8   cap_datafmt; | 
| BYTE    reserved4; | UINT8   reserved4; | 
| BYTE    cap_basecount[2]; | UINT8   cap_basecount[2]; | 
 | } CS4231REG; | } CS4231REG; | 
 |  |  | 
 | typedef struct { | typedef struct { | 
 | UINT            bufsize; | UINT            bufsize; | 
| UINT            readpos; | UINT            bufdatas; | 
| UINT            writepos; | UINT            bufpos; | 
| UINT32          curtime; | UINT32          pos12; | 
| UINT32          step; | UINT32          step12; | 
| SINT16          pcmdata[2]; |  | 
| CS4231DMA       proc; | UINT8           enable; | 
|  | UINT8           portctrl; | 
| BYTE            enable; | UINT8           dmairq; | 
| BYTE            portctrl; | UINT8           dmach; | 
| UINT16          port; | UINT16          port[8]; | 
| BYTE            dmairq; | UINT8           adrs; | 
| BYTE            dmach; | UINT8           index; | 
| BYTE            adrs; | UINT8           intflag; | 
| BYTE            index; | UINT8           outenable; | 
| BYTE            intflag; | UINT8           extfunc; | 
| BYTE            outenable; | UINT8           extindex; | 
| BYTE            extfunc; |  | 
| BYTE            padding; |  | 
 |  |  | 
 | CS4231REG       reg; | CS4231REG       reg; | 
| BYTE            buffer[CS4231_BUFBYTES]; | UINT8           buffer[CS4231_BUFFERS]; | 
 | } _CS4231, *CS4231; | } _CS4231, *CS4231; | 
 |  |  | 
 | typedef struct { | typedef struct { | 
| Line 72  typedef struct { | Line 68  typedef struct { | 
 | extern "C" { | extern "C" { | 
 | #endif | #endif | 
 |  |  | 
 | extern const CS4231DMA cs4231dec[16]; |  | 
 |  |  | 
 | REG8 cs4231_nodecode(DMACH dmach); |  | 
 | void cs4231_dma(NEVENTITEM item); | void cs4231_dma(NEVENTITEM item); | 
 | REG8 DMACCALL cs4231dmafunc(REG8 func); | REG8 DMACCALL cs4231dmafunc(REG8 func); | 
 |  | void cs4231_datasend(REG8 dat); | 
 |  |  | 
 | void cs4231_initialize(UINT rate); | void cs4231_initialize(UINT rate); | 
 | void cs4231_setvol(UINT vol); | void cs4231_setvol(UINT vol); | 
 |  |  | 
 | void cs4231_reset(void); | void cs4231_reset(void); | 
 | void cs4231_update(void); | void cs4231_update(void); | 
| void cs4231_control(UINT index, REG8 value); | void cs4231_control(UINT index, REG8 dat); | 
 |  |  | 
 | void SOUNDCALL cs4231_getpcm(CS4231 cs, SINT32 *pcm, UINT count); | void SOUNDCALL cs4231_getpcm(CS4231 cs, SINT32 *pcm, UINT count); | 
 |  |  |