示例#1
0
        private void ExportFamiTone2Sfx(bool famiStudio)
        {
            var props           = dialog.GetPropertyPage(famiStudio ? (int)ExportFormat.FamiStudioSfx : (int)ExportFormat.FamiTone2Sfx);
            var exportFormat    = AssemblyFormat.GetValueForName(props.GetPropertyValue <string>(0));
            var ext             = exportFormat == AssemblyFormat.CA65 ? "s" : "asm";
            var mode            = MachineType.GetValueForName(props.GetPropertyValue <string>(1));
            var engineName      = famiStudio ? "FamiStudio" : "FamiTone2";
            var generateInclude = props.GetPropertyValue <bool>(2);
            var songIds         = GetSongIds(props.GetPropertyValue <bool[]>(3));

            var filename = lastExportFilename != null ? lastExportFilename : PlatformUtils.ShowSaveFileDialog($"Export {engineName} Code", $"{engineName} Assembly File (*.{ext})|*.{ext}", ref Settings.LastExportFolder);

            if (filename != null)
            {
                var includeFilename = generateInclude ? Path.ChangeExtension(filename, null) + "_sfxlist.inc" : null;

                FamitoneSoundEffectFile f = new FamitoneSoundEffectFile();
                f.Save(project, songIds, exportFormat, mode, famiStudio ? FamiToneKernel.FamiStudio : FamiToneKernel.FamiTone2, filename, includeFilename);
                lastExportFilename = filename;
            }
        }
示例#2
0
        private void ExportNsf()
        {
            Action <string> ExportNsfAction = (filename) =>
            {
                if (filename != null)
                {
                    var props = dialog.GetPropertyPage((int)ExportFormat.Nsf);
                    var mode  = MachineType.GetValueForName(props.GetPropertyValue <string>(3));
#if DEBUG
                    var kernel = FamiToneKernel.GetValueForName(props.GetPropertyValue <string>(5));
#else
                    var kernel = FamiToneKernel.FamiStudio;
#endif

                    new NsfFile().Save(project, kernel, filename,
                                       GetSongIds(props.GetPropertyValue <bool[]>(4)),
                                       props.GetPropertyValue <string>(0),
                                       props.GetPropertyValue <string>(1),
                                       props.GetPropertyValue <string>(2),
                                       mode);

                    lastExportFilename = filename;
                }
            };

            if (PlatformUtils.IsMobile)
            {
                PlatformUtils.StartMobileSaveFileOperationAsync("*/*", $"{project.Name}.nsf", (f) =>
                {
                    ExportNsfAction(f);
                    PlatformUtils.FinishMobileSaveFileOperationAsync(true, () => { PlatformUtils.ShowToast("NSF Export Successful!"); });
                });
            }
            else
            {
                var filename = lastExportFilename != null ? lastExportFilename : PlatformUtils.ShowSaveFileDialog("Export NSF File", "Nintendo Sound Files (*.nsf)|*.nsf", ref Settings.LastExportFolder);
                ExportNsfAction(filename);
            }
        }
示例#3
0
        private void ExportNsf()
        {
            var filename = lastExportFilename != null ? lastExportFilename : PlatformUtils.ShowSaveFileDialog("Export NSF File", "Nintendo Sound Files (*.nsf)|*.nsf", ref Settings.LastExportFolder);

            if (filename != null)
            {
                var props = dialog.GetPropertyPage((int)ExportFormat.Nsf);
                var mode  = MachineType.GetValueForName(props.GetPropertyValue <string>(3));
#if DEBUG
                var kernel = FamiToneKernel.GetValueForName(props.GetPropertyValue <string>(5));
#else
                var kernel = FamiToneKernel.FamiStudio;
#endif

                new NsfFile().Save(project, kernel, filename,
                                   GetSongIds(props.GetPropertyValue <bool[]>(4)),
                                   props.GetPropertyValue <string>(0),
                                   props.GetPropertyValue <string>(1),
                                   props.GetPropertyValue <string>(2),
                                   mode);

                lastExportFilename = filename;
            }
        }