rest
This commit is contained in:
parent
e33e38467c
commit
6a0ef7de68
|
@ -80,7 +80,7 @@ IHidServer::IHidServer(Core::System& system_, std::shared_ptr<ResourceManager> r
|
||||||
{21, &IHidServer::ActivateMouse, "ActivateMouse"},
|
{21, &IHidServer::ActivateMouse, "ActivateMouse"},
|
||||||
{26, nullptr, "ActivateDebugMouse"},
|
{26, nullptr, "ActivateDebugMouse"},
|
||||||
{31, &IHidServer::ActivateKeyboard, "ActivateKeyboard"},
|
{31, &IHidServer::ActivateKeyboard, "ActivateKeyboard"},
|
||||||
{32, nullptr, "SendKeyboardLockKeyEvent"},
|
{32, &IHidServer::SendKeyboardLockKeyEvent, "SendKeyboardLockKeyEvent"},
|
||||||
{40, &IHidServer::AcquireXpadIdEventHandle, "AcquireXpadIdEventHandle"},
|
{40, &IHidServer::AcquireXpadIdEventHandle, "AcquireXpadIdEventHandle"},
|
||||||
{41, &IHidServer::ReleaseXpadIdEventHandle, "ReleaseXpadIdEventHandle"},
|
{41, &IHidServer::ReleaseXpadIdEventHandle, "ReleaseXpadIdEventHandle"},
|
||||||
{51, &IHidServer::ActivateXpad, "ActivateXpad"},
|
{51, &IHidServer::ActivateXpad, "ActivateXpad"},
|
||||||
|
@ -166,18 +166,18 @@ IHidServer::IHidServer(Core::System& system_, std::shared_ptr<ResourceManager> r
|
||||||
{305, &IHidServer::StopSevenSixAxisSensor, "StopSevenSixAxisSensor"},
|
{305, &IHidServer::StopSevenSixAxisSensor, "StopSevenSixAxisSensor"},
|
||||||
{306, &IHidServer::InitializeSevenSixAxisSensor, "InitializeSevenSixAxisSensor"},
|
{306, &IHidServer::InitializeSevenSixAxisSensor, "InitializeSevenSixAxisSensor"},
|
||||||
{307, &IHidServer::FinalizeSevenSixAxisSensor, "FinalizeSevenSixAxisSensor"},
|
{307, &IHidServer::FinalizeSevenSixAxisSensor, "FinalizeSevenSixAxisSensor"},
|
||||||
{308, nullptr, "SetSevenSixAxisSensorFusionStrength"},
|
{308, &IHidServer::SetSevenSixAxisSensorFusionStrength, "SetSevenSixAxisSensorFusionStrength"},
|
||||||
{309, nullptr, "GetSevenSixAxisSensorFusionStrength"},
|
{309, &IHidServer::GetSevenSixAxisSensorFusionStrength, "GetSevenSixAxisSensorFusionStrength"},
|
||||||
{310, &IHidServer::ResetSevenSixAxisSensorTimestamp, "ResetSevenSixAxisSensorTimestamp"},
|
{310, &IHidServer::ResetSevenSixAxisSensorTimestamp, "ResetSevenSixAxisSensorTimestamp"},
|
||||||
{400, nullptr, "IsUsbFullKeyControllerEnabled"},
|
{400, &IHidServer::IsUsbFullKeyControllerEnabled, "IsUsbFullKeyControllerEnabled"},
|
||||||
{401, nullptr, "EnableUsbFullKeyController"},
|
{401, &IHidServer::EnableUsbFullKeyController, "EnableUsbFullKeyController"},
|
||||||
{402, nullptr, "IsUsbFullKeyControllerConnected"},
|
{402, &IHidServer::IsUsbFullKeyControllerConnected, "IsUsbFullKeyControllerConnected"},
|
||||||
{403, nullptr, "HasBattery"},
|
{403, &IHidServer::HasBattery, "HasBattery"},
|
||||||
{404, nullptr, "HasLeftRightBattery"},
|
{404, &IHidServer::HasLeftRightBattery, "HasLeftRightBattery"},
|
||||||
{405, nullptr, "GetNpadInterfaceType"},
|
{405, &IHidServer::GetNpadInterfaceType, "GetNpadInterfaceType"},
|
||||||
{406, nullptr, "GetNpadLeftRightInterfaceType"},
|
{406, &IHidServer::GetNpadLeftRightInterfaceType, "GetNpadLeftRightInterfaceType"},
|
||||||
{407, nullptr, "GetNpadOfHighestBatteryLevel"},
|
{407, &IHidServer::GetNpadOfHighestBatteryLevel, "GetNpadOfHighestBatteryLevel"},
|
||||||
{408, nullptr, "GetNpadOfHighestBatteryLevelForJoyRight"},
|
{408, &IHidServer::GetNpadOfHighestBatteryLevelForJoyRight, "GetNpadOfHighestBatteryLevelForJoyRight"},
|
||||||
{500, &IHidServer::GetPalmaConnectionHandle, "GetPalmaConnectionHandle"},
|
{500, &IHidServer::GetPalmaConnectionHandle, "GetPalmaConnectionHandle"},
|
||||||
{501, &IHidServer::InitializePalma, "InitializePalma"},
|
{501, &IHidServer::InitializePalma, "InitializePalma"},
|
||||||
{502, &IHidServer::AcquirePalmaOperationCompleteEvent, "AcquirePalmaOperationCompleteEvent"},
|
{502, &IHidServer::AcquirePalmaOperationCompleteEvent, "AcquirePalmaOperationCompleteEvent"},
|
||||||
|
@ -212,7 +212,7 @@ IHidServer::IHidServer(Core::System& system_, std::shared_ptr<ResourceManager> r
|
||||||
{1001, &IHidServer::GetNpadCommunicationMode, "GetNpadCommunicationMode"},
|
{1001, &IHidServer::GetNpadCommunicationMode, "GetNpadCommunicationMode"},
|
||||||
{1002, &IHidServer::SetTouchScreenConfiguration, "SetTouchScreenConfiguration"},
|
{1002, &IHidServer::SetTouchScreenConfiguration, "SetTouchScreenConfiguration"},
|
||||||
{1003, &IHidServer::IsFirmwareUpdateNeededForNotification, "IsFirmwareUpdateNeededForNotification"},
|
{1003, &IHidServer::IsFirmwareUpdateNeededForNotification, "IsFirmwareUpdateNeededForNotification"},
|
||||||
{2000, nullptr, "ActivateDigitizer"},
|
{2000, &IHidServer::ActivateDigitizer, "ActivateDigitizer"},
|
||||||
{3000, nullptr, "GetDebugPadGenericPadMap"},
|
{3000, nullptr, "GetDebugPadGenericPadMap"},
|
||||||
{3001, nullptr, "SetDebugPadGenericPadMap"},
|
{3001, nullptr, "SetDebugPadGenericPadMap"},
|
||||||
{3002, nullptr, "ResetDebugPadGenericPadMap"},
|
{3002, nullptr, "ResetDebugPadGenericPadMap"},
|
||||||
|
@ -241,6 +241,7 @@ void IHidServer::CreateAppletResource(HLERequestContext& ctx) {
|
||||||
|
|
||||||
if (applet_resource == nullptr) {
|
if (applet_resource == nullptr) {
|
||||||
applet_resource = std::make_shared<IAppletResource>(system);
|
applet_resource = std::make_shared<IAppletResource>(system);
|
||||||
|
applet_resource->Initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
IPC::ResponseBuilder rb{ctx, 2, 0, 1};
|
||||||
|
@ -324,6 +325,9 @@ void IHidServer::ActivateKeyboard(HLERequestContext& ctx) {
|
||||||
rb.Push(result);
|
rb.Push(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IHidServer::SendKeyboardLockKeyEvent(HLERequestContext& ctx) {
|
||||||
|
}
|
||||||
|
|
||||||
void IHidServer::AcquireXpadIdEventHandle(HLERequestContext& ctx) {
|
void IHidServer::AcquireXpadIdEventHandle(HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto applet_resource_user_id{rp.Pop<u64>()};
|
const auto applet_resource_user_id{rp.Pop<u64>()};
|
||||||
|
@ -2232,6 +2236,9 @@ void IHidServer::FinalizeSevenSixAxisSensor(HLERequestContext& ctx) {
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IHidServer::ResetSevenSixAxisSensorTimestamp(HLERequestContext& ctx) {}
|
||||||
|
void IHidServer::IsUsbFullKeyControllerEnabled(HLERequestContext& ctx) {}
|
||||||
|
|
||||||
void IHidServer::ResetSevenSixAxisSensorTimestamp(HLERequestContext& ctx) {}
|
void IHidServer::ResetSevenSixAxisSensorTimestamp(HLERequestContext& ctx) {}
|
||||||
|
|
||||||
void IHidServer::IsUsbFullKeyControllerEnabled(HLERequestContext& ctx) {
|
void IHidServer::IsUsbFullKeyControllerEnabled(HLERequestContext& ctx) {
|
||||||
|
@ -2268,6 +2275,15 @@ void IHidServer::GetPalmaConnectionHandle(HLERequestContext& ctx) {
|
||||||
rb.PushRaw(handle);
|
rb.PushRaw(handle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IHidServer::EnableUsbFullKeyController(HLERequestContext& ctx) {}
|
||||||
|
void IHidServer::IsUsbFullKeyControllerConnected(HLERequestContext& ctx) {}
|
||||||
|
void IHidServer::HasBattery(HLERequestContext& ctx) {}
|
||||||
|
void IHidServer::HasLeftRightBattery(HLERequestContext& ctx) {}
|
||||||
|
void IHidServer::GetNpadInterfaceType(HLERequestContext& ctx) {}
|
||||||
|
void IHidServer::GetNpadLeftRightInterfaceType(HLERequestContext& ctx) {}
|
||||||
|
void IHidServer::GetNpadOfHighestBatteryLevel(HLERequestContext& ctx) {}
|
||||||
|
void IHidServer::GetNpadOfHighestBatteryLevelForJoyRight(HLERequestContext& ctx) {}
|
||||||
|
|
||||||
void IHidServer::InitializePalma(HLERequestContext& ctx) {
|
void IHidServer::InitializePalma(HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto connection_handle{rp.PopRaw<PalmaConnectionHandle>()};
|
const auto connection_handle{rp.PopRaw<PalmaConnectionHandle>()};
|
||||||
|
@ -2837,6 +2853,10 @@ void IHidServer::IsFirmwareUpdateNeededForNotification(HLERequestContext& ctx) {
|
||||||
rb.Push(needs_update);
|
rb.Push(needs_update);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IHidServer::ActivateDigitizer(HLERequestContext& ctx) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
bool IHidServer::IsDeviceManaged() {
|
bool IHidServer::IsDeviceManaged() {
|
||||||
InitializeDebugSettings();
|
InitializeDebugSettings();
|
||||||
return is_device_managed;
|
return is_device_managed;
|
||||||
|
|
|
@ -51,6 +51,7 @@ private:
|
||||||
void ActivateTouchScreen(HLERequestContext& ctx);
|
void ActivateTouchScreen(HLERequestContext& ctx);
|
||||||
void ActivateMouse(HLERequestContext& ctx);
|
void ActivateMouse(HLERequestContext& ctx);
|
||||||
void ActivateKeyboard(HLERequestContext& ctx);
|
void ActivateKeyboard(HLERequestContext& ctx);
|
||||||
|
void SendKeyboardLockKeyEvent(HLERequestContext& ctx);
|
||||||
void AcquireXpadIdEventHandle(HLERequestContext& ctx);
|
void AcquireXpadIdEventHandle(HLERequestContext& ctx);
|
||||||
void ReleaseXpadIdEventHandle(HLERequestContext& ctx);
|
void ReleaseXpadIdEventHandle(HLERequestContext& ctx);
|
||||||
void ActivateXpad(HLERequestContext& ctx);
|
void ActivateXpad(HLERequestContext& ctx);
|
||||||
|
@ -136,8 +137,18 @@ private:
|
||||||
void StopSevenSixAxisSensor(HLERequestContext& ctx);
|
void StopSevenSixAxisSensor(HLERequestContext& ctx);
|
||||||
void InitializeSevenSixAxisSensor(HLERequestContext& ctx);
|
void InitializeSevenSixAxisSensor(HLERequestContext& ctx);
|
||||||
void FinalizeSevenSixAxisSensor(HLERequestContext& ctx);
|
void FinalizeSevenSixAxisSensor(HLERequestContext& ctx);
|
||||||
|
void SetSevenSixAxisSensorFusionStrength(HLERequestContext& ctx);
|
||||||
|
void GetSevenSixAxisSensorFusionStrength(HLERequestContext& ctx);
|
||||||
void ResetSevenSixAxisSensorTimestamp(HLERequestContext& ctx);
|
void ResetSevenSixAxisSensorTimestamp(HLERequestContext& ctx);
|
||||||
void IsUsbFullKeyControllerEnabled(HLERequestContext& ctx);
|
void IsUsbFullKeyControllerEnabled(HLERequestContext& ctx);
|
||||||
|
void EnableUsbFullKeyController(HLERequestContext& ctx);
|
||||||
|
void IsUsbFullKeyControllerConnected(HLERequestContext& ctx);
|
||||||
|
void HasBattery(HLERequestContext& ctx);
|
||||||
|
void HasLeftRightBattery(HLERequestContext& ctx);
|
||||||
|
void GetNpadInterfaceType(HLERequestContext& ctx);
|
||||||
|
void GetNpadLeftRightInterfaceType(HLERequestContext& ctx);
|
||||||
|
void GetNpadOfHighestBatteryLevel(HLERequestContext& ctx);
|
||||||
|
void GetNpadOfHighestBatteryLevelForJoyRight(HLERequestContext& ctx);
|
||||||
void GetPalmaConnectionHandle(HLERequestContext& ctx);
|
void GetPalmaConnectionHandle(HLERequestContext& ctx);
|
||||||
void InitializePalma(HLERequestContext& ctx);
|
void InitializePalma(HLERequestContext& ctx);
|
||||||
void AcquirePalmaOperationCompleteEvent(HLERequestContext& ctx);
|
void AcquirePalmaOperationCompleteEvent(HLERequestContext& ctx);
|
||||||
|
@ -172,7 +183,9 @@ private:
|
||||||
void GetNpadCommunicationMode(HLERequestContext& ctx);
|
void GetNpadCommunicationMode(HLERequestContext& ctx);
|
||||||
void SetTouchScreenConfiguration(HLERequestContext& ctx);
|
void SetTouchScreenConfiguration(HLERequestContext& ctx);
|
||||||
void IsFirmwareUpdateNeededForNotification(HLERequestContext& ctx);
|
void IsFirmwareUpdateNeededForNotification(HLERequestContext& ctx);
|
||||||
|
void ActivateDigitizer(HLERequestContext& ctx);
|
||||||
|
|
||||||
|
private:
|
||||||
Result SendVibrationValueImpl(const u64 aruid, const VibrationDeviceHandle& handle,
|
Result SendVibrationValueImpl(const u64 aruid, const VibrationDeviceHandle& handle,
|
||||||
const VibrationValue& value);
|
const VibrationValue& value);
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
#include "core/hle/service/hid/hid_system_server.h"
|
#include "core/hle/service/hid/hid_system_server.h"
|
||||||
#include "core/hle/service/hid/resource_manager.h"
|
#include "core/hle/service/hid/resource_manager.h"
|
||||||
#include "core/hle/service/hid/resource_manager/npad_resource/npad.h"
|
#include "core/hle/service/hid/resource_manager/npad_resource/npad.h"
|
||||||
|
#include "core/hle/service/hid/resource_manager/touch_screen.h"
|
||||||
#include "core/hle/service/ipc_helpers.h"
|
#include "core/hle/service/ipc_helpers.h"
|
||||||
|
|
||||||
namespace Service::HID {
|
namespace Service::HID {
|
||||||
|
@ -36,11 +37,11 @@ IHidSystemServer::IHidSystemServer(Core::System& system_, std::shared_ptr<Resour
|
||||||
{303, &IHidSystemServer::ApplyNpadSystemCommonPolicy, "ApplyNpadSystemCommonPolicy"},
|
{303, &IHidSystemServer::ApplyNpadSystemCommonPolicy, "ApplyNpadSystemCommonPolicy"},
|
||||||
{304, &IHidSystemServer::EnableAssigningSingleOnSlSrPress, "EnableAssigningSingleOnSlSrPress"},
|
{304, &IHidSystemServer::EnableAssigningSingleOnSlSrPress, "EnableAssigningSingleOnSlSrPress"},
|
||||||
{305, &IHidSystemServer::DisableAssigningSingleOnSlSrPress, "DisableAssigningSingleOnSlSrPress"},
|
{305, &IHidSystemServer::DisableAssigningSingleOnSlSrPress, "DisableAssigningSingleOnSlSrPress"},
|
||||||
{306, nullptr, "GetLastActiveNpad"},
|
{306, &IHidSystemServer::GetLastActiveNpad, "GetLastActiveNpad"},
|
||||||
{307, nullptr, "GetNpadSystemExtStyle"},
|
{307, nullptr, "GetNpadSystemExtStyle"},
|
||||||
{308, &IHidSystemServer::ApplyNpadSystemCommonPolicyFull, "ApplyNpadSystemCommonPolicyFull"},
|
{308, &IHidSystemServer::ApplyNpadSystemCommonPolicyFull, "ApplyNpadSystemCommonPolicyFull"},
|
||||||
{309, nullptr, "GetNpadFullKeyGripColor"},
|
{309, nullptr, "GetNpadFullKeyGripColor"},
|
||||||
{310, &IHidSystemServer::GetMaskedSupportedNpadStyleSet, "GetMaskedSupportedNpadStyleSet"},
|
{310, &IHidSystemServer::GetMaskedSupportedNpadStyleSet, "GetMaskedSupportedNpadStyleSet"},
|
||||||
{311, nullptr, "SetNpadPlayerLedBlinkingDevice"},
|
{311, nullptr, "SetNpadPlayerLedBlinkingDevice"},
|
||||||
{312, &IHidSystemServer::SetSupportedNpadStyleSetAll, "SetSupportedNpadStyleSetAll"},
|
{312, &IHidSystemServer::SetSupportedNpadStyleSetAll, "SetSupportedNpadStyleSetAll"},
|
||||||
{313, &IHidSystemServer::GetNpadCaptureButtonAssignment, "GetNpadCaptureButtonAssignment"},
|
{313, &IHidSystemServer::GetNpadCaptureButtonAssignment, "GetNpadCaptureButtonAssignment"},
|
||||||
|
@ -50,7 +51,7 @@ IHidSystemServer::IHidSystemServer(Core::System& system_, std::shared_ptr<Resour
|
||||||
{317, nullptr, "GetNpadLeftRightInterfaceType"},
|
{317, nullptr, "GetNpadLeftRightInterfaceType"},
|
||||||
{318, nullptr, "HasBattery"},
|
{318, nullptr, "HasBattery"},
|
||||||
{319, nullptr, "HasLeftRightBattery"},
|
{319, nullptr, "HasLeftRightBattery"},
|
||||||
{321, nullptr, "GetUniquePadsFromNpad"},
|
{321, &IHidSystemServer::GetUniquePadsFromNpad, "GetUniquePadsFromNpad"},
|
||||||
{322, nullptr, "GetIrSensorState"},
|
{322, nullptr, "GetIrSensorState"},
|
||||||
{323, nullptr, "GetXcdHandleForNpadWithIrSensor"},
|
{323, nullptr, "GetXcdHandleForNpadWithIrSensor"},
|
||||||
{324, nullptr, "GetUniquePadButtonSet"},
|
{324, nullptr, "GetUniquePadButtonSet"},
|
||||||
|
@ -68,8 +69,8 @@ IHidSystemServer::IHidSystemServer(Core::System& system_, std::shared_ptr<Resour
|
||||||
{505, nullptr, "EnableAppletToGetSixAxisSensor"},
|
{505, nullptr, "EnableAppletToGetSixAxisSensor"},
|
||||||
{506, nullptr, "EnableAppletToGetPadInput"},
|
{506, nullptr, "EnableAppletToGetPadInput"},
|
||||||
{507, nullptr, "EnableAppletToGetTouchScreen"},
|
{507, nullptr, "EnableAppletToGetTouchScreen"},
|
||||||
{510, &IHidSystemServer::SetVibrationMasterVolume, "SetVibrationMasterVolume"},
|
{510, &IHidSystemServer::SetVibrationMasterVolume, "SetVibrationMasterVolume"},
|
||||||
{511, &IHidSystemServer::GetVibrationMasterVolume, "GetVibrationMasterVolume"},
|
{511, &IHidSystemServer::GetVibrationMasterVolume, "GetVibrationMasterVolume"},
|
||||||
{512, nullptr, "BeginPermitVibrationSession"},
|
{512, nullptr, "BeginPermitVibrationSession"},
|
||||||
{513, nullptr, "EndPermitVibrationSession"},
|
{513, nullptr, "EndPermitVibrationSession"},
|
||||||
{514, nullptr, "Unknown514"},
|
{514, nullptr, "Unknown514"},
|
||||||
|
@ -92,7 +93,7 @@ IHidSystemServer::IHidSystemServer(Core::System& system_, std::shared_ptr<Resour
|
||||||
{700, nullptr, "ActivateUniquePad"},
|
{700, nullptr, "ActivateUniquePad"},
|
||||||
{702, nullptr, "AcquireUniquePadConnectionEventHandle"},
|
{702, nullptr, "AcquireUniquePadConnectionEventHandle"},
|
||||||
{703, nullptr, "GetUniquePadIds"},
|
{703, nullptr, "GetUniquePadIds"},
|
||||||
{751, nullptr, "AcquireJoyDetachOnBluetoothOffEventHandle"},
|
{751, &IHidSystemServer::AcquireJoyDetachOnBluetoothOffEventHandle, "AcquireJoyDetachOnBluetoothOffEventHandle"},
|
||||||
{800, nullptr, "ListSixAxisSensorHandles"},
|
{800, nullptr, "ListSixAxisSensorHandles"},
|
||||||
{801, nullptr, "IsSixAxisSensorUserCalibrationSupported"},
|
{801, nullptr, "IsSixAxisSensorUserCalibrationSupported"},
|
||||||
{802, nullptr, "ResetSixAxisSensorCalibrationValues"},
|
{802, nullptr, "ResetSixAxisSensorCalibrationValues"},
|
||||||
|
@ -118,7 +119,7 @@ IHidSystemServer::IHidSystemServer(Core::System& system_, std::shared_ptr<Resour
|
||||||
{830, nullptr, "SetNotificationLedPattern"},
|
{830, nullptr, "SetNotificationLedPattern"},
|
||||||
{831, nullptr, "SetNotificationLedPatternWithTimeout"},
|
{831, nullptr, "SetNotificationLedPatternWithTimeout"},
|
||||||
{832, nullptr, "PrepareHidsForNotificationWake"},
|
{832, nullptr, "PrepareHidsForNotificationWake"},
|
||||||
{850, nullptr, "IsUsbFullKeyControllerEnabled"},
|
{850, &IHidSystemServer::IsUsbFullKeyControllerEnabled, "IsUsbFullKeyControllerEnabled"},
|
||||||
{851, nullptr, "EnableUsbFullKeyController"},
|
{851, nullptr, "EnableUsbFullKeyController"},
|
||||||
{852, nullptr, "IsUsbConnected"},
|
{852, nullptr, "IsUsbConnected"},
|
||||||
{870, nullptr, "IsHandheldButtonPressedOnConsoleMode"},
|
{870, nullptr, "IsHandheldButtonPressedOnConsoleMode"},
|
||||||
|
@ -149,8 +150,8 @@ IHidSystemServer::IHidSystemServer(Core::System& system_, std::shared_ptr<Resour
|
||||||
{1134, nullptr, "GetUsbFirmwareUpdateState"},
|
{1134, nullptr, "GetUsbFirmwareUpdateState"},
|
||||||
{1150, nullptr, "SetTouchScreenMagnification"},
|
{1150, nullptr, "SetTouchScreenMagnification"},
|
||||||
{1151, nullptr, "GetTouchScreenFirmwareVersion"},
|
{1151, nullptr, "GetTouchScreenFirmwareVersion"},
|
||||||
{1152, nullptr, "SetTouchScreenDefaultConfiguration"},
|
{1152, &IHidSystemServer::SetTouchScreenDefaultConfiguration, "SetTouchScreenDefaultConfiguration"},
|
||||||
{1153, nullptr, "GetTouchScreenDefaultConfiguration"},
|
{1153, &IHidSystemServer::GetTouchScreenDefaultConfiguration, "GetTouchScreenDefaultConfiguration"},
|
||||||
{1154, nullptr, "IsFirmwareAvailableForNotification"},
|
{1154, nullptr, "IsFirmwareAvailableForNotification"},
|
||||||
{1155, nullptr, "SetForceHandheldStyleVibration"},
|
{1155, nullptr, "SetForceHandheldStyleVibration"},
|
||||||
{1156, nullptr, "SendConnectionTriggerWithoutTimeoutEvent"},
|
{1156, nullptr, "SendConnectionTriggerWithoutTimeoutEvent"},
|
||||||
|
@ -257,6 +258,17 @@ void IHidSystemServer::DisableAssigningSingleOnSlSrPress(HLERequestContext& ctx)
|
||||||
rb.Push(ResultSuccess);
|
rb.Push(ResultSuccess);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IHidSystemServer::GetLastActiveNpad(HLERequestContext& ctx) {
|
||||||
|
NpadIdType npad_id{};
|
||||||
|
const Result result = GetResourceManager()->GetNpad()->GetLastActiveNpad(npad_id);
|
||||||
|
|
||||||
|
LOG_DEBUG(Service_HID, "called, npad_id={}", npad_id);
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 3};
|
||||||
|
rb.Push(result);
|
||||||
|
rb.PushEnum(ResultSuccess);
|
||||||
|
}
|
||||||
|
|
||||||
void IHidSystemServer::ApplyNpadSystemCommonPolicyFull(HLERequestContext& ctx) {
|
void IHidSystemServer::ApplyNpadSystemCommonPolicyFull(HLERequestContext& ctx) {
|
||||||
IPC::RequestParser rp{ctx};
|
IPC::RequestParser rp{ctx};
|
||||||
const auto applet_resource_user_id{rp.Pop<u64>()};
|
const auto applet_resource_user_id{rp.Pop<u64>()};
|
||||||
|
@ -340,6 +352,49 @@ void IHidSystemServer::GetVibrationMasterVolume(HLERequestContext& ctx) {
|
||||||
rb.Push(volume);
|
rb.Push(volume);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void IHidSystemServer::SetTouchScreenDefaultConfiguration(HLERequestContext& ctx) {
|
||||||
|
IPC::RequestParser rp{ctx};
|
||||||
|
auto touch_screen_configuration{rp.PopRaw<TouchScreenConfigurationForNx>()};
|
||||||
|
|
||||||
|
LOG_WARNING(Service_HID, "(STUBBED) called, mode={}", touch_screen_configuration.mode);
|
||||||
|
|
||||||
|
switch (touch_screen_configuration.mode) {
|
||||||
|
case TouchScreenModeForNx::UseSystemSetting:
|
||||||
|
case TouchScreenModeForNx::Finger:
|
||||||
|
case TouchScreenModeForNx::Heat2:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
touch_screen_configuration.mode = TouchScreenModeForNx::UseSystemSetting;
|
||||||
|
}
|
||||||
|
|
||||||
|
const Result result = GetResourceManager()->GetTouchScreen()->SetTouchScreenConfiguration(
|
||||||
|
touch_screen_configuration);
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 2};
|
||||||
|
rb.Push(result);
|
||||||
|
}
|
||||||
|
|
||||||
|
void IHidSystemServer::GetTouchScreenDefaultConfiguration(HLERequestContext& ctx) {
|
||||||
|
LOG_WARNING(Service_HID, "(STUBBED) called");
|
||||||
|
|
||||||
|
TouchScreenConfigurationForNx touch_screen_configuration{};
|
||||||
|
const Result result = GetResourceManager()->GetTouchScreen()->GetTouchScreenConfiguration(
|
||||||
|
touch_screen_configuration.mode);
|
||||||
|
|
||||||
|
switch (touch_screen_configuration.mode) {
|
||||||
|
case TouchScreenModeForNx::UseSystemSetting:
|
||||||
|
case TouchScreenModeForNx::Finger:
|
||||||
|
case TouchScreenModeForNx::Heat2:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
touch_screen_configuration.mode = TouchScreenModeForNx::UseSystemSetting;
|
||||||
|
}
|
||||||
|
|
||||||
|
IPC::ResponseBuilder rb{ctx, 6};
|
||||||
|
rb.Push(ResultSuccess);
|
||||||
|
rb.PushRaw(touch_screen_configuration);
|
||||||
|
}
|
||||||
|
|
||||||
std::shared_ptr<ResourceManager> IHidSystemServer::GetResourceManager() {
|
std::shared_ptr<ResourceManager> IHidSystemServer::GetResourceManager() {
|
||||||
if (!is_resource_manager_initialized) {
|
if (!is_resource_manager_initialized) {
|
||||||
resource_manager->Initialize();
|
resource_manager->Initialize();
|
||||||
|
|
|
@ -21,12 +21,15 @@ private:
|
||||||
void ApplyNpadSystemCommonPolicy(HLERequestContext& ctx);
|
void ApplyNpadSystemCommonPolicy(HLERequestContext& ctx);
|
||||||
void EnableAssigningSingleOnSlSrPress(HLERequestContext& ctx);
|
void EnableAssigningSingleOnSlSrPress(HLERequestContext& ctx);
|
||||||
void DisableAssigningSingleOnSlSrPress(HLERequestContext& ctx);
|
void DisableAssigningSingleOnSlSrPress(HLERequestContext& ctx);
|
||||||
|
void GetLastActiveNpad(HLERequestContext& ctx);
|
||||||
void ApplyNpadSystemCommonPolicyFull(HLERequestContext& ctx);
|
void ApplyNpadSystemCommonPolicyFull(HLERequestContext& ctx);
|
||||||
void GetMaskedSupportedNpadStyleSet(HLERequestContext& ctx);
|
void GetMaskedSupportedNpadStyleSet(HLERequestContext& ctx);
|
||||||
void SetSupportedNpadStyleSetAll(HLERequestContext& ctx);
|
void SetSupportedNpadStyleSetAll(HLERequestContext& ctx);
|
||||||
void GetNpadCaptureButtonAssignment(HLERequestContext& ctx);
|
void GetNpadCaptureButtonAssignment(HLERequestContext& ctx);
|
||||||
void SetVibrationMasterVolume(HLERequestContext& ctx);
|
void SetVibrationMasterVolume(HLERequestContext& ctx);
|
||||||
void GetVibrationMasterVolume(HLERequestContext& ctx);
|
void GetVibrationMasterVolume(HLERequestContext& ctx);
|
||||||
|
void SetTouchScreenDefaultConfiguration(HLERequestContext& ctx);
|
||||||
|
void GetTouchScreenDefaultConfiguration(HLERequestContext& ctx);
|
||||||
|
|
||||||
std::shared_ptr<ResourceManager> GetResourceManager();
|
std::shared_ptr<ResourceManager> GetResourceManager();
|
||||||
|
|
||||||
|
|
|
@ -968,4 +968,7 @@ struct TouchScreenConfigurationForNx {
|
||||||
TouchScreenModeForNx mode{TouchScreenModeForNx::UseSystemSetting};
|
TouchScreenModeForNx mode{TouchScreenModeForNx::UseSystemSetting};
|
||||||
INSERT_PADDING_BYTES(0xF);
|
INSERT_PADDING_BYTES(0xF);
|
||||||
};
|
};
|
||||||
|
static_assert(sizeof(TouchScreenConfigurationForNx) == 0x10,
|
||||||
|
"TouchScreenConfigurationForNx has incorrect size.");
|
||||||
|
|
||||||
} // namespace Service::HID
|
} // namespace Service::HID
|
||||||
|
|
|
@ -858,6 +858,16 @@ bool Npad::IsFirmwareUpdateNeededForNotification(const u64 aruid, const s32 unkn
|
||||||
// Not Implemented
|
// Not Implemented
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Result Npad::GetLastActiveNpad(NpadIdType& out_npad_id) const {
|
||||||
|
std::scoped_lock lock{mutex};
|
||||||
|
|
||||||
|
out_npad_id = NpadIdType::Handheld;
|
||||||
|
const Result result = ResultSuccess; // last_active_npad->GetNpadIdType(out_npad_id);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
std::shared_ptr<AbstractNpadState> Npad::GetAbstractNpad(const NpadIdType npad_id) {
|
std::shared_ptr<AbstractNpadState> Npad::GetAbstractNpad(const NpadIdType npad_id) {
|
||||||
return abstract_npad_state[NpadIdTypeToIndex(npad_id)];
|
return abstract_npad_state[NpadIdTypeToIndex(npad_id)];
|
||||||
}
|
}
|
||||||
|
|
|
@ -143,6 +143,7 @@ public:
|
||||||
Result SetVibrationMasterVolume(const float volume);
|
Result SetVibrationMasterVolume(const float volume);
|
||||||
Result GetVibrationMasterVolume(float& out_volume) const;
|
Result GetVibrationMasterVolume(float& out_volume) const;
|
||||||
bool IsFirmwareUpdateNeededForNotification(const u64 aruid, const s32 unknown) const;
|
bool IsFirmwareUpdateNeededForNotification(const u64 aruid, const s32 unknown) const;
|
||||||
|
Result GetLastActiveNpad(NpadIdType& out_npad_id) const;
|
||||||
|
|
||||||
std::shared_ptr<AbstractNpadState> GetAbstractNpad(const NpadIdType npad_id);
|
std::shared_ptr<AbstractNpadState> GetAbstractNpad(const NpadIdType npad_id);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue