com.alicizax.unity.framework/Runtime/Audio/AudioDebugInfo.cs

149 lines
4.1 KiB
C#
Raw Normal View History

using UnityEngine;
namespace AlicizaX.Audio.Runtime
{
internal interface IAudioDebugService
{
int CategoryCount { get; }
int ClipCacheCount { get; }
int ClipCacheCapacity { get; }
int HandleCapacity { get; }
bool Initialized { get; }
bool UnityAudioDisabled { get; }
AudioClipCacheEntry FirstClipCacheEntry { get; }
void FillServiceDebugInfo(AudioServiceDebugInfo info);
bool FillCategoryDebugInfo(int typeIndex, AudioCategoryDebugInfo info);
bool FillAgentDebugInfo(int typeIndex, int agentIndex, AudioAgentDebugInfo info);
bool FillClipCacheDebugInfo(AudioClipCacheEntry entry, AudioClipCacheDebugInfo info);
}
internal sealed class AudioServiceDebugInfo
{
public bool Initialized;
public bool UnityAudioDisabled;
public bool Enable;
public float Volume;
public int CategoryCount;
public int ActiveAgentCount;
public int HandleCapacity;
public int ClipCacheCount;
public int ClipCacheCapacity;
public AudioListener Listener;
public Transform InstanceRoot;
public void Clear()
{
Initialized = false;
UnityAudioDisabled = false;
Enable = false;
Volume = 0f;
CategoryCount = 0;
ActiveAgentCount = 0;
HandleCapacity = 0;
ClipCacheCount = 0;
ClipCacheCapacity = 0;
Listener = null;
InstanceRoot = null;
}
}
internal sealed class AudioCategoryDebugInfo
{
public AudioType Type;
public bool Enabled;
public float Volume;
public int Capacity;
public int ActiveCount;
public int FreeCount;
public int HeapCount;
public void Clear()
{
Type = AudioType.Sound;
Enabled = false;
Volume = 0f;
Capacity = 0;
ActiveCount = 0;
FreeCount = 0;
HeapCount = 0;
}
}
internal sealed class AudioAgentDebugInfo
{
public AudioType Type;
public AudioAgentRuntimeState State;
public int Index;
public int GlobalIndex;
public int ActiveIndex;
public ulong Handle;
public string Address;
public AudioClip Clip;
public Transform FollowTarget;
public Vector3 Position;
public bool Loop;
public bool Spatial;
public bool Occluded;
public float Volume;
public float Pitch;
public float SpatialBlend;
public float MinDistance;
public float MaxDistance;
public float StartedAt;
public void Clear()
{
Type = AudioType.Sound;
State = AudioAgentRuntimeState.Free;
Index = 0;
GlobalIndex = 0;
ActiveIndex = -1;
Handle = 0UL;
Address = null;
Clip = null;
FollowTarget = null;
Position = Vector3.zero;
Loop = false;
Spatial = false;
Occluded = false;
Volume = 0f;
Pitch = 0f;
SpatialBlend = 0f;
MinDistance = 0f;
MaxDistance = 0f;
StartedAt = 0f;
}
}
internal sealed class AudioClipCacheDebugInfo
{
public string Address;
public AudioClip Clip;
public int RefCount;
public int PendingCount;
public bool Loading;
public bool Pinned;
public bool CacheAfterUse;
public bool InLru;
public bool IsLoaded;
public bool HasValidHandle;
public float LastUseTime;
public void Clear()
{
Address = null;
Clip = null;
RefCount = 0;
PendingCount = 0;
Loading = false;
Pinned = false;
CacheAfterUse = false;
InLru = false;
IsLoaded = false;
HasValidHandle = false;
LastUseTime = 0f;
}
}
}