Exemple #1
0
        static void Main(string[] args)
        {
            if (args.Length < 2)
            {
                Console.WriteLine("MSBTool - Import and export FFXIV Perform note sheets\n\nUsage:\nEXPORT TO MIDI: MSBTool.exe export [PATH TO MSB FILE]\nCREATE MSB: MSBTool.exe create [PATH TO MIDI]\nIMPORT TO GAME: MSBTool.exe import [PATH TO MIDI] [PATH TO GAME INSTALL] [SLOT NUMBER IN-GAME]");
                return;
            }

            switch (args[0])
            {
            case "export":
                MsbOperations.ExportMsb(args[1], Path.GetFileNameWithoutExtension(args[1]) + ".mid");
                break;

            case "create":
            {
                var data = MsbOperations.CreateMsbFromMidi(args[1]);

                File.WriteAllBytes(Path.GetFileNameWithoutExtension(args[1]) + ".msb", data);
            }
            break;

            case "import":
                MsbOperations.ImportMsb(args[1], args[3], int.Parse(args[2]));
                break;
            }
        }
Exemple #2
0
        private void midiButton_Click(object sender, RoutedEventArgs e)
        {
            int id = int.Parse((sender as System.Windows.Controls.Button).Uid);
            CommonOpenFileDialog browser = new CommonOpenFileDialog();

            browser.Title = "Select Midi";
            browser.Filters.Add(new CommonFileDialogFilter("Midi", ".mid"));
            if (browser.ShowDialog() == CommonFileDialogResult.Ok)
            {
                try
                {
                    MsbOperations.ImportMsb(browser.FileName, FFXIVPath, id);
                }
                catch (IOException)
                {
                    MessageBox.Show("Could not access game data. Please close FFXIV and run FFXIVConductor as admin", "Error", MessageBoxButton.OK,
                                    MessageBoxImage.Error);
                    return;
                }
                catch (Exception ex)
                {
                    MessageBox.Show("An error occured. Please report this error.\n\n" + ex, "Error", MessageBoxButton.OK,
                                    MessageBoxImage.Error);
                    return;
                }

                MessageBox.Show($"Import to slot {id:D3} successful.", "OK!", MessageBoxButton.OK,
                                MessageBoxImage.Asterisk);
            }
        }
Exemple #3
0
        private void MidiExportButton_OnClick(object sender, RoutedEventArgs e)
        {
            Directory.CreateDirectory("exports");

            for (var i = 1; i < 4; i++)
            {
                MsbOperations.ExportMsb(i, FFXIVPath, Path.Combine("exports", $"score_{i:D3}.mid"));
            }

            MessageBox.Show("Export successful. See the /exports folder.", "OK!", MessageBoxButton.OK,
                            MessageBoxImage.Asterisk);
        }