16 virtual void Create()
override;
17 virtual void Destroy()
override;
24 void SetPcmData(uint8_t* data, uint32_t size, uint32_t numSamples, uint32_t bitsPerSample, uint32_t numChannels, uint32_t sampleRate);
30 static bool LoadFromMemory(
const uint8_t* data,
size_t size,
const char* formatHint,
SoundWave& out);
32 void SetVolumeMultiplier(
float volume);
33 float GetVolumeMultiplier()
const;
35 void SetPitchMultiplier(
float pitch);
36 float GetPitchMultiplier()
const;
38 void SetAudioClass(int8_t audioClass);
39 int8_t GetAudioClass()
const;
41 uint8_t* GetWaveData()
const;
42 uint32_t GetWaveDataSize()
const;
51 uint32_t GetNumChannels()
const;
52 uint32_t GetBitsPerSample()
const;
53 uint32_t GetSampleRate()
const;
55 uint32_t GetNumSamples()
const;
57 uint32_t GetNumFrames()
const;
58 uint32_t GetBlockAlign()
const;
59 uint32_t GetByteRate()
const;
61 float GetDuration()
const;
65 static bool HandlePropChange(
Datum* datum, uint32_t index,
const void* newValue);
70 uint16_t mNumChannels = 0;
71 uint16_t mBlockAlign = 0;
72 uint16_t mBitsPerSample = 0;
73 uint32_t mSampleRate = 0;
74 uint32_t mByteRate = 0;
75 const uint8_t* mPcm =
nullptr;
76 uint32_t mPcmSize = 0;
81 static bool ParseWav(
const uint8_t* data,
size_t size,
const char* debugName,
WavInfo& out);
83 uint8_t* mWaveData =
nullptr;
84 uint32_t mWaveDataSize = 0;
86 uint8_t* mCompressedData =
nullptr;
87 uint32_t mCompressedSize = 0;
90 float mVolumeMultiplier = 1.0f;
91 float mPitchMultiplier = 1.0f;
92 int8_t mAudioClass = 0;
93 bool mCompress =
false;
94 bool mCompressInternal =
false;
95 bool mStreaming =
false;
99 uint64_t mStreamPcmOffset = 0;
100 uint32_t mStreamPcmSize = 0;
103 uint32_t mNumChannels = 1;
104 uint32_t mBitsPerSample = 8;
105 uint32_t mSampleRate = 22050;
106 uint32_t mNumSamples = 0;
107 uint32_t mBlockAlign = 0;
108 uint32_t mByteRate = 0;