[Summary] Fixed issue when device supports only 0 sample rate

[Details] Removed commented out code
This commit is contained in:
GZharun 2015-02-14 11:56:07 +02:00
parent 73e30f17ab
commit 7d467ecc66

View file

@ -941,21 +941,6 @@ WTErr WCMRCoreAudioDevice::SetAndCheckCurrentSamplingRate (int newRate)
OSStatus err = kAudioHardwareNoError; OSStatus err = kAudioHardwareNoError;
UInt32 propSize = 0; UInt32 propSize = 0;
// Check current sample rate
/*
propSize = sizeof (Float64);
Float64 currentSamplingRate = 0.0;
err = AudioDeviceGetProperty(m_DeviceID, 0, 0, kAudioDevicePropertyNominalSampleRate, &propSize, &currentSamplingRate);
if (err == kAudioHardwareNoError)
{
if (currentSamplingRate == newRate)
{
// nothing to do
return (retVal);
}
}*/
// 1. Set new sampling rate // 1. Set new sampling rate
Float64 newNominalRate = newRate; Float64 newNominalRate = newRate;
propSize = sizeof (Float64); propSize = sizeof (Float64);
@ -1016,6 +1001,16 @@ WTErr WCMRCoreAudioDevice::SetAndCheckCurrentSamplingRate (int newRate)
// If sample rate did not change after time out // If sample rate did not change after time out
else else
{ {
// Check if current device sample rate is supported
bool found = false;
for(int i = 0; gAllSampleRates[i] > 0; i++)
{
if (gAllSampleRates[i] - actualSamplingRate < 0.01) {
found = true;
}
}
if (found) {
// Update member with last read value // Update member with last read value
m_CurrentSamplingRate = static_cast<int>(actualSamplingRate); m_CurrentSamplingRate = static_cast<int>(actualSamplingRate);
@ -1025,6 +1020,9 @@ WTErr WCMRCoreAudioDevice::SetAndCheckCurrentSamplingRate (int newRate)
float sample_rate_update = actualSamplingRate; float sample_rate_update = actualSamplingRate;
m_pMyManager->NotifyClient (WCMRAudioDeviceManagerClient::SamplingRateChanged, (void *)&sample_rate_update); m_pMyManager->NotifyClient (WCMRAudioDeviceManagerClient::SamplingRateChanged, (void *)&sample_rate_update);
} else {
retVal = eGenericErr;
}
} }
} }