Eric Oulashin's C++ Audio Mixer 1.0
AudioFileInfo.h
Go to the documentation of this file.
1#ifndef __EO_UTILS_AUDIO_FILE_INFO_H__
2#define __EO_UTILS_AUDIO_FILE_INFO_H__
3
4#include <string>
5#include <fstream>
6
8
9namespace EOUtils
10{
11 #define BITS_PER_BYTE 8
12
14 {
15 public:
25 AudioFileInfo(int16_t pNumChannels = 0, int32_t pSampleRateHz = 0, int32_t pBytesPerSecond = 0, int16_t pByteRate = 0, int16_t pBitsPerSample = 0);
26
27 virtual ~AudioFileInfo() = default;
28
34 virtual void copyAudioFileInfo(const AudioFileInfo& pAudioFileInfo);
35
43 virtual AudioFileResultType read(const char *pFilename);
44
52 // This would be pure virtual, but sometimes it has handy to instantiate objects of this class.
53 virtual AudioFileResultType read(std::fstream& pInFStream);
54
62 // This would be pure virtual, but sometimes it has handy to instantiate objects of this class.
63 virtual AudioFileResultType write(std::fstream& pOutFStream);
64
65 virtual int32_t FileSize() const;
66
67 void FileSize(int32_t pFileSize);
68
69 virtual int16_t NumChannels() const;
70
71 virtual void NumChannels(int16_t pNumChannels);
72
73 virtual int32_t SampleRateHz() const;
74
75 virtual void SampleRateHz(int32_t pSampleRateHz);
76
77 virtual int32_t BytesPerSecond() const;
78
79 virtual void BytesPerSecond(int32_t pBytesPerSecond);
80
81 virtual int16_t ByteRate() const;
82
83 virtual void ByteRate(int16_t pByteRate);
84
85 virtual int16_t BitsPerSample() const;
86
87 virtual void BitsPerSample(int16_t pBitsPerSample);
88
89 virtual size_t BytesPerSample() const;
90
91 protected:
92 int32_t mFileSize; // File size
93 int16_t mNumChannels; // The # of channels (1 or 2)
94 int32_t mSampleRateHz; // The audio sample rate (Hz)
96 int16_t mByteRate;
97 int16_t mBitsPerSample; // # of bits per sample
98 };
99}
100
101#endif
AudioFileInfo(int16_t pNumChannels=0, int32_t pSampleRateHz=0, int32_t pBytesPerSecond=0, int16_t pByteRate=0, int16_t pBitsPerSample=0)
Constructor.
Definition AudioFileInfo.cpp:10
virtual int16_t NumChannels() const
Definition AudioFileInfo.cpp:70
int16_t mBitsPerSample
Definition AudioFileInfo.h:97
virtual int16_t BitsPerSample() const
Definition AudioFileInfo.cpp:110
virtual AudioFileResultType write(std::fstream &pOutFStream)
Writes the info to a file stream.
Definition AudioFileInfo.cpp:53
virtual int32_t SampleRateHz() const
Definition AudioFileInfo.cpp:80
int32_t mBytesPerSecond
Definition AudioFileInfo.h:95
int32_t mFileSize
Definition AudioFileInfo.h:92
virtual size_t BytesPerSample() const
Definition AudioFileInfo.cpp:120
AudioFileInfo(int16_t pNumChannels=0, int32_t pSampleRateHz=0, int32_t pBytesPerSecond=0, int16_t pByteRate=0, int16_t pBitsPerSample=0)
Constructor.
Definition AudioFileInfo.cpp:10
virtual ~AudioFileInfo()=default
virtual int16_t ByteRate() const
Definition AudioFileInfo.cpp:100
int16_t mByteRate
Definition AudioFileInfo.h:96
virtual AudioFileResultType read(const char *pFilename)
Reads the info from a WAV file.
Definition AudioFileInfo.cpp:30
virtual void copyAudioFileInfo(const AudioFileInfo &pAudioFileInfo)
Copies the values from another AudioFileInfo object.
Definition AudioFileInfo.cpp:20
int16_t mNumChannels
Definition AudioFileInfo.h:93
int32_t mSampleRateHz
Definition AudioFileInfo.h:94
virtual int32_t FileSize() const
Definition AudioFileInfo.cpp:60
virtual int32_t BytesPerSecond() const
Definition AudioFileInfo.cpp:90
Definition AudioFileResultType.h:13
Definition StringUtils.cpp:6