11#ifndef INCGUARD_MGL_AUDIO_VOICE_H_1610732115
12#define INCGUARD_MGL_AUDIO_VOICE_H_1610732115
58 virtual ~Voice() noexcept = default;
67 virtual
bool Load() noexcept = 0;
80 virtual
bool GetSample([[maybe_unused]]
float &outDataL, [[maybe_unused]]
float &outDataR, [[maybe_unused]] uint32_t trackIndex, [[maybe_unused]]
size_t sampleFrame) const noexcept
94 virtual bool GetSample([[maybe_unused]]
float &outDataL, [[maybe_unused]]
float &outDataR)
noexcept
108 virtual bool Start([[maybe_unused]] uint32_t trackIndex, [[maybe_unused]]
LoopType loopType)
noexcept
129 [[nodiscard]]
virtual uint32_t
GetTotalFrame(uint32_t trackIndex)
const noexcept = 0;
139 [[nodiscard]]
virtual bool IsLoop(uint32_t trackIndex)
const noexcept = 0;
148 [[nodiscard]]
virtual uint32_t
GetLoopFrame(uint32_t trackIndex)
const noexcept = 0;
246 std::atomic<Status> _status;
247 std::atomic<float> _volume;
MGL オーディオボイス
Definition mgl_audio_voice.h:24
void SetStatus(Status status) noexcept
ボイスのステータスを設定
Definition mgl_audio_voice.h:238
virtual uint32_t GetTrackCount() const noexcept=0
ボイスが持つトラックの数を取得
virtual uint32_t GetTotalFrame(uint32_t trackIndex) const noexcept=0
ボイスの最大フレーム数を取得
virtual uint32_t GetLoopFrame(uint32_t trackIndex) const noexcept=0
指定したトラックのループフレームを取得
void SetVolume(float volume) noexcept
ボイスのボリュームを設定
Definition mgl_audio_voice.h:215
constexpr Voice(VoiceKey key, Type type) noexcept
コンストラクタ
Definition mgl_audio_voice.h:50
virtual bool Load() noexcept=0
ボイスの読み込み処理
virtual void Stop() noexcept
ボイスの停止処理
Definition mgl_audio_voice.h:118
virtual bool GetSample(float &outDataL, float &outDataR, uint32_t trackIndex, size_t sampleFrame) const noexcept
スタティックボイスのサンプルの取得
Definition mgl_audio_voice.h:80
virtual bool Start(uint32_t trackIndex, LoopType loopType) noexcept
ボイスの開始処理
Definition mgl_audio_voice.h:108
virtual bool GetSample(float &outDataL, float &outDataR) noexcept
ダイナミックボイスのサンプルの取得
Definition mgl_audio_voice.h:94
Type
ボイスのタイプ
Definition mgl_audio_voice.h:38
@ Static
スタティック: 読み込み後は内部状態が変化しない.同時再生可能
@ Dynamic
ダイナミック: 再生中に内部状態が変化する.同時再生不可能.ストリーム再生など
float GetVolume() const noexcept
ボイスのボリュームを取得
Definition mgl_audio_voice.h:226
Status
ボイスの状態
Definition mgl_audio_voice.h:28
virtual bool IsLoop(uint32_t trackIndex) const noexcept=0
指定したトラックのループ設定を取得
constexpr Type GetType() const noexcept
ボイスの種類を取得
Definition mgl_audio_voice.h:196
Status GetStatus() const noexcept
ボイスのステータスを取得
Definition mgl_audio_voice.h:185
void RemoveRequests() noexcept
削除を要求
Definition mgl_audio_voice.h:166
constexpr VoiceKey GetKey() const noexcept
ボイスキーを取得
Definition mgl_audio_voice.h:156
VoiceKey
ボイスキー
Definition mgl_audio_defs.h:22
LoopType
ループタイプ
Definition mgl_audio_defs.h:71
std::shared_ptr< Voice > SharedVoice
共有ボイスの型
Definition mgl_audio_voice.h:251