From 888718e9009bbe62788771c72a692d8ed1b2aeb9 Mon Sep 17 00:00:00 2001 From: morkt Date: Fri, 1 May 2015 23:30:57 +0400 Subject: [PATCH] (WaveAudio): support Ogg-tagged wave streams. --- GameRes/AudioWAV.cs | 18 ++++++++++++++++-- MainWindow.xaml.cs | 11 +---------- 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/GameRes/AudioWAV.cs b/GameRes/AudioWAV.cs index f86d8028..6db8d3d2 100644 --- a/GameRes/AudioWAV.cs +++ b/GameRes/AudioWAV.cs @@ -2,7 +2,7 @@ //! \date Tue Nov 04 18:22:37 2014 //! \brief WAVE audio format implementation. // -// Copyright (C) 2014 by morkt +// Copyright (C) 2014-2015 by morkt // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to @@ -151,7 +151,21 @@ namespace GameRes public override SoundInput TryOpen (Stream file) { - return new WaveInput (file); + SoundInput sound = new WaveInput (file); + if (0x674f == sound.Format.FormatTag || 0x6771 == sound.Format.FormatTag) + { + try + { + var ogg = AudioFormat.Read (sound); + if (null != ogg) + { + sound.Dispose(); + sound = ogg; + } + } + catch { /* ignore errors */ } + } + return sound; } public override void Write (SoundInput source, Stream output) diff --git a/MainWindow.xaml.cs b/MainWindow.xaml.cs index 7245a7c5..97de6317 100644 --- a/MainWindow.xaml.cs +++ b/MainWindow.xaml.cs @@ -1,6 +1,6 @@ // Game Resource Browser // -// Copyright (C) 2014 by morkt +// Copyright (C) 2014-2015 by morkt // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to @@ -810,15 +810,6 @@ namespace GARbro.GUI throw FormatCatalog.Instance.LastError; return; } - if (sound is WaveInput && 0x674f == sound.Format.FormatTag) - { - var ogg = AudioFormat.Read (sound); - if (null != ogg) - { - sound.Dispose(); - sound = ogg; - } - } if (m_audio != null) {