/// ------------------------------------------------------------------------------------ /// <summary> /// If user clicks OK and recordings were made or changed, the full path to the EAF /// file is returned. Otherwise null is returned. /// </summary> /// ------------------------------------------------------------------------------------ public string RecordAnnotations(Form frm, AudioRecordingType annotationType) { try { Program.SuspendBackgroundProcesses(); using (var viewModel = OralAnnotationRecorderDlgViewModel.Create(this, annotationType)) using (var dlg = OralAnnotationRecorderBaseDlg.Create(viewModel, annotationType)) { if (dlg.ShowDialog(frm) != DialogResult.OK || !viewModel.WereChangesMade) { viewModel.DiscardChanges(); return(null); } Analytics.Track("Changes made using Oral Annotation Recorder"); var eafFileName = viewModel.Tiers.Save(PathToAnnotatedFile); GenerateOralAnnotationFile(viewModel.Tiers, frm, GenerateOption.ClearAndRegenerateOnDemand); return(eafFileName); } } finally { Program.ResumeBackgroundProcesses(true); } }
public void Setup() { _tempAudioFile = MediaFileInfoTests.GetLongerTestAudioFile(); var tier = new TimeTier(_tempAudioFile); tier.AddSegment(0f, 5f); tier.AddSegment(5f, 10f); tier.AddSegment(15f, 20f); tier.AddSegment(25f, 30f); var annotationFile = new Mock <AnnotationComponentFile>(); annotationFile.Setup(a => a.Tiers).Returns(new TierCollection { tier }); _componentFile = new Mock <ComponentFile>(); _componentFile.Setup(f => f.PathToAnnotatedFile).Returns(_tempAudioFile); _componentFile.Setup(f => f.GetAnnotationFile()).Returns(annotationFile.Object); _model = OralAnnotationRecorderDlgViewModel.Create(_componentFile.Object, AudioRecordingType.Careful); }
/// ------------------------------------------------------------------------------------ private void CreateModelAndAnnotationFileForType(AudioRecordingType modelType, AudioRecordingType fileType, float start, float end) { if (Directory.Exists(_model.OralAnnotationsFolder)) { Directory.Delete(_model.OralAnnotationsFolder, true); } _model.Dispose(); _model = OralAnnotationRecorderDlgViewModel.Create(_componentFile.Object, modelType); Directory.CreateDirectory(_model.OralAnnotationsFolder); if (fileType == AudioRecordingType.Careful) { WriteWavFile(Path.Combine(_model.OralAnnotationsFolder, TimeTier.ComputeFileNameForCarefulSpeechSegment(start, end))); } else { WriteWavFile(Path.Combine(_model.OralAnnotationsFolder, TimeTier.ComputeFileNameForOralTranslationSegment(start, end))); } }