Mountain  1.0.0
Simple C++ 2D Game Framework
audio_buffer.hpp
1 #pragma once
2 
3 #include "Mountain/core.hpp"
4 
5 namespace Mountain
6 {
7  class AudioTrack;
8  class AudioContext;
9 
10  class MOUNTAIN_API AudioBuffer
11  {
12  public:
13  AudioBuffer();
14 
15  explicit AudioBuffer(int32_t size);
16 
17  explicit AudioBuffer(const AudioTrack* track);
18 
19  ~AudioBuffer();
20 
21  DEFAULT_COPY_MOVE_OPERATIONS(AudioBuffer)
22 
23  void SetData(const AudioTrack* track);
24 
25  void SetData(const void* data, int32_t length, uint16_t channels, uint16_t bitDepth, int32_t sampleRate);
26 
27  [[nodiscard]]
28  uint32_t GetHandle() const;
29 
30  private:
31  uint32_t m_Handle = 0;
32 
33  int32_t m_Format = 0;
34 
35  AudioContext* m_Context = nullptr;
36 
37  [[nodiscard]]
38  static int32_t AlFormatFromData(uint16_t channels, uint16_t bitDepth);
39  };
40 }
Contains all declarations of the Mountain Framework.
Definition: audio.hpp:22