Пример #1
0
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);
}
Пример #2
0
/*
 * GET BYTES BUFFERED
 */
unsigned long SoundGetBytesBuffered(void) {
    return xenon_sound_get_unplayed();
}