コード例 #1
0
ファイル: sound.c プロジェクト: startmenu/PCemN
void sound_cd_get_buffer(int16_t *buffer, int len, void *p)
{
        int pos, c;
        ioctl_audio_callback(cd_buffer, (len * 2  * 441) / 480);
        pos = 0;

        for (c = 0; c < len * 2; c+=2)
        {
                buffer[c]     += cd_buffer[((pos >> 16) << 1)]     / 2;
                buffer[c + 1] += cd_buffer[((pos >> 16) << 1) + 1] / 2;                        
                pos += 60211; //(44100 * 65536) / 48000;
        }
}
コード例 #2
0
ファイル: sound.c プロジェクト: aliaspider/PCem-mooch
static void sound_cd_thread(void *param)
{
        while (1)
        {
                int c;
                
                thread_wait_event(sound_cd_event, -1);
                ioctl_audio_callback(cd_buffer, CD_BUFLEN*2);
                if (soundon)
                {
                        for (c = 0; c < CD_BUFLEN*2; c += 2)
                        {
                                cd_buffer[c]   = ((int32_t)cd_buffer[c]   * cd_vol_l) / 65535;
                                cd_buffer[c+1] = ((int32_t)cd_buffer[c+1] * cd_vol_r) / 65535;
                        }
                        givealbuffer_cd(cd_buffer);
                }
        }
}