SourcePP
Several modern C++20 libraries for sanely parsing Valve's formats.
Loading...
Searching...
No Matches
sndpp::WAV Class Reference

#include <WAV.h>

Inheritance diagram for sndpp::WAV:
Collaboration diagram for sndpp::WAV:

Classes

struct  ChunkCSET
struct  ChunkCUE
struct  ChunkFACT
struct  ChunkFMT
struct  ChunkINST
struct  ChunkMD5
struct  ChunkPLST
struct  ChunkSMPL

Public Types

enum  ChunkType : uint32_t {
  CHUNK_FMT = sourcepp::parser::binary::makeFourCC("fmt ") , CHUNK_DATA = sourcepp::parser::binary::makeFourCC("data") , CHUNK_CUE = sourcepp::parser::binary::makeFourCC("cue ") , CHUNK_PLST = sourcepp::parser::binary::makeFourCC("plst") ,
  CHUNK_FACT = sourcepp::parser::binary::makeFourCC("fact") , CHUNK_SMPL = sourcepp::parser::binary::makeFourCC("smpl") , CHUNK_INST = sourcepp::parser::binary::makeFourCC("inst") , CHUNK_CSET = sourcepp::parser::binary::makeFourCC("CSET") ,
  CHUNK_MD5 = sourcepp::parser::binary::makeFourCC("MD5 ") , CHUNK_PAD = sourcepp::parser::binary::makeFourCC("PAD ") , CHUNK_JUNK = sourcepp::parser::binary::makeFourCC("JUNK") , CHUNK_FLLR = sourcepp::parser::binary::makeFourCC("FLLR")
}

Public Member Functions

 WAV (uint32_t signature=RIFF_SIGNATURE)
 WAV (std::vector< std::byte > &&wavData)
 WAV (std::span< const std::byte > wavData)
 WAV (const std::filesystem::path &wavPath)
template<ChunkType Type>
auto getFirstWAVChunk () const
template<ChunkType Type>
auto getNthWAVChunk (uint32_t n) const
Public Member Functions inherited from sndpp::RIFF
 RIFF (uint32_t type, uint32_t signature=RIFF_SIGNATURE)
 RIFF (std::vector< std::byte > &&riffData, uint32_t type_)
 RIFF (std::span< const std::byte > riffData, uint32_t type_)
 RIFF (const std::filesystem::path &riffPath, uint32_t type_)
 operator bool () const
uint32_t getSignature () const
bool isBigEndian () const
const std::vector< std::pair< uint32_t, std::span< std::byte > > > & getChunks () const
bool hasChunk (uint32_t chunkType) const
std::vector< std::byte > getFirstChunk (uint32_t chunkType) const
bool hasNthChunk (uint32_t chunkType, uint32_t n) const
std::vector< std::byte > getNthChunk (uint32_t chunkType, uint32_t n) const

Additional Inherited Members

Protected Attributes inherited from sndpp::RIFF
uint32_t signature
uint32_t type
std::vector< std::pair< uint32_t, std::span< std::byte > > > chunks
std::vector< std::byte > data

Detailed Description

Definition at line 14 of file WAV.h.

Member Enumeration Documentation

◆ ChunkType

enum sndpp::WAV::ChunkType : uint32_t
Enumerator
CHUNK_FMT 
CHUNK_DATA 
CHUNK_CUE 
CHUNK_PLST 
CHUNK_FACT 
CHUNK_SMPL 
CHUNK_INST 
CHUNK_CSET 
CHUNK_MD5 
CHUNK_PAD 
CHUNK_JUNK 
CHUNK_FLLR 

Definition at line 16 of file WAV.h.

Constructor & Destructor Documentation

◆ WAV() [1/4]

WAV::WAV ( uint32_t signature = RIFF_SIGNATURE)
explicit

Definition at line 5 of file WAV.cpp.

◆ WAV() [2/4]

WAV::WAV ( std::vector< std::byte > && wavData)
explicit

Definition at line 8 of file WAV.cpp.

◆ WAV() [3/4]

WAV::WAV ( std::span< const std::byte > wavData)
explicit

Definition at line 16 of file WAV.cpp.

◆ WAV() [4/4]

WAV::WAV ( const std::filesystem::path & wavPath)
explicit

Definition at line 19 of file WAV.cpp.

Member Function Documentation

◆ getFirstWAVChunk()

template<ChunkType Type>
auto sndpp::WAV::getFirstWAVChunk ( ) const
inlinenodiscard

Definition at line 179 of file WAV.h.

◆ getNthWAVChunk()

template<ChunkType Type>
auto sndpp::WAV::getNthWAVChunk ( uint32_t n) const
inlinenodiscard

Definition at line 184 of file WAV.h.


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