forked from eden-emu/eden
		
	Merge pull request #3562 from perillamint/vrsvc
am: Implement VR related APIs
This commit is contained in:
		
						commit
						3660347e8d
					
				
					 2 changed files with 42 additions and 3 deletions
				
			
		|  | @ -52,6 +52,11 @@ enum class LaunchParameterKind : u32 { | |||
|     AccountPreselectedUser = 2, | ||||
| }; | ||||
| 
 | ||||
| enum class VrMode : u8 { | ||||
|     Disabled = 0, | ||||
|     Enabled = 1, | ||||
| }; | ||||
| 
 | ||||
| constexpr u32 LAUNCH_PARAMETER_ACCOUNT_PRESELECTED_USER_MAGIC = 0xC79497CA; | ||||
| 
 | ||||
| struct LaunchParameterAccountPreselectedUser { | ||||
|  | @ -605,11 +610,11 @@ ICommonStateGetter::ICommonStateGetter(Core::System& system, | |||
|         {30, nullptr, "GetHomeButtonReaderLockAccessor"}, | ||||
|         {31, nullptr, "GetReaderLockAccessorEx"}, | ||||
|         {40, nullptr, "GetCradleFwVersion"}, | ||||
|         {50, nullptr, "IsVrModeEnabled"}, | ||||
|         {51, nullptr, "SetVrModeEnabled"}, | ||||
|         {50, &ICommonStateGetter::IsVrModeEnabled, "IsVrModeEnabled"}, | ||||
|         {51, &ICommonStateGetter::SetVrModeEnabled, "SetVrModeEnabled"}, | ||||
|         {52, &ICommonStateGetter::SetLcdBacklighOffEnabled, "SetLcdBacklighOffEnabled"}, | ||||
|         {53, nullptr, "BeginVrModeEx"}, | ||||
|         {54, nullptr, "EndVrModeEx"}, | ||||
|         {54, &ICommonStateGetter::EndVrModeEx, "EndVrModeEx"}, | ||||
|         {55, nullptr, "IsInControllerFirmwareUpdateSection"}, | ||||
|         {60, &ICommonStateGetter::GetDefaultDisplayResolution, "GetDefaultDisplayResolution"}, | ||||
|         {61, &ICommonStateGetter::GetDefaultDisplayResolutionChangeEvent, "GetDefaultDisplayResolutionChangeEvent"}, | ||||
|  | @ -672,6 +677,30 @@ void ICommonStateGetter::GetCurrentFocusState(Kernel::HLERequestContext& ctx) { | |||
|     rb.Push(static_cast<u8>(FocusState::InFocus)); | ||||
| } | ||||
| 
 | ||||
| void ICommonStateGetter::IsVrModeEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 3}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
|     rb.PushEnum(VrMode::Disabled); | ||||
| } | ||||
| 
 | ||||
| void ICommonStateGetter::SetVrModeEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto is_vr_mode_enabled = rp.Pop<bool>(); | ||||
| 
 | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called. is_vr_mode_enabled={}", is_vr_mode_enabled); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     if (!is_vr_mode_enabled) { | ||||
|         rb.Push(RESULT_SUCCESS); | ||||
|     } else { | ||||
|         // TODO: Find better error code for this
 | ||||
|         UNIMPLEMENTED_MSG("is_vr_mode_enabled={}", is_vr_mode_enabled); | ||||
|         rb.Push(RESULT_UNKNOWN); | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| void ICommonStateGetter::SetLcdBacklighOffEnabled(Kernel::HLERequestContext& ctx) { | ||||
|     IPC::RequestParser rp{ctx}; | ||||
|     const auto is_lcd_backlight_off_enabled = rp.Pop<bool>(); | ||||
|  | @ -683,6 +712,13 @@ void ICommonStateGetter::SetLcdBacklighOffEnabled(Kernel::HLERequestContext& ctx | |||
|     rb.Push(RESULT_SUCCESS); | ||||
| } | ||||
| 
 | ||||
| void ICommonStateGetter::EndVrModeEx(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_WARNING(Service_AM, "(STUBBED) called"); | ||||
| 
 | ||||
|     IPC::ResponseBuilder rb{ctx, 2}; | ||||
|     rb.Push(RESULT_SUCCESS); | ||||
| } | ||||
| 
 | ||||
| void ICommonStateGetter::GetDefaultDisplayResolutionChangeEvent(Kernel::HLERequestContext& ctx) { | ||||
|     LOG_DEBUG(Service_AM, "called"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -182,7 +182,10 @@ private: | |||
|     void GetOperationMode(Kernel::HLERequestContext& ctx); | ||||
|     void GetPerformanceMode(Kernel::HLERequestContext& ctx); | ||||
|     void GetBootMode(Kernel::HLERequestContext& ctx); | ||||
|     void IsVrModeEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void SetVrModeEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void SetLcdBacklighOffEnabled(Kernel::HLERequestContext& ctx); | ||||
|     void EndVrModeEx(Kernel::HLERequestContext& ctx); | ||||
|     void GetDefaultDisplayResolution(Kernel::HLERequestContext& ctx); | ||||
|     void SetCpuBoostMode(Kernel::HLERequestContext& ctx); | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 bunnei
						bunnei