void update_sound(int32 * snd, int32 size){ //return; //size = size * 4; uint16_t sound_s16; uint32_t * dst = (uint32_t *) pAudioBuffer; sound_pos = 0; for(int i = 0; i < size; i++ ) { sound_s16 = snd[i] & 0xffff; //dst[sound_pos++] = sound_s16 | ( sound_s16 << 16); //dst[sound_pos++] = bswap_32(snd[i]); dst[sound_pos++] = bswap_32(sound_s16 | ( sound_s16 << 16)); if (sound_pos == 4000) sound_pos = 0; } while (xenon_sound_get_unplayed()>(size)) udelay(50); //udelay(16); xenon_sound_submit(pAudioBuffer, size*4); }
/* * GET BYTES BUFFERED */ unsigned long SoundGetBytesBuffered(void) { return xenon_sound_get_unplayed(); }