Exemplo n.º 1
0
const struct Hrtf *GetHrtf(ALCdevice *device)
{
    if(device->FmtChans == DevFmtStereo)
    {
        struct Hrtf *Hrtf = LoadedHrtfs;
        while(Hrtf != NULL)
        {
            if(device->Frequency == Hrtf->sampleRate)
                return Hrtf;
            Hrtf = Hrtf->next;
        }

        Hrtf = LoadHrtf(device->Frequency);
        if(Hrtf != NULL)
            return Hrtf;

        if(device->Frequency == DefaultHrtf.sampleRate)
            return &DefaultHrtf;
    }
    ERR("Incompatible format: %s %uhz\n",
        DevFmtChannelsString(device->FmtChans), device->Frequency);
    return NULL;
}
Exemplo n.º 2
0
void FindHrtfFormat(const ALCdevice *device, enum DevFmtChannels *chans, ALCuint *srate)
{
    const struct Hrtf *hrtf = &DefaultHrtf;

    if(device->Frequency != DefaultHrtf.sampleRate)
    {
        hrtf = LoadedHrtfs;
        while(hrtf != NULL)
        {
            if(device->Frequency == hrtf->sampleRate)
                break;
            hrtf = hrtf->next;
        }

        if(hrtf == NULL)
            hrtf = LoadHrtf(device->Frequency);
        if(hrtf == NULL)
            hrtf = &DefaultHrtf;
    }

    *chans = DevFmtStereo;
    *srate = hrtf->sampleRate;
}