RADLib
RADical C++ application framework
RADMedia::WavFile Class Reference

In-memory WAV file representation for smaller files and tests. More...

#include <RADMedia.h>

Public Member Functions

const WavFormatformat () const
 Returns the parsed audio format. More...
 
const std::vector< uint8_t > & audioData () const
 Returns raw encoded PCM audio bytes. More...
 
size_t frameCount () const
 Returns the number of complete frames in audioData(). More...
 
double durationSeconds () const
 Returns duration in seconds based on frame count and sample rate. More...
 

Static Public Member Functions

static std::optional< WavFileload (const std::string &path, std::string *error=nullptr)
 Loads and validates a WAV file into memory. More...
 
static bool savePcm16 (const std::string &path, uint16_t channels, uint32_t sampleRate, const std::vector< int16_t > &interleavedSamples, std::string *error=nullptr)
 Writes signed 16-bit interleaved PCM samples as a WAV file. More...
 

Detailed Description

In-memory WAV file representation for smaller files and tests.

Member Function Documentation

◆ audioData()

const std::vector<uint8_t>& RADMedia::WavFile::audioData ( ) const

Returns raw encoded PCM audio bytes.

◆ durationSeconds()

double RADMedia::WavFile::durationSeconds ( ) const

Returns duration in seconds based on frame count and sample rate.

◆ format()

const WavFormat& RADMedia::WavFile::format ( ) const

Returns the parsed audio format.

◆ frameCount()

size_t RADMedia::WavFile::frameCount ( ) const

Returns the number of complete frames in audioData().

◆ load()

static std::optional<WavFile> RADMedia::WavFile::load ( const std::string &  path,
std::string *  error = nullptr 
)
static

Loads and validates a WAV file into memory.

◆ savePcm16()

static bool RADMedia::WavFile::savePcm16 ( const std::string &  path,
uint16_t  channels,
uint32_t  sampleRate,
const std::vector< int16_t > &  interleavedSamples,
std::string *  error = nullptr 
)
static

Writes signed 16-bit interleaved PCM samples as a WAV file.


The documentation for this class was generated from the following file: