PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
MiniaudioBackend.hpp
1#pragma once
2
3#include "PixelBullet/Audio/AudioBackend.hpp"
4
5#include <miniaudio.h>
6
7#include <string>
8#include <vector>
9#include <memory>
10
11namespace PixelBullet
12{
15 {
16 void operator()(ma_sound* sound) const
17 {
18 ma_sound_uninit(sound);
19 delete sound;
20 }
21 };
22
25 {
26 public:
28 virtual ~MiniaudioBackend() override;
29
30 virtual bool Init() override;
31 virtual void Shutdown() override;
32 virtual void PlaySound(const std::string& filePath, bool loop = false) override;
33
34 private:
35 ma_engine m_Engine;
37 std::vector<std::unique_ptr<ma_sound, MaSoundDeleter>> m_ActiveSounds;
38 };
39} // namespace PixelBullet
The abstract interface for an audio backend.
Definition AudioBackend.hpp:9
Implementation of the AudioBackend interface using the miniaudio engine.
Definition MiniaudioBackend.hpp:25
virtual bool Init() override
Initializes the backend. Returns true on success.
Definition MiniaudioBackend.cpp:16
virtual void PlaySound(const std::string &filePath, bool loop=false) override
Definition MiniaudioBackend.cpp:67
virtual void Shutdown() override
Shuts down the backend.
Definition MiniaudioBackend.cpp:27
A custom deleter for a dynamically allocated ma_sound.
Definition MiniaudioBackend.hpp:15