Esempio n. 1
0
        private void PreprocessCommandLine()
        {
            Log.Info("Enter PreprocessCommandLine()");
            //check if it need finish updating.
            if (CommandLine.ContainSwitchOption("update"))
            {
                ProgramUpdater.ApplyUpdate();
            }

            if (CommandLine.ContainSwitchOption("update_plugin"))
            {
                PluginUpdaterManager.ApplyPluginUpdate();
            }

            if (CommandLine.ContainSwitchOption("database_backup"))
            {
                if (CommandLine.TryGetOptionValue("to", out string to))
                {
                    LocalDBContext.BackupDatabase(to);
                    Environment.Exit(0);
                }
            }

            if (CommandLine.ContainSwitchOption("database_restore"))
            {
                if (CommandLine.TryGetOptionValue("to", out string to) && CommandLine.TryGetOptionValue("from", out string from))
                {
                    LocalDBContext.RestoreDatabase(from, to);
                    Environment.Exit(0);
                }
            }
        }
Esempio n. 2
0
        private void PreprocessCommandLine()
        {
            Log.Info("Enter PreprocessCommandLine()");
            //check if it need finish updating.
            if (CommandLine.ContainSwitchOption("update"))
            {
                ProgramUpdater.ApplyUpdate();
            }

            if (CommandLine.ContainSwitchOption("update_plugin"))
            {
                PluginUpdaterManager.ApplyPluginUpdate();
            }
        }
Esempio n. 3
0
        private static Parameters ParseProgramCommands(string[] argv, out string beatmap_folder)
        {
            beatmap_folder = @"94790 Hatsuki Yura - Fuuga";

            var sb   = new ArgParser(new ParamParserV2('-', '\"'));
            var args = sb.Parse(argv);

            if (args != null)
            {
                if (args.Switches.Any(k => k == "help"))
                {
                    Console.WriteLine("please visit here: https://github.com/MikiraSora/OsuStoryboardPlayer/wiki/Program-command-options");
                    Exit("");
                }

                if (args.TryGetArg("program_update", out var update_dest_path))
                {
                    int id = 0;
                    var x  = int.TryParse(args.FreeArgs.FirstOrDefault(), out id);

                    ProgramUpdater.ApplyUpdate(x ? id : 0, update_dest_path);
                }

                if (args.FreeArgs != null)
                {
                    beatmap_folder = args.FreeArgs.FirstOrDefault() ?? beatmap_folder;
                }

                if (args.TryGetArg(out var valW, "width", "w"))
                {
                    PlayerSetting.FrameWidth = PlayerSetting.Width = int.Parse(valW);
                }

                if (args.TryGetArg(out var vol, "volume"))
                {
                    PlayerSetting.Volume = float.Parse(vol);
                }

                if (args.TryGetArg(out var ls, "loop_start_time"))
                {
                    PlayerSetting._LoopPlayStartTime = uint.Parse(ls);
                }

                if (args.Switches.Any(x => x == "loop"))
                {
                    PlayerSetting._LoopPlayStartTime = 0;
                }

                if (args.TryGetArg(out var le, "loop_end_time"))
                {
                    PlayerSetting._LoopPlayEndTime = uint.Parse(le);
                }

                if (args.TryGetArg(out var valH, "height", "h"))
                {
                    PlayerSetting.FrameHeight = PlayerSetting.Height = int.Parse(valH);
                }

                if (args.TryGetArg(out var valFW, "frame_width", "fw"))
                {
                    PlayerSetting.FrameWidth = int.Parse(valFW);
                }

                if (args.TryGetArg(out var valFH, "frame_height", "fh"))
                {
                    PlayerSetting.FrameHeight = int.Parse(valFH);
                }

                if (args.TryGetArg(out var draw_count, "multi_instance_render", "mtr"))
                {
                    PlayerSetting.DrawCallInstanceCountMax = int.Parse(draw_count);
                }

                if (args.TryGetArg(out var folder, "folder", "f"))
                {
                    beatmap_folder = folder;
                }

                if (args.TryGetArg(out var p_update_limit, "parallel_update_limit", "pu"))
                {
                    PlayerSetting.ParallelUpdateObjectsLimitCount = p_update_limit.ToInt();
                }

                if (args.TryGetArg(out var p_parse_limit, "parallel_parse_limit", "pp"))
                {
                    PlayerSetting.ParallelParseCommandLimitCount = p_parse_limit.ToInt();
                }

                if (args.TryGetArg(out var update_thread_count, "update_thread_count", "ut"))
                {
                    PlayerSetting.UpdateThreadCount = update_thread_count.ToInt();
                }

                if (args.TryGetArg(out var max_fps, "fps"))
                {
                    PlayerSetting.MaxFPS = max_fps.ToInt();
                }

                if (args.TryGetArg(out var ssaa, "ssaa"))
                {
                    PlayerSetting.SsaaLevel = ssaa.ToInt();
                }

                if (args.Switches.Any(k => k == "enable_timestamp"))
                {
                    PlayerSetting.EnableTimestamp = true;
                }

                if (args.Switches.Any(k => k == "full_screen"))
                {
                    PlayerSetting.EnableFullScreen = true;
                }

                if (args.Switches.Any(k => k == "borderless"))
                {
                    PlayerSetting.EnableBorderless = true;
                }

                if (args.Switches.Any(k => k == "enable_loop_unrolling" || k == "enable_loop_unwinding"))
                {
                    PlayerSetting.EnableLoopCommandUnrolling = true;
                }

                if (args.Switches.Any(k => k == "mini"))
                {
                    PlayerSetting.MiniMode = true;
                }

                if (args.Switches.Any(k => k == "enable_split"))
                {
                    PlayerSetting.EnableSplitMoveScaleCommand = true;
                }

                if (args.Switches.Any(k => k == "fun_reverse_easing"))
                {
                    PlayerSetting.FunReverseEasing = true;
                }

                if (args.TryGetArg(out var ol, "optimzer_level", "o"))
                {
                    PlayerSetting.StoryboardObjectOptimzeLevel = ol.ToInt();
                }

                if (args.TryGetSwitch("disable_update_check"))
                {
                    PlayerSetting.EnableUpdateCheck = false;
                }

                if (args.Switches.Any(k => k == "disable_hp_fps_limit"))
                {
                    PlayerSetting.EnableHighPrecisionFPSLimit = false;
                }

                if (args.Switches.Any(k => k == "debug"))
                {
                    PlayerSetting.DebugMode = true;
                }

                if (args.Switches.Any(k => k == "cli"))
                {
                    ToolManager.GetOrCreateTool <CLIControllerDebugger>();
                }

                //额外功能 - 提取解析好变量的文本
                if (args.TryGetArg(out var parse_type, "parse"))
                {
                    var parse_osb = parse_type == "osb";
                    args.TryGetArg(out var output_path, "parse_output");
                    SerializeDecodeStoryboardContent(beatmap_folder, parse_osb, output_path);
                }

                //额外功能 - 输出优化提示
                if (args.TryGetSwitch("show_profile_suggest"))
                {
                    PlayerSetting.ShowProfileSuggest = true;
                }

                if (args.Switches.Any(k => k == "encode"))
                {
                    PlayerSetting.EncodingEnvironment = true;
                }
            }

            return(args);
        }