/* ----------------------------------------------------------------------------- GSFramework Copyright 2001-2013 Emmanuel Julien. All Rights Reserved. ----------------------------------------------------------------------------- */ #include "audio/sample_wav.h" #include "log/log.h" using namespace GS; //------------------------------------------------------------------------------ bool SampleWav::GetSampleFormat(SampleFormat &fmt) const { fmt = format; return true; } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ Time SampleWav::GetDuration() const { return Time::fromMs(sample_count * 1000 / format.frequency); } uint SampleWav::GetPCMDataSize() const { return format.GetPCMDataSize(sample_count); } //------------------------------------------------------------------------------ //------------------------------------------------------------------------------ char *SampleWav::AllocAs(uint count, const SampleFormat &fmt) { format = fmt; if (!pcm_data.Allocate(format.GetPCMDataSize(count))) __ERR__(__LOG_E__ << "Failed to allocate raw PCM sample buffer.\n", NULL) sample_count = count; return pcm_data; } void SampleWav::Set(Array &pcm, uint count, const SampleFormat &fmt) { pcm_data = pcm; sample_count = count; format = fmt; } //------------------------------------------------------------------------------