Beispiel #1
0
        //import a midi file
        public void ImportMidi()
        {
            if (AlertIfUnsavedChanges())
            {
                NSUrl loadPath = null;
                using (var openDialog = new NSOpenPanel())
                {
                    openDialog.AllowedFileTypes = new string[] { "mid", "midi" };
                    var result = openDialog.RunModal();
                    if (result == 1)
                    {
                        loadPath = openDialog.Url;
                    }
                }
                if (loadPath != null)
                {
                    try
                    {
                        var midi = new Midi(loadPath.RelativePath);
                        if (midi.TrackCount > 1)
                        {
                            TrackChooserWindow trackChooser;
                            using (var temp = new TrackChooserWindowController())
                            {
                                trackChooser = temp.Window;
                                trackChooser.SetTrackList(midi.GetTrackNames());
                            }
                            NSApplication.SharedApplication.RunModalForWindow(trackChooser);

                            if (trackChooser.Track != -1)
                            {
                                song.ImportFromMidiTrack(midi, trackChooser.Track);
                                currentFile = null;
                                UpdateOutput(true);
                            }
                        }
                        else
                        {
                            song.ImportFromMidiTrack(midi, 0);
                            currentFile = null;
                            UpdateOutput(true);
                        }
                    }
                    catch (Exception ex)
                    {
                        Alert.CreateAlert(ex.Message, AlertType.Caution);
                    }
                }
            }
        }