Etterna
0.74.4
Loading...
Searching...
No Matches
src
RageUtil
Sound
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
9
struct
WavReader
;
10
11
std::string
12
ReadString(
RageFileBasic
& f,
int
iSize, std::string& sError);
13
14
class
RageSoundReader_WAV
:
public
RageSoundReader_FileReader
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
;
25
RageSoundReader_WAV
();
26
~RageSoundReader_WAV
()
override
;
27
RageSoundReader_WAV
(
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
RageFileBasic
Definition
RageFileBasic.h:10
RageSoundReader_FileReader
Definition
RageSoundReader_FileReader.h:13
RageSoundReader_WAV
Definition
RageSoundReader_WAV.h:15
RageSoundReader_WAV::WavData
Definition
RageSoundReader_WAV.h:32
WavReader
Definition
RageSoundReader_WAV.cpp:86
Generated by
1.9.8