3 #include "Mountain/core.hpp" 4 #include "Mountain/audio/audio_buffer.hpp" 9 enum class MOUNTAIN_API AudioTrackFormat : uint8_t
20 MOUNTAIN_API
static constexpr std::array FileExtensions
29 using Resource::Resource;
36 using Resource::SetSourceData;
38 MOUNTAIN_API bool_t SetSourceData(
const uint8_t* buffer, int64_t length)
override;
40 MOUNTAIN_API
void Load()
override;
42 MOUNTAIN_API
void Unload()
override;
44 MOUNTAIN_API
void ResetSourceData()
override;
49 template <
typename T = u
int8_t>
51 const T* GetData()
const;
56 template <
typename T = u
int8_t>
61 MOUNTAIN_API int32_t GetDataSize()
const;
64 MOUNTAIN_API uint16_t GetChannels()
const;
67 MOUNTAIN_API int32_t GetSampleRate()
const;
70 MOUNTAIN_API uint16_t GetBitDepth()
const;
76 MOUNTAIN_API AudioTrackFormat GetFormat()
const;
80 uint8_t* m_Data =
nullptr;
82 int32_t m_DataSize = 0;
84 uint16_t m_Channels = 0;
86 int32_t m_SampleRate = 0;
88 uint16_t m_BitDepth = 0;
92 AudioTrackFormat m_Format;
94 MOUNTAIN_API bool_t LoadWavefront(
const uint8_t* buffer, int64_t length);
95 MOUNTAIN_API int64_t LoadWavefrontFormat(
const uint8_t* data);
96 MOUNTAIN_API int64_t LoadWavefrontData(
const uint8_t* data);
98 MOUNTAIN_API bool_t LoadOggVorbis(
const uint8_t* buffer, int64_t length);
99 MOUNTAIN_API bool_t LoadMp3(
const uint8_t* buffer, int64_t length);
103 #include "Mountain/resource/audio_track.inl" Defines the Mountain::Resource class.
Contains all declarations of the Mountain Framework.