private void ClearState() { DisposeAudioComponents(); if (_doAudioOperations != null) { _doAudioOperations.Clear(); } if (_sessCreatedFlag) { _isCanvasCleared = WaveFormDisplay.ClearCanvas(); } _waveDisplay.ChannelPosition = 0.0d; _isPlaying = false; _sessCreatedFlag = false; trialName.Content = ""; PlayEnabled(false); _settingsObject.SessionCreatedFlag = false; LoopBtn.Content = (Image)FindResource("NoLoop"); _microTimer.Stop(); _sessionIndex = 0; _loopFalg = false; WaveFormDisplay.RepeatRegionHeight = 0; WaveFormDisplay.RepeatRegionWidth = 0; _current = -1; _next = -1; StartText.Clear(); StopText.Clear(); }
private void MUSHRASessionWindow_SessionCreated(object sender, MushraTestDetailsModel e) { _mushraTestDetailsModel = e; ClearState(); _mushraSessionEnumerator = _mushraTestDetailsModel.trials.ToList(); _sessCreatedFlag = ConstructMushraComponents(); ConfigureTimer(); if (_isCanvasCleared) { WaveFormDisplay.ConstructWaveFormControl(); _isCanvasCleared = false; } if (_sessCreatedFlag) { MushraTestModeOnOff?.Invoke(this, false); PlayEnabled(true); _settingsObject.SessionCreatedFlag = true; Log.Write(LogLevel.Info, "The MUSHRA Session has been loaded Sucessfully!!!"); } else { using (var obj = new FileMenuViewObject()) { MessageBox.Show("Audio Hardware not Connected/Installed", "Error", MessageBoxButton.OK, MessageBoxImage.Error); obj.CloseSession(); } } }
private void ClearState() { DisposeAudioComponents(); if (_doAudioOperations != null) { _doAudioOperations.Clear(); } _waveDisplay.ChannelPosition = 0.0d; WaveFormDisplay.RepeatRegionHeight = 0; WaveFormDisplay.RepeatRegionWidth = 0; SelectEnd = 0.0f; SelectBegin = 0.0f; _waveDisplay.SelectionBegin = TimeSpan.Zero; _waveDisplay.SelectionEnd = TimeSpan.Zero; _isCanvasCleared = WaveFormDisplay.ClearCanvas(); LoopBtn.Content = FindResource("NoLoop"); PlayEnabled(false); HighlightPlayingAudio(-1); _settingsObject.SessionCreatedFlag = false; trialName.Content = ""; _microTimer.Stop(); _clickedButton = 0; _loopFalg = false; _sessionIndex = 0; _isPlaying = false; _sessCreatedFlag = false; StartText.Clear(); StopText.Clear(); }
public void ClearWaveForm() { //mainCanvas.Children.Remove(WaveFormDisplay.WaveDisplayShape); WaveFormDisplay.Reset(); //mainCanvas.InvalidateVisual(); //mainCanvas.UpdateLayout(); RedrawGrid(); }
private void ABCSessionWindow_SessionCreated(object sender, ABCTestDetailsModel e) { _abcTestDetailsModel = e; ClearState(); LoopBtn.Content = (Image)FindResource("NoLoop"); ConfigureTimer(); abcSessionEnumerator = _abcTestDetailsModel?.trials?.ToList(); _trialCount = abcSessionEnumerator.Count(); _sessCreatedFlag = ConstructABCTestComponents(); if (_isCanvasCleared) { WaveFormDisplay.ConstructWaveFormControl(); _isCanvasCleared = false; } TestModeOnOff?.Invoke(this, false); if (_sessCreatedFlag) { _settingsObject.SessionCreatedFlag = true; PlayEnabled(true); HighlightPlayingAudio(0); Log.Write(LogLevel.Info, "The ABC Session has been loaded Sucessfully!!!"); } else { using (var obj = new FileMenuViewObject()) { MessageBox.Show("Audio Hardware not Connected/Installed", "Error", MessageBoxButton.OK, MessageBoxImage.Error); obj.CloseSession(); } } }
private bool ConstructMushraComponents() { if (_sessionIndex == _mushraSessionEnumerator.Count) { _sessionIndex = 0; return(false); } var currentMushraSessionObject = _mushraSessionEnumerator.ElementAtOrDefault(_sessionIndex); _currentTrialNumber = currentMushraSessionObject.TrialNumber; var count = 0; currentMushraSessionObject.Sample.All(sampleName => { if (sampleName != "") { count++; return(true); } else { return(false); } }); MushraNextTrial?.Invoke(this, count); if (currentMushraSessionObject.Reference == "" || currentMushraSessionObject.Sample.Count() == 0) { System.Windows.Forms.MessageBox.Show("Reference and Sample files should not be empty!!!"); return(false); } _audioObject = AudioFactory.GetAudioObject(_settingsObject.OutputDriver, _settingsObject.AsioDriver, _settingsObject.ExclusiveMode); if (!_audioObject.IntializeNAudioLibrary(_settingsObject.Latency)) { return(false); } _doAudioOperations = new List <WavePlayer>(); _newlistOfWavePlayers = new List <WavePlayer>(); if (_doAudioOperations == null) { throw new NullReferenceException("The WavePlayer instance is not initialized!!!!"); } _doAudioOperations.Add(new WavePlayer(currentMushraSessionObject.Reference)); _newlistOfWavePlayers.Add(new WavePlayer(currentMushraSessionObject.Reference)); currentMushraSessionObject.Sample.All(sample => { if (sample != "") { _doAudioOperations.Add(new WavePlayer(sample)); _newlistOfWavePlayers.Add(new WavePlayer(sample)); } return(true); }); trialName.Content = string.Format("Trial {0} of {1}, Trial Name - {2}", currentMushraSessionObject.TrialNumber, _mushraTestDetailsModel.trials.Count, currentMushraSessionObject.TrialName); _doAudioOperations.All(audioChannels => { audioChannels.SetVolumeStream(0); return(true); }); _newlistOfWavePlayers.All(audioChannels => { audioChannels.SetVolumeStream(0); return(true); }); _audioObject.MixWaveProviders(_doAudioOperations); WaveFormPlayer.Instance.OpenFile(currentMushraSessionObject.Reference); WaveFormDisplay.RegisterSoundPlayer(_waveDisplay); _sessionIndex++; var timeStamp = _audioObject.GetTotalDuration(); StopText.Text = string.Format("{0}:{1}:{2}", timeStamp.Minutes, timeStamp.Seconds, timeStamp.Milliseconds); StartText.Text = "0:0:0"; return(true); }
private bool ConstructABCTestComponents() { if (_sessionIndex == abcSessionEnumerator.Count) { _sessionIndex = 0; return(false); } var currentAbcSessionObject = abcSessionEnumerator.ElementAtOrDefault(_sessionIndex); if (currentAbcSessionObject.Reference == "" || currentAbcSessionObject.Sample == "") { System.Windows.Forms.MessageBox.Show("Reference and Sample files should not be empty!!!"); return(false); } _refFile = currentAbcSessionObject.Reference; _sampleFile = currentAbcSessionObject.Sample; _audioObject = AudioFactory.GetAudioObject(_settingsObject.OutputDriver, _settingsObject.AsioDriver, _settingsObject.ExclusiveMode); var latency = 0; if (_settingsObject.OutputDriver == 0) { if (_settingsObject.Latency < 100) { latency = _settingsObject.Latency * 10; // * _settingsObject.NumberOfBuffers; } else { latency = _settingsObject.Latency; } } if (!_audioObject.IntializeNAudioLibrary(latency)) { return(false); } _doAudioOperations = new List <WavePlayer>(); _newlistOfWavePlayers = new List <WavePlayer>(); if (_doAudioOperations == null) { throw new NullReferenceException("The WavePlayer instance is not initialized!!!!"); } _doAudioOperations.Add(new WavePlayer(_refFile)); _newlistOfWavePlayers.Add(new WavePlayer(_refFile)); if (currentAbcSessionObject.HiddenReference.Trim() == "B") { _doAudioOperations.Add(new WavePlayer(_refFile)); _doAudioOperations.Add(new WavePlayer(_sampleFile)); _newlistOfWavePlayers.Add(new WavePlayer(_refFile)); _newlistOfWavePlayers.Add(new WavePlayer(_sampleFile)); } else { _doAudioOperations.Add(new WavePlayer(_sampleFile)); _doAudioOperations.Add(new WavePlayer(_refFile)); _newlistOfWavePlayers.Add(new WavePlayer(_sampleFile)); _newlistOfWavePlayers.Add(new WavePlayer(_refFile)); } trialName.Content = string.Format("Trial {0} of {1}, Trial Name - {2}", currentAbcSessionObject.TrialNumber, _trialCount, currentAbcSessionObject.TrialName); _doAudioOperations.All(audioChannels => { audioChannels.SetVolumeStream(0); return(true); }); _newlistOfWavePlayers.All(audioChannels => { audioChannels.SetVolumeStream(0); return(true); }); _audioObject.MixWaveProviders(_doAudioOperations); WaveFormPlayer.Instance.OpenFile(_refFile); WaveFormDisplay.RegisterSoundPlayer(_waveDisplay); _sessionIndex++; var timeStamp = _audioObject.GetTotalDuration(); StopText.Text = string.Format("{0}:{1}:{2}", timeStamp.Minutes, timeStamp.Seconds, timeStamp.Milliseconds); StartText.Text = "0:0:0"; return(true); }