コード例 #1
0
        /// <summary>
        /// Opens a file.
        /// TODO: Remove the switch cases and delegate.
        /// TODO: Remove the knowledge of filetypes. What if we want to support MusicXML later?
        /// TODO: Remove the calling of the outer viewmodel layer. We want to be able reuse this in an ASP.NET Core application for example.
        /// </summary>
        /// <param name="fileName"></param>
        public void OpenFile(string fileName)
        {
            var mem = new LilyPondFileHandler(new LilyPondInterpreter(new LilyPondNoteFactory()));
            var pol = mem.loadFile(fileName);
            //if (Path.GetExtension(fileName).EndsWith(".mid"))
            //{
            //    MidiSequence = new Sequence();
            //    MidiSequence.Load(fileName);

            //    MidiPlayerViewModel.MidiSequence = MidiSequence;
            //    this.LilypondText = LoadMidiIntoLilypond(MidiSequence);
            //    this.LilypondViewModel.LilypondTextLoaded(this.LilypondText);
            //}
            //else if (Path.GetExtension(fileName).EndsWith(".ly"))
            //{
            //    StringBuilder sb = new StringBuilder();
            //    foreach (var line in File.ReadAllLines(fileName))
            //    {
            //        sb.AppendLine(line);
            //    }

            //    this.LilypondText = sb.ToString();
            //    this.LilypondViewModel.LilypondTextLoaded(this.LilypondText);
            //}
            //else
            //{
            //    throw new NotSupportedException($"File extension {Path.GetExtension(fileName)} is not supported.");
            //}

            //LoadLilypondIntoWpfStaffsAndMidi(LilypondText);
        }
コード例 #2
0
        public FileHandleFacade()
        {
            var lilyPondFileHandler = new LilyPondFileHandler(new LilyPondInterpreter(new LilyPondNoteFactory()));
            var midiFileHandler     = new MidiFileHandler(new MidiInterpreter());
            var pdfFileHandler      = new PdfFileHandler();

            handlers = new List <GenericHandler>
            {
                lilyPondFileHandler,
                midiFileHandler,
                pdfFileHandler
            };
            OwnEventmanager.Manager.Subscribe("reRender", RegenerateBasedOnEditor);
        }