Files
Webcam/include/framework/audio/sample_wav.cpp

45 lines
1.4 KiB
C++

/* -----------------------------------------------------------------------------
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 <char> &pcm, uint count, const SampleFormat &fmt)
{
pcm_data = pcm;
sample_count = count;
format = fmt;
}
//------------------------------------------------------------------------------