| 
									
										
										
										
											2014-09-12 17:06:13 -07:00
										 |  |  | // Copyright 2014 Citra Emulator Project
 | 
					
						
							| 
									
										
										
										
											2014-12-16 21:38:14 -08:00
										 |  |  | // Licensed under GPLv2 or any later version
 | 
					
						
							| 
									
										
										
										
											2014-09-12 17:06:13 -07:00
										 |  |  | // Refer to the license.txt file included.
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #pragma once
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-06-20 04:34:45 +01:00
										 |  |  | #include <array>
 | 
					
						
							| 
									
										
										
										
											2016-09-18 09:38:01 +09:00
										 |  |  | #include <string>
 | 
					
						
							| 
									
										
										
										
											2016-04-30 16:34:51 +01:00
										 |  |  | #include "common/common_types.h"
 | 
					
						
							| 
									
										
										
										
											2014-12-06 20:00:08 -02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-12 17:06:13 -07:00
										 |  |  | namespace Settings { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-20 22:46:39 +02:00
										 |  |  | namespace NativeButton { | 
					
						
							|  |  |  | enum Values { | 
					
						
							|  |  |  |     A, | 
					
						
							|  |  |  |     B, | 
					
						
							|  |  |  |     X, | 
					
						
							|  |  |  |     Y, | 
					
						
							| 
									
										
										
										
											2018-01-15 00:24:23 -07:00
										 |  |  |     LStick, | 
					
						
							|  |  |  |     RStick, | 
					
						
							| 
									
										
										
										
											2017-01-20 22:46:39 +02:00
										 |  |  |     L, | 
					
						
							|  |  |  |     R, | 
					
						
							|  |  |  |     ZL, | 
					
						
							|  |  |  |     ZR, | 
					
						
							| 
									
										
										
										
											2018-01-15 00:24:23 -07:00
										 |  |  |     Plus, | 
					
						
							|  |  |  |     Minus, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     DLeft, | 
					
						
							|  |  |  |     DUp, | 
					
						
							|  |  |  |     DRight, | 
					
						
							|  |  |  |     DDown, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     LStick_Left, | 
					
						
							|  |  |  |     LStick_Up, | 
					
						
							|  |  |  |     LStick_Right, | 
					
						
							|  |  |  |     LStick_Down, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     RStick_Left, | 
					
						
							|  |  |  |     RStick_Up, | 
					
						
							|  |  |  |     RStick_Right, | 
					
						
							|  |  |  |     RStick_Down, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     SL, | 
					
						
							|  |  |  |     SR, | 
					
						
							| 
									
										
										
										
											2017-01-20 22:46:39 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     Home, | 
					
						
							| 
									
										
										
										
											2018-01-15 01:35:25 -07:00
										 |  |  |     Screenshot, | 
					
						
							| 
									
										
										
										
											2017-01-20 22:46:39 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     NumButtons, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | constexpr int BUTTON_HID_BEGIN = A; | 
					
						
							|  |  |  | constexpr int BUTTON_NS_BEGIN = Home; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-01-15 00:24:23 -07:00
										 |  |  | constexpr int BUTTON_HID_END = BUTTON_NS_BEGIN; | 
					
						
							| 
									
										
										
										
											2017-01-20 22:46:39 +02:00
										 |  |  | constexpr int BUTTON_NS_END = NumButtons; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | constexpr int NUM_BUTTONS_HID = BUTTON_HID_END - BUTTON_HID_BEGIN; | 
					
						
							|  |  |  | constexpr int NUM_BUTTONS_NS = BUTTON_NS_END - BUTTON_NS_BEGIN; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static const std::array<const char*, NumButtons> mapping = {{ | 
					
						
							| 
									
										
										
										
											2018-01-15 00:24:23 -07:00
										 |  |  |     "button_a", | 
					
						
							|  |  |  |     "button_b", | 
					
						
							|  |  |  |     "button_x", | 
					
						
							|  |  |  |     "button_y", | 
					
						
							|  |  |  |     "button_lstick", | 
					
						
							|  |  |  |     "button_rstick", | 
					
						
							|  |  |  |     "button_l", | 
					
						
							|  |  |  |     "button_r", | 
					
						
							|  |  |  |     "button_zl", | 
					
						
							|  |  |  |     "button_zr", | 
					
						
							|  |  |  |     "button_plus", | 
					
						
							|  |  |  |     "button_minus", | 
					
						
							|  |  |  |     "button_dleft", | 
					
						
							|  |  |  |     "button_dup", | 
					
						
							|  |  |  |     "button_dright", | 
					
						
							|  |  |  |     "button_ddown", | 
					
						
							|  |  |  |     "button_lstick_left", | 
					
						
							|  |  |  |     "button_lstick_up", | 
					
						
							|  |  |  |     "button_lstick_right", | 
					
						
							|  |  |  |     "button_lstick_down", | 
					
						
							| 
									
										
										
										
											2018-01-15 13:09:14 -05:00
										 |  |  |     "button_rstick_left", | 
					
						
							|  |  |  |     "button_rstick_up", | 
					
						
							|  |  |  |     "button_rstick_right", | 
					
						
							|  |  |  |     "button_rstick_down", | 
					
						
							| 
									
										
										
										
											2018-01-15 00:24:23 -07:00
										 |  |  |     "button_sl", | 
					
						
							|  |  |  |     "button_sr", | 
					
						
							|  |  |  |     "button_home", | 
					
						
							| 
									
										
										
										
											2018-01-15 01:35:25 -07:00
										 |  |  |     "button_screenshot", | 
					
						
							| 
									
										
										
										
											2017-01-20 22:46:39 +02:00
										 |  |  | }}; | 
					
						
							| 
									
										
										
										
											2018-01-15 13:09:14 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-20 22:46:39 +02:00
										 |  |  | } // namespace NativeButton
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-20 23:58:03 +02:00
										 |  |  | namespace NativeAnalog { | 
					
						
							|  |  |  | enum Values { | 
					
						
							| 
									
										
										
										
											2018-01-15 00:24:23 -07:00
										 |  |  |     LStick, | 
					
						
							|  |  |  |     RStick, | 
					
						
							| 
									
										
										
										
											2017-01-20 23:58:03 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     NumAnalogs, | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-05-07 09:06:02 -06:00
										 |  |  | constexpr int STICK_HID_BEGIN = LStick; | 
					
						
							|  |  |  | constexpr int STICK_HID_END = NumAnalogs; | 
					
						
							|  |  |  | constexpr int NUM_STICKS_HID = NumAnalogs; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-01-20 23:58:03 +02:00
										 |  |  | static const std::array<const char*, NumAnalogs> mapping = {{ | 
					
						
							| 
									
										
										
										
											2018-01-20 00:48:02 -07:00
										 |  |  |     "lstick", | 
					
						
							|  |  |  |     "rstick", | 
					
						
							| 
									
										
										
										
											2017-01-20 23:58:03 +02:00
										 |  |  | }}; | 
					
						
							| 
									
										
										
										
											2017-08-25 23:53:07 +02:00
										 |  |  | } // namespace NativeAnalog
 | 
					
						
							| 
									
										
										
										
											2017-01-20 23:58:03 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-09-12 17:06:13 -07:00
										 |  |  | struct Values { | 
					
						
							| 
									
										
										
										
											2018-03-26 22:24:31 -04:00
										 |  |  |     // System
 | 
					
						
							| 
									
										
										
										
											2018-03-26 22:59:18 -04:00
										 |  |  |     bool use_docked_mode; | 
					
						
							| 
									
										
										
										
											2018-03-26 22:24:31 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-25 12:54:44 -07:00
										 |  |  |     // Controls
 | 
					
						
							| 
									
										
										
										
											2017-01-20 22:46:39 +02:00
										 |  |  |     std::array<std::string, NativeButton::NumButtons> buttons; | 
					
						
							| 
									
										
										
										
											2017-01-20 23:58:03 +02:00
										 |  |  |     std::array<std::string, NativeAnalog::NumAnalogs> analogs; | 
					
						
							| 
									
										
										
										
											2017-08-06 22:54:19 +03:00
										 |  |  |     std::string motion_device; | 
					
						
							| 
									
										
										
										
											2017-08-08 21:34:17 +03:00
										 |  |  |     std::string touch_device; | 
					
						
							| 
									
										
										
										
											2017-01-20 22:46:39 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-10-25 12:54:44 -07:00
										 |  |  |     // Core
 | 
					
						
							| 
									
										
										
										
											2018-03-26 23:01:40 -04:00
										 |  |  |     bool use_cpu_jit; | 
					
						
							| 
									
										
										
										
											2018-05-03 00:34:54 -04:00
										 |  |  |     bool use_multi_core; | 
					
						
							| 
									
										
										
										
											2014-10-25 12:54:44 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     // Data Storage
 | 
					
						
							| 
									
										
										
										
											2014-10-09 19:43:40 -07:00
										 |  |  |     bool use_virtual_sd; | 
					
						
							| 
									
										
										
										
											2014-10-27 17:18:28 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-03 15:35:51 -07:00
										 |  |  |     // Renderer
 | 
					
						
							| 
									
										
										
										
											2016-12-29 23:28:27 -05:00
										 |  |  |     float resolution_factor; | 
					
						
							| 
									
										
										
										
											2016-12-07 07:33:19 +12:00
										 |  |  |     bool toggle_framelimit; | 
					
						
							| 
									
										
										
										
											2018-06-26 14:36:26 -04:00
										 |  |  |     bool use_accurate_framebuffers; | 
					
						
							| 
									
										
										
										
											2015-05-03 15:34:48 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-03 15:35:51 -07:00
										 |  |  |     float bg_red; | 
					
						
							|  |  |  |     float bg_green; | 
					
						
							|  |  |  |     float bg_blue; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-06 20:00:08 -02:00
										 |  |  |     std::string log_filter; | 
					
						
							| 
									
										
										
										
											2015-09-02 08:56:38 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-27 23:55:23 -04:00
										 |  |  |     bool use_dev_keys; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-07-30 23:57:53 -04:00
										 |  |  |     // Audio
 | 
					
						
							|  |  |  |     std::string sink_id; | 
					
						
							|  |  |  |     std::string audio_device_id; | 
					
						
							|  |  |  |     float volume; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-09-02 08:56:38 -04:00
										 |  |  |     // Debugging
 | 
					
						
							|  |  |  |     bool use_gdbstub; | 
					
						
							|  |  |  |     u16 gdbstub_port; | 
					
						
							| 
									
										
										
										
											2014-09-12 17:06:13 -07:00
										 |  |  | } extern values; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-04-11 14:38:42 +02:00
										 |  |  | void Apply(); | 
					
						
							| 
									
										
										
										
											2017-08-25 23:53:07 +02:00
										 |  |  | } // namespace Settings
 |