Skylicht Engine
Loading...
Searching...
No Matches
CAudioDecoderWav.h
1#ifndef _SKYLICHTAUDIO_IAUDIODECODERWAV_H_
2#define _SKYLICHTAUDIO_IAUDIODECODERWAV_H_
3
4#include "Stream/IStream.h"
5#include "Driver/ISoundSource.h"
6#include "Driver/ISoundDriver.h"
7
8#include "IWavSubDecoder.h"
9#include "IAudioDecoder.h"
10#include "WavHeader.h"
11
12namespace Skylicht
13{
14 namespace Audio
15 {
16 class CAudioDecoderWav : public IAudioDecoder
17 {
18 protected:
19 IStreamCursor* m_streamCursor;
20 SWaveChunk m_waveChunk;
21
22 IWavSubDecoder* m_subDecoder;
23
24 public:
25 CAudioDecoderWav(IStream* stream);
26
27 virtual ~CAudioDecoderWav();
28
29 virtual EStatus initDecode();
30
31 virtual EStatus decode(void* outputBuffer, int bufferSize);
32
33 virtual int seek(int bufferSize);
34
35 virtual void getTrackParam(STrackParams* track);
36
37 virtual float getCurrentTime();
38 };
39 }
40}
41
42#endif
Interface for a stream cursor, providing seek and read operations on an audio stream.
Definition IStream.h:39
Interface for an audio data stream (File, Memory, etc.).
Definition IStream.h:107
Definition IWavSubDecoder.h:14
Handles all core audio functionality.
Definition AudioDebugLog.h:31
Everything in the Skylicht Engine. You can start by looking at the topics.
Definition AudioDebugLog.h:29
Definition ISoundSource.h:43
Definition WavHeader.h:109