MGL(Win32)
読み取り中…
検索中…
一致する文字列を見つけられません
mgl_audio_defs.h
[詳解]
1// SPDX-License-Identifier: Zlib
2/* ------------------------------------------------------------------------- */
9/* ------------------------------------------------------------------------- */
10
11#ifndef INCGUARD_MGL_AUDIO_DEFS_H_1610828927
12#define INCGUARD_MGL_AUDIO_DEFS_H_1610828927
13
14#include <cstddef>
15#include <cstdint>
16
18
19namespace MGL::Audio
20{
22enum class VoiceKey : uint32_t {};
23
25constexpr uint32_t kDefaultVoiceKeySeed = MGL::Hash::kFNV1aDefaultValue32; // 32bitの値なら何でもいい.衝突する場合は変更を.
26
27/* ------------------------------------------------------------------------- */
34/* ------------------------------------------------------------------------- */
35constexpr VoiceKey MakeVoiceKey(const char *key, uint32_t seed = kDefaultVoiceKeySeed) noexcept
36{
37 return VoiceKey{MGL::Hash::FNV1a(key, seed)};
38}
39
41enum class InitializeMode : uint8_t
42{
43 None,
49};
50
52enum class SampleType : uint8_t
53{
54 SignedInt,
56 Float,
57};
58
61{
62 float samplesPerSec{0};
63 SampleType sampleType{SampleType::Float};
64 size_t bitsPerSample{0};
65 size_t channelCount{0};
66 bool isInterleaved{false};
67};
68
70enum class LoopType : uint8_t
71{
72 Disable,
73 Enable,
75};
76
77/* ------------------------------------------------------------------------- */
84/* ------------------------------------------------------------------------- */
85[[nodiscard]] constexpr bool ToLoopFlag(LoopType loopType, bool defaultValue = false) noexcept
86{
87 switch (loopType)
88 {
89 case LoopType::Disable:
90 return false;
91
92 case LoopType::Enable:
93 return true;
94
95 case LoopType::ResourceDefault:
96 return defaultValue;
97 }
98
99 return defaultValue;
100}
101} // namespace MGL::Audio
102
103#endif // INCGUARD_MGL_AUDIO_DEFS_H_1610828927
104
105// vim: et ts=4 sw=4 sts=4
VoiceKey
ボイスキー
Definition mgl_audio_defs.h:22
constexpr VoiceKey MakeVoiceKey(const char *key, uint32_t seed=kDefaultVoiceKeySeed) noexcept
ボイスキーを生成
Definition mgl_audio_defs.h:35
InitializeMode
初期化モード
Definition mgl_audio_defs.h:42
@ SystemDefault
システムのデフォルト
SampleType
サンプルタイプ
Definition mgl_audio_defs.h:53
@ Float
浮動小数点数
@ SignedInt
符号付き整数
@ UnsignedInt
符号なし整数
LoopType
ループタイプ
Definition mgl_audio_defs.h:71
@ Enable
有効(ループする)
@ ResourceDefault
リソースが持つ情報に委ねる
@ Disable
無効(ループしない)
constexpr uint32_t kDefaultVoiceKeySeed
ボイスキーを生成する際のシード値
Definition mgl_audio_defs.h:25
constexpr bool ToLoopFlag(LoopType loopType, bool defaultValue=false) noexcept
ループタイプをループフラグに変換
Definition mgl_audio_defs.h:85
MGL FNV-1aハッシュ計算関数
データフォーマット
Definition mgl_audio_defs.h:61
SampleType sampleType
サンプルタイプ
Definition mgl_audio_defs.h:63
size_t bitsPerSample
1サンプルあたりのビット数
Definition mgl_audio_defs.h:64
size_t channelCount
チャンネル数
Definition mgl_audio_defs.h:65
bool isInterleaved
インターリーブかどうかのフラグ
Definition mgl_audio_defs.h:66
float samplesPerSec
サンプリングレート
Definition mgl_audio_defs.h:62