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; }); } }); }
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); } }