ShitEngine
基于 C++20 与 SDL3 的轻量级 2D 游戏引擎
Toggle main menu visibility
载入中...
搜索中...
未找到
AudioManager.h
浏览该文件的文档.
1
#pragma once
2
3
#include <string>
4
#include <unordered_map>
5
#include <memory>
6
#include <SDL3_mixer/SDL_mixer.h>
7
8
#include "
ShitEngine/Core/Core.h
"
9
10
namespace
Shit
{
11
class
AudioManager
final {
12
friend
class
ResourceManager
;
13
public
:
14
AudioManager
(
const
AudioManager
&) =
delete
;
15
AudioManager
&
operator=
(
const
AudioManager
&) =
delete
;
16
AudioManager
(
AudioManager
&&) =
default
;
17
AudioManager
&
operator=
(
AudioManager
&&) =
default
;
18
~AudioManager
() { clearAudio(); }
19
20
private
:
21
AudioManager
() =
default
;
22
23
struct
MIXAudioDeleter {
24
void
operator()(MIX_Audio* audio)
const
{
25
if
(audio) MIX_DestroyAudio(audio);
26
}
27
};
28
29
MIX_Audio* loadAudio(
const
std::string& filePath);
30
MIX_Audio* getAudio(
const
std::string& filePath);
31
void
unloadAudio(
const
std::string& filePath);
32
void
clearAudio();
33
void
setMixer(MIX_Mixer* mixer) { m_mixer = mixer; }
34
35
MIX_Mixer* m_mixer =
nullptr
;
36
std::unordered_map<std::string, std::unique_ptr<MIX_Audio, MIXAudioDeleter>> m_audioCache;
37
};
38
}
Core.h
Shit::AudioManager::~AudioManager
~AudioManager()
定义
AudioManager.h:18
Shit::AudioManager::ResourceManager
friend class ResourceManager
定义
AudioManager.h:12
Shit::AudioManager::AudioManager
AudioManager(const AudioManager &)=delete
Shit::AudioManager::AudioManager
AudioManager(AudioManager &&)=default
Shit::AudioManager::operator=
AudioManager & operator=(AudioManager &&)=default
Shit::AudioManager::operator=
AudioManager & operator=(const AudioManager &)=delete
Shit
定义
AudioPlayer.h:9
ShitEngine
Resource
AudioManager.h
制作者
1.17.0