Etterna 0.74.4
Loading...
Searching...
No Matches
RageSoundReader_WAV.h
1/* RageSoundReader_WAV - WAV reader. */
2
3#ifndef RAGE_SOUND_READER_WAV_H
4#define RAGE_SOUND_READER_WAV_H
5
6#include "RageUtil/File/RageFile.h"
7#include "RageSoundReader_FileReader.h"
8
9struct WavReader;
10
11std::string
12ReadString(RageFileBasic& f, int iSize, std::string& sError);
13
15{
16 public:
17 OpenResult Open(RageFileBasic* pFile) override;
18 void Close();
19 int GetLength() const override;
20 int SetPosition(int iFrame) override;
21 int Read(float* pBuf, int iFrames) override;
22 int GetSampleRate() const override { return m_WavData.m_iSampleRate; }
23 unsigned GetNumChannels() const override { return m_WavData.m_iChannels; }
24 int GetNextSourceFrame() const override;
26 ~RageSoundReader_WAV() override;
28 const RageSoundReader_WAV&); /* not defined; don't use */
29 RageSoundReader_WAV* Copy() const override;
30
31 struct WavData
32 {
33 int32_t m_iDataChunkPos = 0, m_iDataChunkSize = 0, m_iExtraFmtPos = 0,
34 m_iSampleRate = 0, m_iFormatTag = 0;
35 int16_t m_iChannels = 0, m_iBitsPerSample = 0, m_iBlockAlign = 0,
36 m_iExtraFmtBytes = 0;
37 };
38
39 private:
40 WavData m_WavData;
41
42 WavReader* m_pImpl;
43};
44
45#endif
Definition RageFileBasic.h:10
Definition RageSoundReader_FileReader.h:13
Definition RageSoundReader_WAV.h:15
Definition RageSoundReader_WAV.h:32
Definition RageSoundReader_WAV.cpp:86