MGL(Win32)
読み取り中…
検索中…
一致する文字列を見つけられません
mgl_audio_fade.h
[詳解]
1// SPDX-License-Identifier: Zlib
2/* ------------------------------------------------------------------------- */
9/* ------------------------------------------------------------------------- */
10
11#ifndef INCGUARD_MGL_AUDIO_FADE_H_1612076492
12#define INCGUARD_MGL_AUDIO_FADE_H_1612076492
13
14#include <cstdint>
15#include <mutex>
16
17namespace MGL::Audio
18{
20class Fade
21{
22public:
23 constexpr Fade() noexcept = default;
24
25 void Start(float currentVolume, float targetVolume, float fadeTimeSec, float samplesPerSec, bool isAutoStop) noexcept;
26 bool Update(float &volume) noexcept;
27 void Cancel() noexcept;
28
29 /* ------------------------------------------------------------------------- */
35 /* ------------------------------------------------------------------------- */
36 [[nodiscard]] constexpr bool IsActive() const noexcept
37 {
38 return _isActive;
39 }
40
41 /* ------------------------------------------------------------------------- */
46 /* ------------------------------------------------------------------------- */
47 [[nodiscard]] constexpr bool IsAutoStop() const noexcept
48 {
49 return _isAutoStop;
50 }
51
52private:
53 bool _isActive{false}; // フェード実行中フラグ
54 bool _isAutoStop{false}; // フェード終了時に自動で停止するかのフラグ
55 float _targetVolume{0.0f}; // フェード後の音量
56 float _addVolumePerFrame{0.0f}; // 1フレームあたりの音量の加算量
57 std::mutex _mutex; // ミューテックス
58};
59} // namespace MGL::Audio
60
61#endif // INCGUARD_MGL_AUDIO_FADE_H_1612076492
62
63// vim: et ts=4 sw=4 sts=4
フェード処理クラス
Definition mgl_audio_fade.h:21
void Cancel() noexcept
キャンセル
Definition mgl_audio_fade.cc:83
void Start(float currentVolume, float targetVolume, float fadeTimeSec, float samplesPerSec, bool isAutoStop) noexcept
開始
Definition mgl_audio_fade.cc:27
bool Update(float &volume) noexcept
更新処理
Definition mgl_audio_fade.cc:47
constexpr bool IsAutoStop() const noexcept
自動停止フラグを取得
Definition mgl_audio_fade.h:47
constexpr bool IsActive() const noexcept
有効状態を取得
Definition mgl_audio_fade.h:36