Eric Oulashin's C++ Audio Mixer 1.0
WAVFileInfo.h
Go to the documentation of this file.
1#ifndef __EO_UTILS_WAV_FILE_INFO_H__
2#define __EO_UTILS_WAV_FILE_INFO_H__
3
4#include <string>
5#include <fstream>
6
8#include "AudioFileInfo.h"
9
10namespace EOUtils
11{
12 #define BITS_PER_BYTE 8
13
15 {
16 public:
26 WAVFileInfo(int16_t pNumChannels = 0, int32_t pSampleRateHz = 0, int32_t pBytesPerSecond = 0, int16_t pByteRate = 0, int16_t pBitsPerSample = 0);
27
33 WAVFileInfo(const AudioFileInfo& pAudioFileInfo);
34
42 AudioFileResultType read(std::fstream& pInFStream) override;
43
51 AudioFileResultType write(std::fstream& pOutFStream) override;
52
53 AudioFileResultType updateFileSizeSizeInFile(std::fstream& pOutFStream, int32_t pFileSize);
54
55 AudioFileResultType updateDataSizeSizeInFile(std::fstream& pOutFStream, int32_t pDataSize);
56
57 std::string WAVHeader() const;
58
59 std::string RIFFType() const;
60
61 std::string Subchunk2ID() const;
62
63 int32_t Subchunk2Size() const;
64
65 int32_t DataSizeBytes() const;
66
67 int16_t BitsPerSample() const;
68
69 void BitsPerSample(int16_t pBitsPerSample);
70
72
74
75 static size_t WAVFileHdrSize();
76
77 static int16_t BitsPerSample(const char* pFilename);
78
79 static bool isWAVFile(const char* pFilename);
80
81 private:
82 char mWAVHeader[4]; // The WAV header (4 bytes, "RIFF")
83 char mRIFFType[4]; // The RIFF type (4 bytes, "WAVE")
84 char mSubchunk2ID[4];
85 int32_t mSubchunk2Size;
86 int32_t mDataSizeBytes;
87 };
88}
89
90#endif
Definition AudioFileInfo.h:14
Definition AudioFileResultType.h:13
Definition WAVFileInfo.h:15
AudioFileResultType write(std::fstream &pOutFStream) override
Writes the info to a file stream.
Definition WAVFileInfo.cpp:101
void SetWAVHeaderAndRIFFType()
Definition WAVFileInfo.cpp:268
std::string WAVHeader() const
Definition WAVFileInfo.cpp:221
AudioFileResultType updateDataSizeSizeInFile(std::fstream &pOutFStream, int32_t pDataSize)
Definition WAVFileInfo.cpp:201
AudioFileResultType read(std::fstream &pInFStream) override
Reads the info from a file stream.
Definition WAVFileInfo.cpp:25
static bool isWAVFile(const char *pFilename)
Definition WAVFileInfo.cpp:319
std::string RIFFType() const
Definition WAVFileInfo.cpp:230
static size_t WAVFileHdrSize()
Definition WAVFileInfo.cpp:292
int16_t BitsPerSample() const
Definition WAVFileInfo.cpp:258
int32_t DataSizeBytes() const
Definition WAVFileInfo.cpp:253
std::string Subchunk2ID() const
Definition WAVFileInfo.cpp:239
void SetSubchunk2IDAndSize()
Definition WAVFileInfo.cpp:280
int32_t Subchunk2Size() const
Definition WAVFileInfo.cpp:248
AudioFileResultType updateFileSizeSizeInFile(std::fstream &pOutFStream, int32_t pFileSize)
Definition WAVFileInfo.cpp:183
Definition StringUtils.cpp:6