PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
miniaudio_backend.h
1#pragma once
2
3#include "pixelbullet/audio/audio_backend.h"
4
5#include <miniaudio.h>
6
7#include <memory>
8#include <string>
9#include <vector>
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{
26public:
28 virtual ~MiniaudioBackend() override;
29
30 virtual bool Init() override;
31 virtual void Shutdown() override;
32 virtual void PlaySound(const std::string& file_path, bool loop = false) override;
33
34private:
35 ma_engine engine_;
37 std::vector<std::unique_ptr<ma_sound, MaSoundDeleter>> active_sounds_;
38};
39} // namespace pixelbullet
The abstract interface for an audio backend.
Definition audio_backend.h:9
Implementation of the AudioBackend interface using the miniaudio engine.
Definition miniaudio_backend.h:25
virtual void PlaySound(const std::string &file_path, bool loop=false) override
Definition miniaudio_backend.cc:74
virtual void Shutdown() override
Shuts down the backend.
Definition miniaudio_backend.cc:35
virtual bool Init() override
Initializes the backend. Returns true on success.
Definition miniaudio_backend.cc:24
A custom deleter for a dynamically allocated ma_sound.
Definition miniaudio_backend.h:15