#include namespace XCEngine { namespace Resources { AudioClip::AudioClip() = default; AudioClip::~AudioClip() = default; void AudioClip::Release() { m_audioData.Clear(); m_rhiResource = nullptr; m_isValid = false; } void AudioClip::SetAudioData(const Containers::Array& data) { m_audioData = data; if (m_sampleRate > 0 && m_channels > 0 && m_bitsPerSample > 0) { size_t bytesPerSample = m_bitsPerSample / 8; size_t totalSamples = data.Size() / bytesPerSample; m_duration = static_cast(totalSamples) / static_cast(m_sampleRate); } } void AudioClip::SetRHIResource(class IRHIAudioBuffer* resource) { m_rhiResource = resource; } } // namespace Resources } // namespace XCEngine