private void CleanupDecoder() { dataFileStream.Close(); AudioFileInStream.Close(); AudioFileInStream = null; dataFileStream = null; AudioFileName = null; DataFileName = null; DisplayAudioFileBox.Invoke((Action <object>)(unused => DisplayAudioFileBox.Text = ""), 0); DisplayDataFileBox.Invoke((Action <object>)(unused => DisplayDataFileBox.Text = ""), 0); Decoder = null; }
private void SetupDecoder(out Stream dataFileStream) { AudioFileInStream = new FileInDecodingStream(); AudioFileInStream.InfoOutFile = InfoFileWriter; AudioFileInStream.SetMetadataRespond(MetadataType.VorbisComment); SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "All Files (*.*)|*.*"; dlg.ShowDialog(); if (dlg.FileName == "") { dataFileStream = null; return; } dataFileStream = new StreamWriter(dlg.FileName).BaseStream; Decoder = new NLSBSteganographerDecoder( AudioFileInStream, dataFileStream, KeyHelper.GenerateKeyFromUserInput() ); AudioFileInStream.Initialize(AudioFileName); AudioFileInStream.ProgressCallback = ProgressCallback; MainWorkerThread = new Thread(new ParameterizedThreadStart(x => { Decoder.ProcessFile(); CleanupDecoder(); })); }