added OggAudio.Instance public property.

This commit is contained in:
morkt 2016-05-01 21:56:38 +04:00
parent 0a73f4f96e
commit be6825bf07
3 changed files with 9 additions and 6 deletions

View File

@ -63,8 +63,8 @@ namespace GameRes.Formats
{ {
if (0 == signature) return null; if (0 == signature) return null;
// resolve some special cases first // resolve some special cases first
if (s_OggFormat.Value.Signature == signature) if (OggAudio.Instance.Signature == signature)
return s_OggFormat.Value; return OggAudio.Instance;
if (AudioFormat.Wav.Signature == signature) if (AudioFormat.Wav.Signature == signature)
return AudioFormat.Wav; return AudioFormat.Wav;
if (0x4D42 == (signature & 0xFFFF)) // 'BM' if (0x4D42 == (signature & 0xFFFF)) // 'BM'

View File

@ -26,6 +26,7 @@
using System; using System;
using System.ComponentModel.Composition; using System.ComponentModel.Composition;
using System.IO; using System.IO;
using System.Linq;
using NVorbis; using NVorbis;
namespace GameRes.Formats namespace GameRes.Formats
@ -133,5 +134,9 @@ namespace GameRes.Formats
{ {
return new OggInput (file); return new OggInput (file);
} }
public static AudioFormat Instance { get { return s_OggFormat.Value; } }
static readonly Lazy<AudioFormat> s_OggFormat = new Lazy<AudioFormat> (() => FormatCatalog.Instance.AudioFormats.FirstOrDefault (x => x.Tag == "OGG"));
} }
} }

View File

@ -44,8 +44,6 @@ namespace GameRes.Formats.BlackCyc
Extensions = new string[] { "vaw", "wgq" }; Extensions = new string[] { "vaw", "wgq" };
} }
static readonly Lazy<AudioFormat> OggFormat = new Lazy<AudioFormat> (() => FormatCatalog.Instance.AudioFormats.FirstOrDefault (x => x.Tag == "OGG"));
public override SoundInput TryOpen (Stream file) public override SoundInput TryOpen (Stream file)
{ {
var header = ResourceHeader.Read (file); var header = ResourceHeader.Read (file);
@ -64,12 +62,12 @@ namespace GameRes.Formats.BlackCyc
} }
else if (2 == header.PackType) else if (2 == header.PackType)
{ {
format = OggFormat.Value; format = OggAudio.Instance;
offset = 0x6C; offset = 0x6C;
} }
else if (6 == header.PackType && Binary.AsciiEqual (header.Bytes, 0x10, "OGG ")) else if (6 == header.PackType && Binary.AsciiEqual (header.Bytes, 0x10, "OGG "))
{ {
format = OggFormat.Value; format = OggAudio.Instance;
offset = 0x40; offset = 0x40;
} }
else else