internal PCMStream(short* source, int samples, int sampleRate, int channels, int bps)
        {
            _sourceMap = null;

            _bps = bps; //16
            _numChannels = channels;
            _frequency = sampleRate;
            _numSamples = samples;

            _source = source;
            _samplePos = 0;
        }
        internal PCMStream(FileMap map)
        {
            _sourceMap = map;

            RIFFHeader* header = (RIFFHeader*)_sourceMap.Address;
            _bps = header->_fmtChunk._bitsPerSample;
            _numChannels = header->_fmtChunk._channels;
            _frequency = (int)header->_fmtChunk._samplesSec;
            _numSamples = (int)(header->_dataChunk._chunkSize / header->_fmtChunk._blockAlign);

            _source = (short*)(_sourceMap.Address + header->GetSize());
            _samplePos = 0;
        }
        private void btnOkay_Click(object sender, EventArgs e)
        {
            Stop();
            using(ProgressWindow progress = new ProgressWindow(this, String.Format("{0} Converter", _type == 0 ? "Brstm" : "Wave"), "Encoding, please wait...", false))
                switch (_type)
                {
                    case 0:
                        _audioData = RSTMConverter.Encode(_sourceStream, progress);
                        break;
                    case 1:
                        _audioData = RSARWaveConverter.Encode(_sourceStream, progress);
                        break;
                    case 2:
                        _audioData = RWAVConverter.Encode(_sourceStream, progress);
                        break;
                }

            DialogResult = DialogResult.OK;
            Close();
        }
 public new DialogResult ShowDialog(IWin32Window owner)
 {
     _audioData = null;
     DialogResult = DialogResult.Cancel;
     //try
     //{
         return base.ShowDialog(owner);
     //}
     //catch (Exception x)
     //{
     //    DisposeProvider();
     //    MessageBox.Show(x.ToString());
     //    return DialogResult.Cancel;
     //}
 }
 public void Dispose()
 {
     if (_sourceMap != null)
     {
         _sourceMap.Dispose();
         _sourceMap = null;
     }
     GC.SuppressFinalize(this);
 }