1.1 --- a/src/aica/aica.c Tue Oct 09 11:37:36 2007 +0000
1.2 +++ b/src/aica/aica.c Wed Oct 24 21:24:09 2007 +0000
1.5 - * $Id: aica.c,v 1.23 2007-10-09 11:37:36 nkeynes Exp $
1.6 + * $Id: aica.c,v 1.24 2007-10-24 21:24:09 nkeynes Exp $
1.8 * This is the core sound system (ie the bit which does the actual work)
1.12 MMIO_REGION_READ_DEFFN( AICA0 )
1.13 MMIO_REGION_READ_DEFFN( AICA1 )
1.14 -MMIO_REGION_READ_DEFFN( AICA2 )
1.16 void aica_init( void );
1.17 void aica_reset( void );
1.18 @@ -226,6 +225,30 @@
1.22 +int32_t mmio_region_AICA2_read( uint32_t reg )
1.24 + audio_channel_t channel;
1.28 + case AICA_CHANSTATE:
1.29 + channo = (MMIO_READ( AICA2, AICA_CHANSEL ) >> 8) & 0x3F;
1.30 + channel = audio_get_channel(channo);
1.31 + if( channel->loop == LOOP_LOOPED ) {
1.33 + channel->loop = LOOP_ON;
1.38 + case AICA_CHANPOSN:
1.39 + channo = (MMIO_READ( AICA2, AICA_CHANSEL ) >> 8) & 0x3F;
1.40 + channel = audio_get_channel(channo);
1.41 + return channel->posn;
1.43 + return MMIO_READ( AICA2, reg );
1.47 int32_t mmio_region_AICARTC_read( uint32_t reg )
1.50 case 0x00: /* Config + high address bits*/
1.51 channel->start = (channel->start & 0xFFFF) | ((val&0x1F) << 16);
1.53 - channel->loop = TRUE;
1.54 + channel->loop = LOOP_ON;
1.56 - channel->loop = FALSE;
1.57 + channel->loop = LOOP_OFF;
1.58 switch( (val >> 7) & 0x03 ) {
1.60 channel->sample_format = AUDIO_FMT_16BIT;