Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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();
                }
            }
        }
Esempio n. 3
0
        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();
        }
Esempio n. 4
0
 public void ClearWaveForm()
 {
     //mainCanvas.Children.Remove(WaveFormDisplay.WaveDisplayShape);
     WaveFormDisplay.Reset();
     //mainCanvas.InvalidateVisual();
     //mainCanvas.UpdateLayout();
     RedrawGrid();
 }
Esempio n. 5
0
        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();
                }
            }
        }
Esempio n. 6
0
        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);
        }
Esempio n. 7
0
        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);
        }