예제 #1
0
 private void DoDeleteProject(DE_VTT_Project obj)
 {
     parentControl.Dispatcher.Invoke(() =>
     {
         Projects.Remove(obj);
         SaveProjectsFile();
         DoLoadProject(null);
         RaisePropertyChanged("Projects");
     });
 }
예제 #2
0
        private async Task LoadProject(DE_VTT_Project value)
        {
            try
            {
                LockUserInterface = true;
                //await Task.Delay(10).ConfigureAwait(false);
                SelectedProject = value;

                AudioFilePath = value.OriginalFilePath;

                if (SelectedProject.Snippets.Count == 0)
                {
                    parentControl.Dispatcher.Invoke(() =>
                    {
                        ShowImportSection = true;
                        SendNotificationUpdate("This project has no snippets saved yet. Please use the import section to import & transcribe some raw audio");
                        LockUserInterface = false;
                    });
                }
                else
                {
                    Scale          = SelectedProject.Snippets[0].Scale;
                    Gain           = SelectedProject.Snippets[0].Gain;
                    CurrentAudioVM = new AudoInfoViewModel
                    {
                        WaveFormat = SelectedProject.Snippets[0].AudioVM.WaveFormat,
                        Duration   = SelectedProject.Snippets[0].Duration
                    };
                    if (SelectedProject.OriginalFilePath != null)
                    {
                        CurrentAudioVM.FileName = Path.GetFileName(SelectedProject.OriginalFilePath);
                    }

                    ShowImportSection = false;
                    LockUserInterface = false;
                    //parentControl.Dispatcher.Invoke(() =>
                    // {
                    //    //snippet.GetSampleFrequencyAddPoints();
                    //  //  await Task.Delay(200).ConfigureAwait(false);
                    ////     Messenger.Default.Send("Scale", "TrackSnippetViewModel");
                    // });
                }
            }
            catch (Exception exc)
            {
                Debug.WriteLine($"{exc}");
            }
            finally
            {
                LockUserInterface = false;
            }
        }
예제 #3
0
        public ProjectViewModel(FrameworkElement ParentControl, DE_VTT_Project project, bool showImportSection)
        {
            parentControl = ParentControl;

            TranscribeEndpointsVM = new TranscribeEndpointsViewModel(SettingsVM);
            VoiceEndpointsVM      = new VoiceEndpointsViewModel(SettingsVM);

            Messenger.Default.Register <string>(this, DoProcessMessage);

            SelectedProject = project;

            LoadFilesFromSelectedFolder();

            scaleChangedTimer      = new Timer(ScaleTick, this, Timeout.Infinite, Timeout.Infinite);
            this.showImportSection = showImportSection;
        }
예제 #4
0
        private void DoLoadProject(DE_VTT_Project project)
        {
            parentControl.Dispatcher.Invoke(() =>
            {
                ProjectControl?.Dispose();

                if (project == null)
                {
                    ProjectControl      = null;
                    SelectedProjectName = null;
                }
                else
                {
                    var ctrl            = new ProjectControl(project);
                    ProjectControl      = ctrl;
                    SelectedProjectName = project.Name;
                }
            });
        }
예제 #5
0
        private void DoNewProject(DE_VTT_Project obj)
        {
            var proj = new DE_VTT_Project();

            // Instantiate the dialog box
            ProjectEditWindow dlg = new ProjectEditWindow {
                DataContext = proj
            };

            // Configure the dialog box
            dlg.Owner = (Window)parentControl;

            // Open the dialog box modally
            var rslt = dlg.ShowDialog();

            if (rslt == true)
            {
                Projects.Add(proj);
                RaisePropertyChanged("Projects");
                DoLoadProject(proj);
                SaveProjectsFile();
            }
        }