载入中...
搜索中...
未找到
AudioZone.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
5#include "common/Result.h"
6
7#include <cstdint>
8#include <vector>
9
10namespace eve::audio {
11class Source;
12
14struct AudioZoneItem { float volume=1.f, fadeInTime=5.f, fadeOutTime=5.f, duration=0.f; };
16enum class AudioZonePhase : std::uint8_t { Active, BecomingInactive, Inactive };
19public:
20 float x=0.f,y=0.f,z=0.f,radius=30.f,minimumBreakTime=5.f,maximumBreakTime=10.f,deactivationTime=10.f;
21 bool global=false;
23 [[nodiscard]] Result<int> addItem(const AudioZoneItem& item);
24 int itemCount() const noexcept { return static_cast<int>(items_.size()); }
31 const AudioZoneItem* itemAt(int index) const noexcept;
32private:
33 std::vector<AudioZoneItem> items_;
34};
43struct AudioZoneOutput { bool play=false,stop=false; int trackIndex=-1; float volume=0.f; };
56 AudioZoneState& state, float now,
57 float playerX, float playerY,
58 float playerZ, float masterVolume,
59 std::uint32_t seed);
62}
float y
Definition AnimClip.cpp:738
float x
Definition AnimClip.cpp:738
float z
Definition AnimClip.cpp:738
std::string output
#define EVENGINE_API_BACKENDS
Definition Export.h:108
float radius
std::uint32_t seed
Definition PointSet.cpp:807
Move-only, checked operation results for the common layer.
Heightmap global
uint32_t index
const UnitySourceAsset & source
Move-only operation result carrying either a value or Status.
Definition Result.h:155
Caller-owned Pcg audio-zone configuration and track list.
Definition AudioZone.h:18
int itemCount() const noexcept
Definition AudioZone.h:24
A playable audio source (static buffer or streaming decoder). Not thread-safe for playback control ex...
Definition Source.h:30
Result< AudioZoneOutput > evaluateAudioZone(const AudioZoneProfile &p, AudioZoneState &state, float now, float px, float py, float pz, float master, std::uint32_t seed)
Evaluate PcgAudioManager/PcgAudioZone for one explicit time and player observation.
Definition AudioZone.cpp:21
Result< void > applyAudioZoneOutput(Source *source, const AudioZoneOutput &output)
Apply one evaluated command to the caller-selected track Source without retaining it.
Definition AudioZone.cpp:59
AudioZonePhase
AudioZonePhase public API.
Definition AudioZone.h:16
One Pcg audio-zone track timing and gain profile.
Definition AudioZone.h:14
Commands to apply to a caller-owned audio Source.
Definition AudioZone.h:43
Persistent playback state owned by the caller.
Definition AudioZone.h:36