Example #1
0
        private void End()
        {
            if (waveIn != null)
            {
                waveIn.StopRecording();
                waveIn.Dispose();
                waveIn = null;

                var waveReader = new Mp3Reader {
                    IsMp3FileReader = false
                };
                if (waveReader.TryRead(memoryStream.GetBuffer(), out var fileInfo))
                {
                    var signal = new Signal("Microphone Signal");
                    signal.SamplingFrq   = fileInfo.nSamplesPerSec;
                    signal.StartDateTime = fileInfo.dateTime;

                    for (int i = 0; i < fileInfo.nChannels; i++)
                    {
                        signal.channels.Add(new Channel(fileInfo.data.GetLength(0)));
                        signal.channels[i].Source = signal.fileName;
                        signal.channels[i].Name   = fileInfo.channelNames[i] ?? ("Channel " + i);
                        for (int j = 0; j < fileInfo.data.GetLength(0); j++)
                        {
                            signal.channels[i].values[j] = fileInfo.data[j, i];
                        }
                    }

                    signal.UpdateChannelsInfo();

                    MainWindow.Instance.ResetSignal(signal);
                }

                waveFileWriter.Dispose();
                memoryStream.Close();
            }
        }