Sound Lib: SoundLib/SoundsManager.h ソースファイル

Sound Lib

Sound Lib
C/C++Windowsゲーム用音声再生ライブラリ
SoundsManager.h
1 //----------------------------------------------------------
2 // <filename>SoundsManager.h</filename>
3 // <author>Masami Sugao</author>
4 // <date>2018/07/16</date>
5 //----------------------------------------------------------
6 #ifndef SOUNDS_MANAGER_H
7 #define SOUNDS_MANAGER_H
8 
9 #include <unordered_map>
10 #include <windows.h>
11 #include <mmsystem.h>
12 #include <mmreg.h>
13 #include <xaudio2.h>
14 #include <stdint.h>
15 #include "Common.h"
16 #include "AudioHandler.h"
17 #include "ISoundsManagerDelegate.h"
18 #include "Audio/WaveAudio.h"
19 #include "Audio/Mp3Audio.h"
20 #include "Audio/CompressedAudio.h"
21 
22 
23 namespace SoundLib {
27 template <typename T>
29 public:
30  /* Constructor / Destructor ------------------------------------------------------------------------- */
35 
40  SoundsManagerTmpl(SoundsManagerTmpl<T>&& obj) = default;
41 
46 
47  /* Getters / Setters -------------------------------------------------------------------------------- */
53  PlayingStatus GetStatus(const T* pKey) const;
54 
60  uint8_t GetVolume(const T* pKey) const;
61 
68  bool SetVolume(const T* pKey, uint8_t volume);
69 
81  float GetFrequencyRatio(const T* pKey) const;
82 
98  bool SetFrequencyRatio(const T* pKey, float ratio);
99 
100  /* Operator Overloads ------------------------------------------------------------------------------- */
107 
108  /* Functions ---------------------------------------------------------------------------------------- */
114  bool Initialize();
115 
122  bool AddFile(const T* pFilePath, const T* pKey);
123 
130  bool Start(const T* pKey, bool isLoopPlayback = false);
131 
139  bool Start(const T* pKey, ISoundsManagerDelegate<T>* pDelegate);
140 
148  bool Start(const T* pKey, void(*onPlayedToEndCallback)(const T* pKey));
149 
156  bool Stop(const T* pKey);
157 
164  bool Pause(const T* pKey);
165 
172  bool Resume(const T* pKey);
173 
174 private:
175  /* Variables ---------------------------------------------------------------------------------------- */
176  std::unordered_map<std::basic_string<T>, AudioHandler<T>*> audioMap;
177  IXAudio2* pXAudio2;
178 
179  /* Constructor / Destructor ------------------------------------------------------------------------- */
180  SoundsManagerTmpl(const SoundsManagerTmpl<T>&) = delete;
181 
182  /* Operator Overloads ------------------------------------------------------------------------------- */
184 
185  /* Functions ---------------------------------------------------------------------------------------- */
186  bool ExistsKey(const T* pKey, bool isErrWhenNotExists = true) const;
187  bool JudgeAudio(const char* pFilePath, Audio::IAudio** ppAudio) const;
188  void OutputAudioInfo(Audio::IAudio* pAudio, const char* pKey) const;
189  bool AddToMap(Audio::IAudio* pAudio, const T* pKey);
190  void OutputStrWithKey(const char* pStr, const T* pKey) const;
191 };
192 
193 #ifdef UNICODE
195 #else
197 #endif
198 }
199 #endif
bool Stop(const T *pKey)
再生を停止する。
Definition: SoundsManager.cpp:177
uint8_t GetVolume(const T *pKey) const
ボリュームを取得する。
Definition: SoundsManager.cpp:34
bool AddFile(const T *pFilePath, const T *pKey)
音声ファイルを追加する。
Definition: SoundsManager.cpp:109
サウンド統括クラス
Definition: SoundsManager.h:28
SoundsManagerTmpl()
コンストラクタ
Definition: SoundsManager.cpp:6
bool Pause(const T *pKey)
再生を一時停止する。
Definition: SoundsManager.cpp:187
bool SetFrequencyRatio(const T *pKey, float ratio)
再生速度とピッチの変化率を設定する。
Definition: SoundsManager.cpp:76
オーディオファイルデコードクラス用インターフェース
Definition: IAudio.h:21
bool Initialize()
XAudio2の初期化処理を行う。
Definition: SoundsManager.cpp:86
bool Start(const T *pKey, bool isLoopPlayback=false)
ファイルの先頭から再生を行う。
Definition: SoundsManager.cpp:147
Definition: CompressedAudio.cpp:13
~SoundsManagerTmpl()
デストラクタ
Definition: SoundsManager.cpp:9
PlayingStatus GetStatus(const T *pKey) const
再生状況を示すステータスを取得する。
Definition: SoundsManager.cpp:25
bool Resume(const T *pKey)
一時停止中の音声を続きから再生する。
Definition: SoundsManager.cpp:197
SoundsManagerTmpl< T > & operator=(SoundsManagerTmpl< T > &&obj)=default
ムーブ代入演算子のオーバーロード
float GetFrequencyRatio(const T *pKey) const
再生速度とピッチの変化率を取得する。
Definition: SoundsManager.cpp:67
オーディオデータ操作クラス
Definition: AudioHandler.h:37
bool SetVolume(const T *pKey, uint8_t volume)
ボリュームを設定する。
Definition: SoundsManager.cpp:53
SoundsManagerのコールバック定義用インターフェース
Definition: ISoundsManagerDelegate.h:17
構築:   doxygen 1.8.14