public async Task TestLy() { var writerFactory = new SheetWriterFactory(); var writerExt = writerFactory.GetAllSupportedExtension(); var readerFactory = new SheetReaderFactory(); var readerExt = readerFactory.GetAllSupportedExtension(); var reader = readerFactory.GetReader("../../../DPA_Musicsheets/Files/Twee-emmertjes-water-halen.ly"); //reader.SetFilePath("../../../DPA_Musicsheets/Files/Alle-eendjes-zwemmen-in-het-water.ly"); reader.SetFilePath("../../../DPA_Musicsheets/Files/Twee-emmertjes-water-halen.ly"); var resultA = await reader.ReadFromFileAsync(); var resultB = await reader.ReadFromFileAsync(); var writerA = writerFactory.GetWriter("hallo.ly"); var strResultA = await writerA.WriteToString(resultA); var strResultB = await writerA.WriteToString(resultB); var nothing = string.Empty; }
private int _beatsPerBar; // Aantal beatnotes per maat. async public Task OpenFile(string fileName) { var sheetReaderFactory = new SheetReaderFactory(); var sheetWriterFactory = new SheetWriterFactory(); var sheetReader = sheetReaderFactory.GetReader(fileName); var converter = new SheetToWPFConverter(); var writer = sheetWriterFactory.GetWriter(".ly"); var sheet = await sheetReader.ReadFromFileAsync(); WPFStaffs.Clear(); WPFStaffs.AddRange(converter.ConvertSheet(sheet)); WPFStaffsChanged?.Invoke(this, new WPFStaffsEventArgs() { Symbols = WPFStaffs }); LilypondTextChanged?.Invoke(this, new LilypondEventArgs { LilypondText = await writer.WriteToString(sheet) }); MidiSequence = GetSequenceFromWPFStaffs(); MidiSequenceChanged?.Invoke(this, new MidiSequenceEventArgs() { MidiSequence = MidiSequence }); }
public void SetMusicSheet(Sheet sheet) { _musicSheet = sheet; var factory = new SheetWriterFactory(); var writer = factory.GetWriter(".ly"); try { _text = writer.WriteToString(_musicSheet).Result; } catch (Exception) { } }
public async Task WriteToFile(Sheet sheet) { var factory = new SheetWriterFactory(); string directory = Directory.GetCurrentDirectory(); string date = DateTime.Now.ToString(); string tempFileName = $"{directory}\temp -{date}.ly"; string lilypondLocation = @"C:\Program Files (x86)\LilyPond\usr\bin\lilypond.exe"; if (!File.Exists(lilypondLocation)) { throw new Exception("Lilypond.exe not found, conversion not possible"); } var writer = factory.GetWriter(tempFileName); if (writer != null) { await writer.WriteToFile(sheet); string sourceFolder = Path.GetDirectoryName(tempFileName); string sourceFileName = Path.GetFileNameWithoutExtension(tempFileName); string targetFolder = Path.GetDirectoryName(filePath); string targetFileName = Path.GetFileNameWithoutExtension(filePath); var process = new Process { StartInfo = { WorkingDirectory = directory, WindowStyle = ProcessWindowStyle.Hidden, Arguments = string.Format("--pdf \"{0}\\{1}.ly\"", sourceFolder, sourceFileName), FileName = lilypondLocation } }; process.Start(); while (!process.HasExited) { /* Wait for exit */ } if (sourceFolder != targetFolder || sourceFileName != targetFileName) { File.Move(sourceFolder + "\\" + sourceFileName + ".pdf", targetFolder + "\\" + targetFileName + ".pdf"); File.Delete(tempFileName); } } }
public void Invoke <T>(CareTaker <T> careTaker) { if (careTaker is EditorCareTaker ect) { var fact = new SheetWriterFactory(); fact.AddAssembly(Assembly.GetAssembly(typeof(SaveToPdfCommand))); var extensions = fact.GetAllSupportedExtension().Where(x => x.ext.Contains("pdf")).Select(x => { var e = $"*{x.ext}"; if (x.ext.StartsWith("(", StringComparison.InvariantCultureIgnoreCase)) { e = x.ext.Replace("(", "").Replace(")", "").Replace("|", ";").Replace(".", "*."); } return($"{x.name}|{e}"); }); var fileService = ServiceLocator.Current.GetInstance <IFileService>(); var path = fileService.RequestWritePath(string.Join("|", extensions.ToArray())); if (!string.IsNullOrWhiteSpace(path)) { var writer = fact.GetWriter(path); try { writer.WriteToFile(ect.Current.MusicSheet); } catch (Exception ex) { Messenger.Default.Send(new ErrorMessage() { Exception = ex }); } } } }
public LilypondViewModel(FileHandler fileHandler, IFileService fileService, IMessageService messageService) { _fileHandler = fileHandler; writerFactory = new SheetWriterFactory(); _fileHandler.LilypondTextChanged += (src, e) => { _textChangedByLoad = true; LilypondText = e.LilypondText; _textChangedByLoad = false; CreateCareTaker(); }; _text = "Your lilypond text will appear here."; CreateCareTaker(); this.fileService = fileService; this.messageService = messageService; }