Files
AssetStudio/AssetStudioUtility/Audio/AudioClipExtension.cs
T
2026-04-20 03:04:32 +03:00

62 lines
2.9 KiB
C#

namespace AssetStudio
{
public static class AudioClipExtension
{
public static string GetCompressionFormatString(this AudioClip m_AudioClip)
{
if (m_AudioClip.version < (2, 6))
{
switch ((LegacyAudioType)m_AudioClip.m_Format)
{
case LegacyAudioType.RawWavU8Mono: return "PCM WAV (8-bit unsigned)";
case LegacyAudioType.RawWavS16Mono:
case LegacyAudioType.RawWavS16Stereo: return "PCM WAV (16-bit signed)";
case LegacyAudioType.CompressedAudio: return "Externally compressed audio (OGG/MP3/..)";
default: return $"Unknown ({m_AudioClip.m_Format})";
}
}
if (m_AudioClip.version < 5)
{
switch (m_AudioClip.m_Type)
{
case FMODSoundType.AAC: return "AAC";
case FMODSoundType.AIFF: return "AIFF";
case FMODSoundType.IT: return "Impulse tracker";
case FMODSoundType.MOD: return "Protracker / Fasttracker MOD";
case FMODSoundType.MPEG: return "MP2/MP3 MPEG";
case FMODSoundType.OGGVORBIS: return "Ogg vorbis";
case FMODSoundType.S3M: return "ScreamTracker 3";
case FMODSoundType.WAV: return "Microsoft WAV";
case FMODSoundType.XM: return "FastTracker 2 XM";
case FMODSoundType.XMA: return "Xbox360 XMA";
case FMODSoundType.VAG: return "PlayStation Portable ADPCM";
case FMODSoundType.AUDIOQUEUE: return "iPhone";
default: return $"Unknown ({m_AudioClip.m_Type})";
}
}
else
{
switch (m_AudioClip.m_CompressionFormat)
{
case AudioCompressionFormat.PCM: return "PCM";
case AudioCompressionFormat.Vorbis: return "Vorbis";
case AudioCompressionFormat.ADPCM: return "ADPCM";
case AudioCompressionFormat.MP3: return "MP3";
case AudioCompressionFormat.PSMVAG: return "PlayStation Portable ADPCM";
case AudioCompressionFormat.HEVAG: return "PSVita ADPCM";
case AudioCompressionFormat.XMA: return "Xbox360 XMA";
case AudioCompressionFormat.AAC: return "AAC";
case AudioCompressionFormat.GCADPCM: return "Nintendo 3DS/Wii DSP";
case AudioCompressionFormat.ATRAC9: return "PSVita ATRAC9";
default: return "Unknown";
}
}
}
public static bool IsLegacyRawWav(this AudioClip m_AudioClip)
{
return m_AudioClip.version < (2, 6) && m_AudioClip.m_Format > 0 && (LegacyAudioType)m_AudioClip.m_Format < LegacyAudioType.CompressedAudio;
}
}
}