2 #ifndef _YI_AUDIO_ENGINE_H_ 3 #define _YI_AUDIO_ENGINE_H_ 36 static std::unique_ptr<CYIAudioEngine>
Create();
54 virtual void RegisterStream(
const std::shared_ptr<CYIAudioStream> &pStreamToAdd);
60 virtual void UnregisterStream(
const std::shared_ptr<CYIAudioStream> &pStreamToRemove);
74 virtual void PlaySound(
const std::shared_ptr<CYIAssetSound> &pAsset,
float volume = 1.0f);
84 virtual std::shared_ptr<CYISoundInstance>
CreateSoundInstance(
const std::shared_ptr<CYIAssetSound> &pAsset);
118 virtual void Process(
float *pData, uint32_t uFrameCount);
127 virtual void WillEnable() = 0;
132 virtual void DidDisable() = 0;
134 void EnteredBackground();
135 void EnteredForeground();
137 std::shared_ptr<CYIAssetSound> GetAssetSound(
const CYIString &name);
140 std::atomic<bool> m_bUserEnabled;
141 std::atomic<bool> m_bEnabled;
143 std::vector<std::weak_ptr<CYIAudioStream>> m_streams;
144 std::map<CYIString, std::shared_ptr<CYIAssetSound>> m_assetSounds;
145 std::vector<std::shared_ptr<CYISoundInstance>> m_soundInstances;
150 #endif // _YI_AUDIO_ENGINE_H_ virtual void UnregisterStream(const std::shared_ptr< CYIAudioStream > &pStreamToRemove)
Definition: YiMutex.h:110
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
Object representing a sound instance.
Definition: YiSoundInstance.h:21
virtual void RegisterStream(const std::shared_ptr< CYIAudioStream > &pStreamToAdd)
virtual std::shared_ptr< CYISoundInstance > CreateSoundInstance(const CYIString &name)
virtual uint32_t GetSampleRate() const =0
virtual void ClearCache()
Asset representing sound PCM data.
Definition: YiAssetSound.h:17
Base audio stream class that can process raw audio PCM.
Definition: YiAudioStream.h:22
Definition: YiSignalHandler.h:174
virtual uint32_t GetChannelCount() const =0
Object responsible for processing audio streams and output to the platform.
Definition: YiAudioEngine.h:30
virtual ~CYIAudioEngine()
virtual void PlaySound(const CYIString &name, float volume=1.0f)
static std::unique_ptr< CYIAudioEngine > Create()
virtual void Process(float *pData, uint32_t uFrameCount)