rpcsx/rpcs3/Emu/Audio/AudioBackend.cpp

37 lines
839 B
C++
Raw Normal View History

2020-12-05 13:08:24 +01:00
#include "stdafx.h"
#include "AudioBackend.h"
#include "Emu/system_config.h"
AudioBackend::AudioBackend() {}
2020-06-20 02:44:32 +02:00
/*
* Helper methods
*/
u32 AudioBackend::get_sampling_rate() const
{
return static_cast<std::underlying_type_t<decltype(m_sampling_rate)>>(m_sampling_rate);
2020-06-20 02:44:32 +02:00
}
u32 AudioBackend::get_sample_size() const
{
return static_cast<std::underlying_type_t<decltype(m_sample_size)>>(m_sample_size);
2020-06-20 02:44:32 +02:00
}
u32 AudioBackend::get_channels() const
{
return static_cast<std::underlying_type_t<decltype(m_channels)>>(m_channels);
2020-06-20 02:44:32 +02:00
}
bool AudioBackend::get_convert_to_s16() const
2020-06-20 02:44:32 +02:00
{
return m_sample_size == AudioSampleSize::S16;
2020-06-20 02:44:32 +02:00
}
2022-01-05 09:26:12 +01:00
void AudioBackend::convert_to_s16(u32 cnt, const f32* src, void* dst)
{
2022-01-05 09:26:12 +01:00
for (usz i = 0; i < cnt; i++)
{
2022-01-05 09:26:12 +01:00
static_cast<s16 *>(dst)[i] = static_cast<s16>(std::clamp(src[i] * 32768.5f, -32768.0f, 32767.0f));
}
}