diff options
author | 2021-03-22 23:20:13 +1100 | |
---|---|---|
committer | 2021-03-22 23:20:13 +1100 | |
commit | e7369aa73410d13897d5710911372a8ea6a1fd68 (patch) | |
tree | 9dc95c75dda143261b2b1a37605937a09142a913 /src/frontend/mame/ui/submenu.cpp | |
parent | 8abba577ea3be471c4ec5b0a00af373528658810 (diff) |
-ui: Added option to mute when unthrottled to advanced options menu.
* Also refactored slightly to avoid some initialisations before main.
Diffstat (limited to 'src/frontend/mame/ui/submenu.cpp')
-rw-r--r-- | src/frontend/mame/ui/submenu.cpp | 206 |
1 files changed, 109 insertions, 97 deletions
diff --git a/src/frontend/mame/ui/submenu.cpp b/src/frontend/mame/ui/submenu.cpp index 6d034841b51..d93b7a8af6a 100644 --- a/src/frontend/mame/ui/submenu.cpp +++ b/src/frontend/mame/ui/submenu.cpp @@ -24,104 +24,116 @@ namespace ui { -std::vector<submenu::option> const submenu::misc_options = { - { submenu::option_type::HEAD, __("Miscellaneous Options") }, - { submenu::option_type::UI, __("Skip imperfect emulation warnings"), OPTION_SKIP_WARNINGS }, - { submenu::option_type::UI, __("Re-select last machine launched"), OPTION_REMEMBER_LAST }, - { submenu::option_type::UI, __("Enlarge images in the right panel"), OPTION_ENLARGE_SNAPS }, - { submenu::option_type::EMU, __("Cheats"), OPTION_CHEAT }, - { submenu::option_type::EMU, __("Show mouse pointer"), OPTION_UI_MOUSE }, - { submenu::option_type::EMU, __("Confirm quit from machines"), OPTION_CONFIRM_QUIT }, - { submenu::option_type::EMU, __("Skip information screen at startup"), OPTION_SKIP_GAMEINFO }, - { submenu::option_type::UI, __("Force 4:3 aspect for snapshot display"), OPTION_FORCED4X3 }, - { submenu::option_type::UI, __("Use image as background"), OPTION_USE_BACKGROUND }, - { submenu::option_type::UI, __("Skip BIOS selection menu"), OPTION_SKIP_BIOS_MENU }, - { submenu::option_type::UI, __("Skip software parts selection menu"), OPTION_SKIP_PARTS_MENU }, - { submenu::option_type::UI, __("Info auto audit"), OPTION_INFO_AUTO_AUDIT }, - { submenu::option_type::UI, __("Hide romless machine from available list"),OPTION_HIDE_ROMLESS }, -}; - -std::vector<submenu::option> const submenu::advanced_options = { - { submenu::option_type::HEAD, __("Advanced Options") }, - { submenu::option_type::HEAD, __("Performance Options") }, - { submenu::option_type::EMU, __("Auto frame skip"), OPTION_AUTOFRAMESKIP }, - { submenu::option_type::EMU, __("Frame skip"), OPTION_FRAMESKIP }, - { submenu::option_type::EMU, __("Throttle"), OPTION_THROTTLE }, - { submenu::option_type::EMU, __("Sleep"), OPTION_SLEEP }, - { submenu::option_type::EMU, __("Speed"), OPTION_SPEED }, - { submenu::option_type::EMU, __("Refresh speed"), OPTION_REFRESHSPEED }, - { submenu::option_type::EMU, __("Low latency"), OPTION_LOWLATENCY }, - - { submenu::option_type::HEAD, __("Rotation Options") }, - { submenu::option_type::EMU, __("Rotate"), OPTION_ROTATE }, - { submenu::option_type::EMU, __("Rotate right"), OPTION_ROR }, - { submenu::option_type::EMU, __("Rotate left"), OPTION_ROL }, - { submenu::option_type::EMU, __("Auto rotate right"), OPTION_AUTOROR }, - { submenu::option_type::EMU, __("Auto rotate left"), OPTION_AUTOROL }, - { submenu::option_type::EMU, __("Flip X"), OPTION_FLIPX }, - { submenu::option_type::EMU, __("Flip Y"), OPTION_FLIPY }, - - { submenu::option_type::HEAD, __("Artwork Options") }, - { submenu::option_type::EMU, __("Artwork Crop"), OPTION_ARTWORK_CROP }, - - { submenu::option_type::HEAD, __("State/Playback Options") }, - { submenu::option_type::EMU, __("Automatic save/restore"), OPTION_AUTOSAVE }, - { submenu::option_type::EMU, __("Rewind"), OPTION_REWIND }, - { submenu::option_type::EMU, __("Rewind capacity"), OPTION_REWIND_CAPACITY }, - { submenu::option_type::EMU, __("Bilinear snapshot"), OPTION_SNAPBILINEAR }, - { submenu::option_type::EMU, __("Burn-in"), OPTION_BURNIN }, - - { submenu::option_type::HEAD, __("Input Options") }, - { submenu::option_type::EMU, __("Coin lockout"), OPTION_COIN_LOCKOUT }, - { submenu::option_type::EMU, __("Mouse"), OPTION_MOUSE }, - { submenu::option_type::EMU, __("Joystick"), OPTION_JOYSTICK }, - { submenu::option_type::EMU, __("Lightgun"), OPTION_LIGHTGUN }, - { submenu::option_type::EMU, __("Multi-keyboard"), OPTION_MULTIKEYBOARD }, - { submenu::option_type::EMU, __("Multi-mouse"), OPTION_MULTIMOUSE }, - { submenu::option_type::EMU, __("Steadykey"), OPTION_STEADYKEY }, - { submenu::option_type::EMU, __("UI active"), OPTION_UI_ACTIVE }, - { submenu::option_type::EMU, __("Offscreen reload"), OPTION_OFFSCREEN_RELOAD }, - { submenu::option_type::EMU, __("Joystick deadzone"), OPTION_JOYSTICK_DEADZONE }, - { submenu::option_type::EMU, __("Joystick saturation"), OPTION_JOYSTICK_SATURATION }, - { submenu::option_type::EMU, __("Natural keyboard"), OPTION_NATURAL_KEYBOARD }, - { submenu::option_type::EMU, __("Simultaneous contradictory"), OPTION_JOYSTICK_CONTRADICTORY }, - { submenu::option_type::EMU, __("Coin impulse"), OPTION_COIN_IMPULSE }, -}; - -std::vector<submenu::option> const submenu::control_options = { - { submenu::option_type::HEAD, __("Device Mapping") }, - { submenu::option_type::EMU, __("Lightgun Device Assignment"), OPTION_LIGHTGUN_DEVICE }, - { submenu::option_type::EMU, __("Trackball Device Assignment"), OPTION_TRACKBALL_DEVICE }, - { submenu::option_type::EMU, __("Pedal Device Assignment"), OPTION_PEDAL_DEVICE }, - { submenu::option_type::EMU, __("Adstick Device Assignment"), OPTION_ADSTICK_DEVICE }, - { submenu::option_type::EMU, __("Paddle Device Assignment"), OPTION_PADDLE_DEVICE }, - { submenu::option_type::EMU, __("Dial Device Assignment"), OPTION_DIAL_DEVICE }, - { submenu::option_type::EMU, __("Positional Device Assignment"), OPTION_POSITIONAL_DEVICE }, - { submenu::option_type::EMU, __("Mouse Device Assignment"), OPTION_MOUSE_DEVICE } -}; - -std::vector<submenu::option> const submenu::video_options = { - { submenu::option_type::HEAD, __("Video Options") }, - { submenu::option_type::OSD, __("Video Mode"), OSDOPTION_VIDEO }, - { submenu::option_type::OSD, __("Number Of Screens"), OSDOPTION_NUMSCREENS }, + +std::vector<submenu::option> submenu::misc_options() +{ + return std::vector<option>{ + { option_type::HEAD, __("Miscellaneous Options") }, + { option_type::UI, __("Skip imperfect emulation warnings"), OPTION_SKIP_WARNINGS }, + { option_type::UI, __("Re-select last machine launched"), OPTION_REMEMBER_LAST }, + { option_type::UI, __("Enlarge images in the right panel"), OPTION_ENLARGE_SNAPS }, + { option_type::EMU, __("Cheats"), OPTION_CHEAT }, + { option_type::EMU, __("Show mouse pointer"), OPTION_UI_MOUSE }, + { option_type::EMU, __("Confirm quit from machines"), OPTION_CONFIRM_QUIT }, + { option_type::EMU, __("Skip information screen at startup"), OPTION_SKIP_GAMEINFO }, + { option_type::UI, __("Force 4:3 aspect for snapshot display"), OPTION_FORCED4X3 }, + { option_type::UI, __("Use image as background"), OPTION_USE_BACKGROUND }, + { option_type::UI, __("Skip BIOS selection menu"), OPTION_SKIP_BIOS_MENU }, + { option_type::UI, __("Skip software parts selection menu"), OPTION_SKIP_PARTS_MENU }, + { option_type::UI, __("Info auto audit"), OPTION_INFO_AUTO_AUDIT }, + { option_type::UI, __("Hide romless machine from available list"),OPTION_HIDE_ROMLESS } }; +} + +std::vector<submenu::option> submenu::advanced_options() +{ + return std::vector<option>{ + { option_type::HEAD, __("Advanced Options") }, + { option_type::HEAD, __("Performance Options") }, + { option_type::EMU, __("Auto frame skip"), OPTION_AUTOFRAMESKIP }, + { option_type::EMU, __("Frame skip"), OPTION_FRAMESKIP }, + { option_type::EMU, __("Throttle"), OPTION_THROTTLE }, + { option_type::UI, __("Mute when unthrottled"), OPTION_UNTHROTTLE_MUTE }, + { option_type::EMU, __("Sleep"), OPTION_SLEEP }, + { option_type::EMU, __("Speed"), OPTION_SPEED }, + { option_type::EMU, __("Adjust speed to match refresh rate"), OPTION_REFRESHSPEED }, + { option_type::EMU, __("Low latency"), OPTION_LOWLATENCY }, + + { option_type::HEAD, __("Rotation Options") }, + { option_type::EMU, __("Rotate"), OPTION_ROTATE }, + { option_type::EMU, __("Rotate right"), OPTION_ROR }, + { option_type::EMU, __("Rotate left"), OPTION_ROL }, + { option_type::EMU, __("Auto rotate right"), OPTION_AUTOROR }, + { option_type::EMU, __("Auto rotate left"), OPTION_AUTOROL }, + { option_type::EMU, __("Flip X"), OPTION_FLIPX }, + { option_type::EMU, __("Flip Y"), OPTION_FLIPY }, + + { option_type::HEAD, __("Artwork Options") }, + { option_type::EMU, __("Zoom to screen area"), OPTION_ARTWORK_CROP }, + + { option_type::HEAD, __("State/Playback Options") }, + { option_type::EMU, __("Automatic save/restore"), OPTION_AUTOSAVE }, + { option_type::EMU, __("Allow rewind"), OPTION_REWIND }, + { option_type::EMU, __("Rewind capacity"), OPTION_REWIND_CAPACITY }, + { option_type::EMU, __("Bilinear filtering for snapshots"), OPTION_SNAPBILINEAR }, + { option_type::EMU, __("Burn-in"), OPTION_BURNIN }, + + { option_type::HEAD, __("Input Options") }, + { option_type::EMU, __("Coin lockout"), OPTION_COIN_LOCKOUT }, + { option_type::EMU, __("Mouse"), OPTION_MOUSE }, + { option_type::EMU, __("Joystick"), OPTION_JOYSTICK }, + { option_type::EMU, __("Lightgun"), OPTION_LIGHTGUN }, + { option_type::EMU, __("Multi-keyboard"), OPTION_MULTIKEYBOARD }, + { option_type::EMU, __("Multi-mouse"), OPTION_MULTIMOUSE }, + { option_type::EMU, __("Steadykey"), OPTION_STEADYKEY }, + { option_type::EMU, __("UI active"), OPTION_UI_ACTIVE }, + { option_type::EMU, __("Offscreen reload"), OPTION_OFFSCREEN_RELOAD }, + { option_type::EMU, __("Joystick deadzone"), OPTION_JOYSTICK_DEADZONE }, + { option_type::EMU, __("Joystick saturation"), OPTION_JOYSTICK_SATURATION }, + { option_type::EMU, __("Natural keyboard"), OPTION_NATURAL_KEYBOARD }, + { option_type::EMU, __("Simultaneous contradictory"), OPTION_JOYSTICK_CONTRADICTORY }, + { option_type::EMU, __("Coin impulse"), OPTION_COIN_IMPULSE } }; +} + +std::vector<submenu::option> submenu::control_options() +{ + return std::vector<option>{ + { option_type::HEAD, __("Device Mapping") }, + { option_type::EMU, __("Lightgun Device Assignment"), OPTION_LIGHTGUN_DEVICE }, + { option_type::EMU, __("Trackball Device Assignment"), OPTION_TRACKBALL_DEVICE }, + { option_type::EMU, __("Pedal Device Assignment"), OPTION_PEDAL_DEVICE }, + { option_type::EMU, __("Adstick Device Assignment"), OPTION_ADSTICK_DEVICE }, + { option_type::EMU, __("Paddle Device Assignment"), OPTION_PADDLE_DEVICE }, + { option_type::EMU, __("Dial Device Assignment"), OPTION_DIAL_DEVICE }, + { option_type::EMU, __("Positional Device Assignment"), OPTION_POSITIONAL_DEVICE }, + { option_type::EMU, __("Mouse Device Assignment"), OPTION_MOUSE_DEVICE } }; +} + +std::vector<submenu::option> submenu::video_options() +{ + return std::vector<option>{ + { option_type::HEAD, __("Video Options") }, + { option_type::OSD, __("Video Mode"), OSDOPTION_VIDEO }, + { option_type::OSD, __("Number Of Screens"), OSDOPTION_NUMSCREENS }, #if defined(UI_WINDOWS) && !defined(UI_SDL) - { submenu::option_type::OSD, __("Triple Buffering"), WINOPTION_TRIPLEBUFFER }, - { submenu::option_type::OSD, __("HLSL"), WINOPTION_HLSL_ENABLE }, + { option_type::OSD, __("Triple Buffering"), WINOPTION_TRIPLEBUFFER }, + { option_type::OSD, __("HLSL"), WINOPTION_HLSL_ENABLE }, #endif - { submenu::option_type::OSD, __("GLSL"), OSDOPTION_GL_GLSL }, - { submenu::option_type::OSD, __("Bilinear Filtering"), OSDOPTION_FILTER }, - { submenu::option_type::OSD, __("Bitmap Prescaling"), OSDOPTION_PRESCALE }, - { submenu::option_type::OSD, __("Window Mode"), OSDOPTION_WINDOW }, - { submenu::option_type::EMU, __("Enforce Aspect Ratio"), OPTION_KEEPASPECT }, - { submenu::option_type::OSD, __("Start Out Maximized"), OSDOPTION_MAXIMIZE }, - { submenu::option_type::OSD, __("Synchronized Refresh"), OSDOPTION_SYNCREFRESH }, - { submenu::option_type::OSD, __("Wait Vertical Sync"), OSDOPTION_WAITVSYNC } -}; - -//std::vector<submenu::option> const submenu::export_options = { -// { ui_submenu::option_type::COMMAND, __("Export XML format (like -listxml)"), "exportxml" }, -// { ui_submenu::option_type::COMMAND, __("Export TXT format (like -listfull)"), "exporttxt" }, -//}; + { option_type::OSD, __("GLSL"), OSDOPTION_GL_GLSL }, + { option_type::OSD, __("Bilinear Filtering"), OSDOPTION_FILTER }, + { option_type::OSD, __("Bitmap Prescaling"), OSDOPTION_PRESCALE }, + { option_type::OSD, __("Window Mode"), OSDOPTION_WINDOW }, + { option_type::EMU, __("Enforce Aspect Ratio"), OPTION_KEEPASPECT }, + { option_type::OSD, __("Start Out Maximized"), OSDOPTION_MAXIMIZE }, + { option_type::OSD, __("Synchronized Refresh"), OSDOPTION_SYNCREFRESH }, + { option_type::OSD, __("Wait Vertical Sync"), OSDOPTION_WAITVSYNC } }; +} + +//std::vector<submenu::option> submenu::export_options() +//{ +// return std::vector<option>{ +// { option_type::COMMAND, __("Export XML format (like -listxml)"), "exportxml" }, +// { option_type::COMMAND, __("Export TXT format (like -listfull)"), "exporttxt" } }; +//} //------------------------------------------------- @@ -219,7 +231,7 @@ submenu::~submenu() } //------------------------------------------------- -// handlethe options menu +// handle the options menu //------------------------------------------------- void submenu::handle() |