#include "..\\win32.h"
#include "ac97.h"
#include "..\\ds_drv.h"


/* This is primarily just a stub atm.  While the ac97 is fairly straight forward,
   there needs to be more research done before it can be properly emulated */
struct ac97_t			ac97;
struct soundbuffer_t	pcmout[32];

int ac97_init()
{
	int i = 0;

	memset( &ac97, 0, sizeof( struct ac97_t ) );

	/* Clear interrupts */
	ac97.mmio[0x116] = 0xFF;
	ac97.mmio[0x176] = 0xFF;

	/* Create sound buffers for each pcm out descriptor */
	ZeroMemory( pcmout, sizeof( struct soundbuffer_t ) * 32 );
	
	while( i < 32 )
	{
		pcmout[i].wfx.wFormatTag = WAVE_FORMAT_PCM;
		pcmout[i].wfx.nBlockAlign = 4;
		pcmout[i].wfx.nChannels = 2;
		pcmout[i].wfx.nSamplesPerSec = 48000;
		pcmout[i].wfx.nAvgBytesPerSec = 48000 * 4;
		pcmout[i].wfx.wBitsPerSample = 16;
		pcmout[i].dsbdesc.lpwfxFormat = pcmout[i].wfx;
		pcmout[i].dsbdesc.dwBufferBytes = 0;
		i++;
	}

	return 1;
}

uint8_t ac97_read8( uint32_t addr )
{
	return 0;
}

void	ac97_write8( uint32_t addr, uint8_t byte )
{
}

uint16_t ac97_read16( uint32_t addr )
{
	return 0;
}

void	ac97_write16( uint32_t addr, uint16_t word )
{
}

uint32_t ac97_read32( uint32_t addr )
{
	return 0;
}

void	ac97_write32( uint32_t addr, uint32_t dword )
{
}

