mirror of
https://github.com/space-wizards/RobustToolbox.git
synced 2026-02-15 03:30:53 +01:00
107 lines
2.5 KiB
C#
107 lines
2.5 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Numerics;
|
|
using Robust.Shared.Audio;
|
|
using Robust.Shared.Audio.AudioLoading;
|
|
using Robust.Shared.Audio.Sources;
|
|
using Robust.Shared.Maths;
|
|
|
|
namespace Robust.Client.Audio;
|
|
|
|
/// <summary>
|
|
/// Headless client audio.
|
|
/// </summary>
|
|
internal sealed class HeadlessAudioManager : IAudioInternal
|
|
{
|
|
/// <inheritdoc />
|
|
public void InitializePostWindowing()
|
|
{
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void Shutdown()
|
|
{
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void FlushALDisposeQueues()
|
|
{
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public IAudioSource CreateAudioSource(AudioStream stream)
|
|
{
|
|
return DummyAudioSource.Instance;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public IBufferedAudioSource CreateBufferedAudioSource(int buffers, bool floatAudio = false)
|
|
{
|
|
return DummyBufferedAudioSource.Instance;
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void SetPosition(Vector2 position)
|
|
{
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void SetRotation(Angle angle)
|
|
{
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void SetMasterVolume(float value)
|
|
{
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void SetAttenuation(Attenuation attenuation)
|
|
{
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void StopAllAudio()
|
|
{
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void SetZOffset(float f)
|
|
{
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public void _checkAlError(string callerMember = "", int callerLineNumber = -1)
|
|
{
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
public float GetAttenuationGain(float distance, float rolloffFactor, float referenceDistance, float maxDistance)
|
|
{
|
|
return 0f;
|
|
}
|
|
|
|
public AudioStream LoadAudioOggVorbis(Stream stream, string? name = null)
|
|
{
|
|
var metadata = AudioLoaderOgg.LoadAudioMetadata(stream);
|
|
return AudioStreamFromMetadata(metadata, name);
|
|
}
|
|
|
|
public AudioStream LoadAudioWav(Stream stream, string? name = null)
|
|
{
|
|
var metadata = AudioLoaderWav.LoadAudioMetadata(stream);
|
|
return AudioStreamFromMetadata(metadata, name);
|
|
}
|
|
|
|
public AudioStream LoadAudioRaw(ReadOnlySpan<short> samples, int channels, int sampleRate, string? name = null)
|
|
{
|
|
var length = TimeSpan.FromSeconds((double) samples.Length / channels / sampleRate);
|
|
return new AudioStream(null, length, channels, name);
|
|
}
|
|
|
|
private static AudioStream AudioStreamFromMetadata(AudioMetadata metadata, string? name)
|
|
{
|
|
return new AudioStream(null, metadata.Length, metadata.ChannelCount, name, metadata.Title, metadata.Artist);
|
|
}
|
|
}
|