Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
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;
        }