public override int Open(string filename) { this._filename = filename; bjxa = new bjxa.Decoder(); #region [ Reading XA headers, then store it ] fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); // Need to set FileShare flag, to avoid locking after Closer() format = bjxa.ReadHeader(fs); //string xaid = Encoding.ASCII.GetString( xah.id ); #region [ Debug info ] //Debug.WriteLine( "**XAHEADER**" ); //Debug.WriteLine( "id= " + xaheader.id.ToString( "X8" ) ); //Debug.WriteLine( "nDataLen= " + xaheader.nDataLen.ToString( "X8" ) ); //Debug.WriteLine( "nSamples= " + xaheader.nSamples.ToString( "X8" ) ); //Debug.WriteLine( "nSamplesPerSec= " + xaheader.nSamplesPerSec.ToString( "X4" ) ); //Debug.WriteLine( "nBits= " + xaheader.nBits.ToString( "X2" ) ); //Debug.WriteLine( "nChannels= " + xaheader.nChannels.ToString( "X2" ) ); //Debug.WriteLine( "nLoopPtr= " + xaheader.nLoopPtr.ToString( "X8" ) ); //Debug.WriteLine( "befL[0]= " + xaheader.befL[ 0 ].ToString( "X4" ) ); //Debug.WriteLine( "befL[1]= " + xaheader.befL[ 1 ].ToString( "X4" ) ); //Debug.WriteLine( "befR[0]= " + xaheader.befR[ 0 ].ToString( "X4" ) ); //Debug.WriteLine( "befR[1]= " + xaheader.befR[ 1 ].ToString( "X4" ) ); #endregion #endregion #region [ Getting WAVEFORMEX info ] wfx = new CWin32.WAVEFORMATEX( (ushort)format.WaveFormatPcm, // wFormatTag (ushort)format.Channels, // nChannels format.SamplesRate, // nSamplesPerSec format.WaveByteRate, // nAvgBytesPerSec (ushort)format.WaveBlockAlign, // nBlockAlign (ushort)format.SampleBits, // wBitsPerSample 0 // cbSize ); #endregion #region [ Debug info ] //Debug.WriteLine( "**WAVEFORMATEX**" ); //Debug.WriteLine( "wFormatTag= " + waveformatex.wFormatTag.ToString( "X4" ) ); //Debug.WriteLine( "nChannels = " + waveformatex.nChannels.ToString( "X4" ) ); //Debug.WriteLine( "nSamplesPerSec= " + waveformatex.nSamplesPerSec.ToString( "X8" ) ); //Debug.WriteLine( "nAvgBytesPerSec= " + waveformatex.nAvgBytesPerSec.ToString( "X8" ) ); //Debug.WriteLine( "nBlockAlign= " + waveformatex.nBlockAlign.ToString( "X4" ) ); //Debug.WriteLine( "wBitsPerSample= " + waveformatex.wBitsPerSample.ToString( "X4" ) ); //Debug.WriteLine( "cbSize= " + waveformatex.cbSize.ToString( "X4" ) ); #endregion nTotalPCMSize = (uint)format.DataLengthPcm; return(0); }
// Protected implementation of Dispose pattern. protected virtual void Dispose(bool disposing) { if (this.bDisposed) { return; } if (srcBuf != null) { srcBuf = null; } if (bjxa != null) { bjxa = null; } if (disposing) { fs.Dispose(); } this.bDisposed = true; }