Dispose some sound streams.

This commit is contained in:
RoosterDragon
2016-12-23 19:37:17 +00:00
parent 53bd29351b
commit 226c0a050a
6 changed files with 32 additions and 16 deletions

View File

@@ -51,13 +51,14 @@ namespace OpenRA.Mods.Common.AudioLoaders
}
}
public class AudFormat : ISoundFormat
public sealed class AudFormat : ISoundFormat
{
public int Channels { get { return 1; } }
public int SampleBits { get { return 16; } }
public int SampleRate { get { return sampleRate; } }
public float LengthInSeconds { get { return AudReader.SoundLength(stream); } }
public Stream GetPCMInputStream() { return new MemoryStream(rawData.Value); }
public void Dispose() { stream.Dispose(); }
int sampleRate;
Lazy<byte[]> rawData;

View File

@@ -35,13 +35,14 @@ namespace OpenRA.Mods.Common.AudioLoaders
}
}
public class VocFormat : ISoundFormat
public sealed class VocFormat : ISoundFormat
{
public int SampleBits { get { return 8; } }
public int Channels { get { return 1; } }
public int SampleRate { get; private set; }
public float LengthInSeconds { get { return (float)totalSamples / SampleRate; } }
public Stream GetPCMInputStream() { return new VocStream(this); }
public void Dispose() { stream.Dispose(); }
int totalSamples = 0;
int samplePosition = 0;

View File

@@ -48,13 +48,14 @@ namespace OpenRA.Mods.Common.AudioLoaders
}
}
public class WavFormat : ISoundFormat
public sealed class WavFormat : ISoundFormat
{
public int Channels { get { return reader.Value.Channels; } }
public int SampleBits { get { return reader.Value.BitsPerSample; } }
public int SampleRate { get { return reader.Value.SampleRate; } }
public float LengthInSeconds { get { return WavReader.WaveLength(stream); } }
public Stream GetPCMInputStream() { return new MemoryStream(reader.Value.RawOutput); }
public void Dispose() { stream.Dispose(); }
Lazy<WavReader> reader;