#pragma once #include #include #include "cfg/option.h" namespace launcher { // options list - order matters namespace Options { enum { GameExecutable, OpenConfigurator, OpenKFControl, EAmusementEmulation, ServiceURL, PCBID, Player1Card, Player2Card, WindowedMode, InjectHook, ExecuteScript, CaptureCursor, ShowCursor, DisplayAdapter, GraphicsForceRefresh, GraphicsForceSingleAdapter, Graphics9On12, spice2x_Dx9On12, NoLegacy, RichPresence, SmartEAmusement, EAmusementMaintenance, spice2x_EAmusementMaintenance, AdapterNetwork, AdapterSubnet, DisableNetworkFixes, HTTP11, DisableSSL, URLSlash, SOFTID, VREnable, DisableOverlay, spice2x_FpsAutoShow, spice2x_SubScreenAutoShow, spice2x_IOPanelAutoShow, spice2x_KeypadAutoShow, LoadIIDXModule, IIDXCameraOrderFlip, IIDXDisableCameras, IIDXTDJCamera, IIDXTDJCameraRatio, IIDXTDJCameraOverride, IIDXSoundOutputDevice, IIDXAsioDriver, IIDXBIO2FW, IIDXTDJMode, spice2x_IIDXDigitalTTSensitivity, spice2x_IIDXLDJForce720p, spice2x_IIDXTDJSubSize, spice2x_IIDXLEDFontSize, spice2x_IIDXLEDColor, spice2x_IIDXLEDPos, LoadSoundVoltexModule, SDVXForce720p, SDVXPrinterEmulation, SDVXPrinterOutputPath, SDVXPrinterOutputClear, SDVXPrinterOutputOverwrite, SDVXPrinterOutputFormat, SDVXPrinterJPGQuality, SDVXDisableCameras, SDVXNativeTouch, spice2x_SDVXDigitalKnobSensitivity, spice2x_SDVXAsioDriver, spice2x_SDVXSubPos, spice2x_SDVXSubRedraw, LoadDDRModule, DDR43Mode, LoadPopnMusicModule, PopnMusicForceHDMode, PopnMusicForceSDMode, LoadHelloPopnMusicModule, LoadGitaDoraModule, GitaDoraTwoChannelAudio, GitaDoraCabinetType, LoadJubeatModule, LoadReflecBeatModule, LoadShogikaiModule, LoadBeatstreamModule, LoadNostalgiaModule, LoadDanceEvolutionModule, LoadFutureTomTomModule, LoadBBCModule, LoadMetalGearArcadeModule, LoadQuizMagicAcademyModule, LoadRoadFighters3DModule, LoadSteelChronicleModule, LoadMahjongFightClubModule, LoadScottoModule, LoadDanceRushModule, LoadWinningElevenModule, LoadOtocaModule, LoadLovePlusModule, LoadChargeMachineModule, LoadOngakuParadiseModule, LoadBusouShinkiModule, LoadCCJModule, LoadQKSModule, LoadMusecaModule, PathToModules, ScreenshotFolder, ConfigurationPath, ScreenResizeConfigPath, IntelSDEFolder, PathToEa3Config, PathToAppConfig, PathToAvsConfig, PathToBootstrap, PathToLog, APITCPPort, APIPassword, APIVerboseLogging, APISerialPort, APISerialBaud, APIPretty, APIDebugMode, EnableAllIOModules, EnableACIOModule, EnableICCAModule, EnableDEVICEModule, EnableEXTDEVModule, EnableSCIUNITModule, EnableDevicePassthrough, ForceWinTouch, ForceTouchEmulation, InvertTouchCoordinates, DisableTouchCardInsert, spice2x_TouchCardInsert, ICCAReaderPort, ICCAReaderPortToggle, CardIOHIDReaderSupport, CardIOHIDReaderOrderFlip, CardIOHIDReaderOrderToggle, HIDSmartCard, HIDSmartCardOrderFlip, HIDSmartCardOrderToggle, SextetStreamPort, EnableBemaniTools5API, RealtimeProcessPriority, spice2x_ProcessPriority, spice2x_ProcessAffinity, spice2x_ProcessorEfficiencyClass, HeapSize, DisableGSyncDetection, spice2x_NvapiProfile, DisableAudioHooks, spice2x_DisableVolumeHook, AudioBackend, AsioDriverId, AudioDummy, DelayBy5Seconds, spice2x_DelayByNSeconds, LoadStubs, AdjustOrientation, spice2x_AutoOrientation, LogLevel, EAAutomap, EANetdump, DiscordAppID, BlockingLogger, DebugCreateFile, VerboseGraphicsLogging, VerboseAVSLogging, DisableColoredOutput, DisableACPHook, DisableSignalHandling, DisableDebugHooks, DisableAvsVfsDriveMountRedirection, OutputPEB, QKSArgs, CCJArgs, CCJMouseTrackball, CCJMouseTrackballWithToggle, CCJTrackballSensitivity, spice2x_LightsOverallBrightness, spice2x_WindowBorder, spice2x_WindowSize, spice2x_WindowPosition, spice2x_WindowAlwaysOnTop, spice2x_IIDXWindowedSubscreenSize, spice2x_IIDXWindowedSubscreenPosition, spice2x_JubeatLegacyTouch, spice2x_RBTouchScale, spice2x_AsioForceUnload, spice2x_IIDXNoESpec, spice2x_IIDXWindowedTDJ, spice2x_DRSDisableTouch, spice2x_DRSTransposeTouch, spice2x_IIDXNativeTouch, spice2x_IIDXNoSub, spice2x_IIDXEmulateSubscreenKeypadTouch, spice2x_AutoCard, spice2x_LowLatencySharedAudio, spice2x_TapeLedAlgorithm, spice2x_NoNVAPI, spice2x_NoD3D9DeviceHook, spice2x_SDVXNoSub, spice2x_EnableSMXStage, }; enum class OptionsCategory { Everything, Basic, Advanced, Dev, API }; } const std::vector &get_categories(Options::OptionsCategory category); const std::vector &get_option_definitions(); std::unique_ptr> parse_options(int argc, char *argv[]); std::vector