public WaveBank( AudioEngine audioEngine, string nonStreamingWaveBankFilename ) { if (audioEngine == null) { throw new ArgumentNullException("audioEngine"); } if (String.IsNullOrEmpty(nonStreamingWaveBankFilename)) { throw new ArgumentNullException("nonStreamingWaveBankFilename"); } bankData = TitleContainer.ReadToPointer( nonStreamingWaveBankFilename, out bankDataLen ); FAudio.FACTAudioEngine_CreateInMemoryWaveBank( audioEngine.handle, bankData, (uint)bankDataLen, 0, 0, out handle ); engine = audioEngine; selfReference = new WeakReference(this, true); engine.RegisterPointer(handle, selfReference); IsDisposed = false; }
public WaveBank( AudioEngine audioEngine, string streamingWaveBankFilename, int offset, short packetsize ) { if (audioEngine == null) { throw new ArgumentNullException("audioEngine"); } if (String.IsNullOrEmpty(streamingWaveBankFilename)) { throw new ArgumentNullException("streamingWaveBankFilename"); } string safeName = MonoGame.Utilities.FileHelpers.NormalizeFilePathSeparators( streamingWaveBankFilename ); if (!Path.IsPathRooted(safeName)) { safeName = Path.Combine( TitleLocation.Path, safeName ); } bankData = FAudio.FAudio_fopen(safeName); FAudio.FACTStreamingParameters settings = new FAudio.FACTStreamingParameters(); settings.file = bankData; FAudio.FACTAudioEngine_CreateStreamingWaveBank( audioEngine.handle, ref settings, out handle ); engine = audioEngine; selfReference = new WeakReference(this, true); engine.RegisterPointer(handle, selfReference); IsDisposed = false; }
public SoundBank(AudioEngine audioEngine, string filename) { if (audioEngine == null) { throw new ArgumentNullException("audioEngine"); } if (String.IsNullOrEmpty(filename)) { throw new ArgumentNullException("filename"); } IntPtr bufferLen; IntPtr buffer = TitleContainer.ReadToPointer(filename, out bufferLen); FAudio.FACTAudioEngine_CreateSoundBank( audioEngine.handle, buffer, (uint)bufferLen, 0, 0, out handle ); FNAPlatform.FreeFilePointer(buffer); engine = audioEngine; selfReference = new WeakReference(this, true); dspSettings = new FAudio.F3DAUDIO_DSP_SETTINGS(); dspSettings.SrcChannelCount = 1; dspSettings.DstChannelCount = engine.channels; dspSettings.pMatrixCoefficients = Marshal.AllocHGlobal( 4 * (int)dspSettings.SrcChannelCount * (int)dspSettings.DstChannelCount ); engine.RegisterPointer(handle, selfReference); IsDisposed = false; }