Beispiel #1
0
        async void LoadScale(IScaleLoader loader, string filePath)
        {
            PauseAudio();

            MainView.Progress = 0.0;
            Lock = true;
            MainView.MessageText = LangResources.ProgressMessage_LoadScale;

            await Task.Run(() =>
            {
                try
                {
                    var loadedScale = loader.Load(filePath, AnalyzedAudio.AnalyzedAudio.FramePeriod, AnalyzedAudio.AnalyzedAudio.FrameLength);

                    Dispatcher.Invoke(() =>
                    {
                        MainView.Progress = 100.0;
                        ApplyScale(loadedScale);
                        Lock = false;
                    });
                }
                catch (Exception e)
                {
                    MessageBox.ShowWarning(LangResources.Error_RaiseLoadScaleError + e.Message, exception: e);

                    Dispatcher.Invoke(() =>
                    {
                        Lock = false;
                    });
                }
            });
        }
Beispiel #2
0
        public void ExecLoadScale(IScaleLoader loader)
        {
            var fileTypes = loader.SupportedFileExtensions.Select((s) => "*." + LoaderExtentionRegex.Replace(s, "")).ToArray();
            var open      = new OpenFileDialog();

            open.Filter = $"Supported File({string.Join(",", fileTypes)})|{string.Join(";", fileTypes)}";
            if (open.ShowDialog() ?? false)
            {
                LoadScale(loader, open.FileName);
            }
        }