|
|
|
@ -136,131 +136,135 @@ private: |
|
|
|
}; |
|
|
|
|
|
|
|
std::shared_ptr<IAppletResource> Hid::GetAppletResource() { |
|
|
|
if (applet_resource == nullptr) { |
|
|
|
applet_resource = std::make_shared<IAppletResource>(); |
|
|
|
} |
|
|
|
|
|
|
|
return applet_resource; |
|
|
|
} |
|
|
|
|
|
|
|
Hid::Hid() : ServiceFramework("hid") { |
|
|
|
// clang-format off
|
|
|
|
static const FunctionInfo functions[] = { |
|
|
|
{0, &Hid::CreateAppletResource, "CreateAppletResource"}, |
|
|
|
{1, &Hid::ActivateDebugPad, "ActivateDebugPad"}, |
|
|
|
{11, &Hid::ActivateTouchScreen, "ActivateTouchScreen"}, |
|
|
|
{21, &Hid::ActivateMouse, "ActivateMouse"}, |
|
|
|
{31, &Hid::ActivateKeyboard, "ActivateKeyboard"}, |
|
|
|
{32, nullptr, "SendKeyboardLockKeyEvent"}, |
|
|
|
{40, nullptr, "AcquireXpadIdEventHandle"}, |
|
|
|
{41, nullptr, "ReleaseXpadIdEventHandle"}, |
|
|
|
{51, &Hid::ActivateXpad, "ActivateXpad"}, |
|
|
|
{55, nullptr, "GetXpadIds"}, |
|
|
|
{56, nullptr, "ActivateJoyXpad"}, |
|
|
|
{58, nullptr, "GetJoyXpadLifoHandle"}, |
|
|
|
{59, nullptr, "GetJoyXpadIds"}, |
|
|
|
{60, nullptr, "ActivateSixAxisSensor"}, |
|
|
|
{61, nullptr, "DeactivateSixAxisSensor"}, |
|
|
|
{62, nullptr, "GetSixAxisSensorLifoHandle"}, |
|
|
|
{63, nullptr, "ActivateJoySixAxisSensor"}, |
|
|
|
{64, nullptr, "DeactivateJoySixAxisSensor"}, |
|
|
|
{65, nullptr, "GetJoySixAxisSensorLifoHandle"}, |
|
|
|
{66, &Hid::StartSixAxisSensor, "StartSixAxisSensor"}, |
|
|
|
{67, &Hid::StopSixAxisSensor, "StopSixAxisSensor"}, |
|
|
|
{68, nullptr, "IsSixAxisSensorFusionEnabled"}, |
|
|
|
{69, nullptr, "EnableSixAxisSensorFusion"}, |
|
|
|
{70, nullptr, "SetSixAxisSensorFusionParameters"}, |
|
|
|
{71, nullptr, "GetSixAxisSensorFusionParameters"}, |
|
|
|
{72, nullptr, "ResetSixAxisSensorFusionParameters"}, |
|
|
|
{73, nullptr, "SetAccelerometerParameters"}, |
|
|
|
{74, nullptr, "GetAccelerometerParameters"}, |
|
|
|
{75, nullptr, "ResetAccelerometerParameters"}, |
|
|
|
{76, nullptr, "SetAccelerometerPlayMode"}, |
|
|
|
{77, nullptr, "GetAccelerometerPlayMode"}, |
|
|
|
{78, nullptr, "ResetAccelerometerPlayMode"}, |
|
|
|
{79, &Hid::SetGyroscopeZeroDriftMode, "SetGyroscopeZeroDriftMode"}, |
|
|
|
{80, nullptr, "GetGyroscopeZeroDriftMode"}, |
|
|
|
{81, nullptr, "ResetGyroscopeZeroDriftMode"}, |
|
|
|
{82, &Hid::IsSixAxisSensorAtRest, "IsSixAxisSensorAtRest"}, |
|
|
|
{83, nullptr, "IsFirmwareUpdateAvailableForSixAxisSensor"}, |
|
|
|
{91, &Hid::ActivateGesture, "ActivateGesture"}, |
|
|
|
{100, &Hid::SetSupportedNpadStyleSet, "SetSupportedNpadStyleSet"}, |
|
|
|
{101, &Hid::GetSupportedNpadStyleSet, "GetSupportedNpadStyleSet"}, |
|
|
|
{102, &Hid::SetSupportedNpadIdType, "SetSupportedNpadIdType"}, |
|
|
|
{103, &Hid::ActivateNpad, "ActivateNpad"}, |
|
|
|
{104, nullptr, "DeactivateNpad"}, |
|
|
|
{106, &Hid::AcquireNpadStyleSetUpdateEventHandle, "AcquireNpadStyleSetUpdateEventHandle"}, |
|
|
|
{107, &Hid::DisconnectNpad, "DisconnectNpad"}, |
|
|
|
{108, &Hid::GetPlayerLedPattern, "GetPlayerLedPattern"}, |
|
|
|
{109, &Hid::ActivateNpadWithRevision, "ActivateNpadWithRevision"}, |
|
|
|
{120, &Hid::SetNpadJoyHoldType, "SetNpadJoyHoldType"}, |
|
|
|
{121, &Hid::GetNpadJoyHoldType, "GetNpadJoyHoldType"}, |
|
|
|
{122, &Hid::SetNpadJoyAssignmentModeSingleByDefault, "SetNpadJoyAssignmentModeSingleByDefault"}, |
|
|
|
{123, nullptr, "SetNpadJoyAssignmentModeSingleByDefault"}, |
|
|
|
{124, &Hid::SetNpadJoyAssignmentModeDual, "SetNpadJoyAssignmentModeDual"}, |
|
|
|
{125, &Hid::MergeSingleJoyAsDualJoy, "MergeSingleJoyAsDualJoy"}, |
|
|
|
{126, nullptr, "StartLrAssignmentMode"}, |
|
|
|
{127, nullptr, "StopLrAssignmentMode"}, |
|
|
|
{128, &Hid::SetNpadHandheldActivationMode, "SetNpadHandheldActivationMode"}, |
|
|
|
{129, nullptr, "GetNpadHandheldActivationMode"}, |
|
|
|
{130, nullptr, "SwapNpadAssignment"}, |
|
|
|
{131, nullptr, "IsUnintendedHomeButtonInputProtectionEnabled"}, |
|
|
|
{132, nullptr, "EnableUnintendedHomeButtonInputProtection"}, |
|
|
|
{133, nullptr, "SetNpadJoyAssignmentModeSingleWithDestination"}, |
|
|
|
{200, &Hid::GetVibrationDeviceInfo, "GetVibrationDeviceInfo"}, |
|
|
|
{201, &Hid::SendVibrationValue, "SendVibrationValue"}, |
|
|
|
{202, &Hid::GetActualVibrationValue, "GetActualVibrationValue"}, |
|
|
|
{203, &Hid::CreateActiveVibrationDeviceList, "CreateActiveVibrationDeviceList"}, |
|
|
|
{204, nullptr, "PermitVibration"}, |
|
|
|
{205, nullptr, "IsVibrationPermitted"}, |
|
|
|
{206, &Hid::SendVibrationValues, "SendVibrationValues"}, |
|
|
|
{207, nullptr, "SendVibrationGcErmCommand"}, |
|
|
|
{208, nullptr, "GetActualVibrationGcErmCommand"}, |
|
|
|
{209, &Hid::BeginPermitVibrationSession, "BeginPermitVibrationSession"}, |
|
|
|
{210, &Hid::EndPermitVibrationSession, "EndPermitVibrationSession"}, |
|
|
|
{300, &Hid::ActivateConsoleSixAxisSensor, "ActivateConsoleSixAxisSensor"}, |
|
|
|
{301, &Hid::StartConsoleSixAxisSensor, "StartConsoleSixAxisSensor"}, |
|
|
|
{302, nullptr, "StopConsoleSixAxisSensor"}, |
|
|
|
{303, nullptr, "ActivateSevenSixAxisSensor"}, |
|
|
|
{304, nullptr, "StartSevenSixAxisSensor"}, |
|
|
|
{305, nullptr, "StopSevenSixAxisSensor"}, |
|
|
|
{306, nullptr, "InitializeSevenSixAxisSensor"}, |
|
|
|
{307, nullptr, "FinalizeSevenSixAxisSensor"}, |
|
|
|
{308, nullptr, "SetSevenSixAxisSensorFusionStrength"}, |
|
|
|
{309, nullptr, "GetSevenSixAxisSensorFusionStrength"}, |
|
|
|
{310, nullptr, "ResetSevenSixAxisSensorTimestamp"}, |
|
|
|
{400, nullptr, "IsUsbFullKeyControllerEnabled"}, |
|
|
|
{401, nullptr, "EnableUsbFullKeyController"}, |
|
|
|
{402, nullptr, "IsUsbFullKeyControllerConnected"}, |
|
|
|
{403, nullptr, "HasBattery"}, |
|
|
|
{404, nullptr, "HasLeftRightBattery"}, |
|
|
|
{405, nullptr, "GetNpadInterfaceType"}, |
|
|
|
{406, nullptr, "GetNpadLeftRightInterfaceType"}, |
|
|
|
{500, nullptr, "GetPalmaConnectionHandle"}, |
|
|
|
{501, nullptr, "InitializePalma"}, |
|
|
|
{502, nullptr, "AcquirePalmaOperationCompleteEvent"}, |
|
|
|
{503, nullptr, "GetPalmaOperationInfo"}, |
|
|
|
{504, nullptr, "PlayPalmaActivity"}, |
|
|
|
{505, nullptr, "SetPalmaFrModeType"}, |
|
|
|
{506, nullptr, "ReadPalmaStep"}, |
|
|
|
{507, nullptr, "EnablePalmaStep"}, |
|
|
|
{508, nullptr, "ResetPalmaStep"}, |
|
|
|
{509, nullptr, "ReadPalmaApplicationSection"}, |
|
|
|
{510, nullptr, "WritePalmaApplicationSection"}, |
|
|
|
{511, nullptr, "ReadPalmaUniqueCode"}, |
|
|
|
{512, nullptr, "SetPalmaUniqueCodeInvalid"}, |
|
|
|
{513, nullptr, "WritePalmaActivityEntry"}, |
|
|
|
{514, nullptr, "WritePalmaRgbLedPatternEntry"}, |
|
|
|
{515, nullptr, "WritePalmaWaveEntry"}, |
|
|
|
{516, nullptr, "SetPalmaDataBaseIdentificationVersion"}, |
|
|
|
{517, nullptr, "GetPalmaDataBaseIdentificationVersion"}, |
|
|
|
{518, nullptr, "SuspendPalmaFeature"}, |
|
|
|
{519, nullptr, "GetPalmaOperationResult"}, |
|
|
|
{520, nullptr, "ReadPalmaPlayLog"}, |
|
|
|
{521, nullptr, "ResetPalmaPlayLog"}, |
|
|
|
{522, &Hid::SetIsPalmaAllConnectable, "SetIsPalmaAllConnectable"}, |
|
|
|
{523, nullptr, "SetIsPalmaPairedConnectable"}, |
|
|
|
{524, nullptr, "PairPalma"}, |
|
|
|
{525, &Hid::SetPalmaBoostMode, "SetPalmaBoostMode"}, |
|
|
|
{1000, nullptr, "SetNpadCommunicationMode"}, |
|
|
|
{1001, nullptr, "GetNpadCommunicationMode"}, |
|
|
|
}; |
|
|
|
static const FunctionInfo functions[] = { |
|
|
|
{0, &Hid::CreateAppletResource, "CreateAppletResource"}, |
|
|
|
{1, &Hid::ActivateDebugPad, "ActivateDebugPad"}, |
|
|
|
{11, &Hid::ActivateTouchScreen, "ActivateTouchScreen"}, |
|
|
|
{21, &Hid::ActivateMouse, "ActivateMouse"}, |
|
|
|
{31, &Hid::ActivateKeyboard, "ActivateKeyboard"}, |
|
|
|
{32, nullptr, "SendKeyboardLockKeyEvent"}, |
|
|
|
{40, nullptr, "AcquireXpadIdEventHandle"}, |
|
|
|
{41, nullptr, "ReleaseXpadIdEventHandle"}, |
|
|
|
{51, &Hid::ActivateXpad, "ActivateXpad"}, |
|
|
|
{55, nullptr, "GetXpadIds"}, |
|
|
|
{56, nullptr, "ActivateJoyXpad"}, |
|
|
|
{58, nullptr, "GetJoyXpadLifoHandle"}, |
|
|
|
{59, nullptr, "GetJoyXpadIds"}, |
|
|
|
{60, nullptr, "ActivateSixAxisSensor"}, |
|
|
|
{61, nullptr, "DeactivateSixAxisSensor"}, |
|
|
|
{62, nullptr, "GetSixAxisSensorLifoHandle"}, |
|
|
|
{63, nullptr, "ActivateJoySixAxisSensor"}, |
|
|
|
{64, nullptr, "DeactivateJoySixAxisSensor"}, |
|
|
|
{65, nullptr, "GetJoySixAxisSensorLifoHandle"}, |
|
|
|
{66, &Hid::StartSixAxisSensor, "StartSixAxisSensor"}, |
|
|
|
{67, &Hid::StopSixAxisSensor, "StopSixAxisSensor"}, |
|
|
|
{68, nullptr, "IsSixAxisSensorFusionEnabled"}, |
|
|
|
{69, nullptr, "EnableSixAxisSensorFusion"}, |
|
|
|
{70, nullptr, "SetSixAxisSensorFusionParameters"}, |
|
|
|
{71, nullptr, "GetSixAxisSensorFusionParameters"}, |
|
|
|
{72, nullptr, "ResetSixAxisSensorFusionParameters"}, |
|
|
|
{73, nullptr, "SetAccelerometerParameters"}, |
|
|
|
{74, nullptr, "GetAccelerometerParameters"}, |
|
|
|
{75, nullptr, "ResetAccelerometerParameters"}, |
|
|
|
{76, nullptr, "SetAccelerometerPlayMode"}, |
|
|
|
{77, nullptr, "GetAccelerometerPlayMode"}, |
|
|
|
{78, nullptr, "ResetAccelerometerPlayMode"}, |
|
|
|
{79, &Hid::SetGyroscopeZeroDriftMode, "SetGyroscopeZeroDriftMode"}, |
|
|
|
{80, nullptr, "GetGyroscopeZeroDriftMode"}, |
|
|
|
{81, nullptr, "ResetGyroscopeZeroDriftMode"}, |
|
|
|
{82, &Hid::IsSixAxisSensorAtRest, "IsSixAxisSensorAtRest"}, |
|
|
|
{83, nullptr, "IsFirmwareUpdateAvailableForSixAxisSensor"}, |
|
|
|
{91, &Hid::ActivateGesture, "ActivateGesture"}, |
|
|
|
{100, &Hid::SetSupportedNpadStyleSet, "SetSupportedNpadStyleSet"}, |
|
|
|
{101, &Hid::GetSupportedNpadStyleSet, "GetSupportedNpadStyleSet"}, |
|
|
|
{102, &Hid::SetSupportedNpadIdType, "SetSupportedNpadIdType"}, |
|
|
|
{103, &Hid::ActivateNpad, "ActivateNpad"}, |
|
|
|
{104, nullptr, "DeactivateNpad"}, |
|
|
|
{106, &Hid::AcquireNpadStyleSetUpdateEventHandle, "AcquireNpadStyleSetUpdateEventHandle"}, |
|
|
|
{107, &Hid::DisconnectNpad, "DisconnectNpad"}, |
|
|
|
{108, &Hid::GetPlayerLedPattern, "GetPlayerLedPattern"}, |
|
|
|
{109, &Hid::ActivateNpadWithRevision, "ActivateNpadWithRevision"}, |
|
|
|
{120, &Hid::SetNpadJoyHoldType, "SetNpadJoyHoldType"}, |
|
|
|
{121, &Hid::GetNpadJoyHoldType, "GetNpadJoyHoldType"}, |
|
|
|
{122, &Hid::SetNpadJoyAssignmentModeSingleByDefault, "SetNpadJoyAssignmentModeSingleByDefault"}, |
|
|
|
{123, nullptr, "SetNpadJoyAssignmentModeSingleByDefault"}, |
|
|
|
{124, &Hid::SetNpadJoyAssignmentModeDual, "SetNpadJoyAssignmentModeDual"}, |
|
|
|
{125, &Hid::MergeSingleJoyAsDualJoy, "MergeSingleJoyAsDualJoy"}, |
|
|
|
{126, nullptr, "StartLrAssignmentMode"}, |
|
|
|
{127, nullptr, "StopLrAssignmentMode"}, |
|
|
|
{128, &Hid::SetNpadHandheldActivationMode, "SetNpadHandheldActivationMode"}, |
|
|
|
{129, nullptr, "GetNpadHandheldActivationMode"}, |
|
|
|
{130, nullptr, "SwapNpadAssignment"}, |
|
|
|
{131, nullptr, "IsUnintendedHomeButtonInputProtectionEnabled"}, |
|
|
|
{132, nullptr, "EnableUnintendedHomeButtonInputProtection"}, |
|
|
|
{133, nullptr, "SetNpadJoyAssignmentModeSingleWithDestination"}, |
|
|
|
{200, &Hid::GetVibrationDeviceInfo, "GetVibrationDeviceInfo"}, |
|
|
|
{201, &Hid::SendVibrationValue, "SendVibrationValue"}, |
|
|
|
{202, &Hid::GetActualVibrationValue, "GetActualVibrationValue"}, |
|
|
|
{203, &Hid::CreateActiveVibrationDeviceList, "CreateActiveVibrationDeviceList"}, |
|
|
|
{204, nullptr, "PermitVibration"}, |
|
|
|
{205, nullptr, "IsVibrationPermitted"}, |
|
|
|
{206, &Hid::SendVibrationValues, "SendVibrationValues"}, |
|
|
|
{207, nullptr, "SendVibrationGcErmCommand"}, |
|
|
|
{208, nullptr, "GetActualVibrationGcErmCommand"}, |
|
|
|
{209, &Hid::BeginPermitVibrationSession, "BeginPermitVibrationSession"}, |
|
|
|
{210, &Hid::EndPermitVibrationSession, "EndPermitVibrationSession"}, |
|
|
|
{300, &Hid::ActivateConsoleSixAxisSensor, "ActivateConsoleSixAxisSensor"}, |
|
|
|
{301, &Hid::StartConsoleSixAxisSensor, "StartConsoleSixAxisSensor"}, |
|
|
|
{302, nullptr, "StopConsoleSixAxisSensor"}, |
|
|
|
{303, nullptr, "ActivateSevenSixAxisSensor"}, |
|
|
|
{304, nullptr, "StartSevenSixAxisSensor"}, |
|
|
|
{305, nullptr, "StopSevenSixAxisSensor"}, |
|
|
|
{306, nullptr, "InitializeSevenSixAxisSensor"}, |
|
|
|
{307, nullptr, "FinalizeSevenSixAxisSensor"}, |
|
|
|
{308, nullptr, "SetSevenSixAxisSensorFusionStrength"}, |
|
|
|
{309, nullptr, "GetSevenSixAxisSensorFusionStrength"}, |
|
|
|
{310, nullptr, "ResetSevenSixAxisSensorTimestamp"}, |
|
|
|
{400, nullptr, "IsUsbFullKeyControllerEnabled"}, |
|
|
|
{401, nullptr, "EnableUsbFullKeyController"}, |
|
|
|
{402, nullptr, "IsUsbFullKeyControllerConnected"}, |
|
|
|
{403, nullptr, "HasBattery"}, |
|
|
|
{404, nullptr, "HasLeftRightBattery"}, |
|
|
|
{405, nullptr, "GetNpadInterfaceType"}, |
|
|
|
{406, nullptr, "GetNpadLeftRightInterfaceType"}, |
|
|
|
{500, nullptr, "GetPalmaConnectionHandle"}, |
|
|
|
{501, nullptr, "InitializePalma"}, |
|
|
|
{502, nullptr, "AcquirePalmaOperationCompleteEvent"}, |
|
|
|
{503, nullptr, "GetPalmaOperationInfo"}, |
|
|
|
{504, nullptr, "PlayPalmaActivity"}, |
|
|
|
{505, nullptr, "SetPalmaFrModeType"}, |
|
|
|
{506, nullptr, "ReadPalmaStep"}, |
|
|
|
{507, nullptr, "EnablePalmaStep"}, |
|
|
|
{508, nullptr, "ResetPalmaStep"}, |
|
|
|
{509, nullptr, "ReadPalmaApplicationSection"}, |
|
|
|
{510, nullptr, "WritePalmaApplicationSection"}, |
|
|
|
{511, nullptr, "ReadPalmaUniqueCode"}, |
|
|
|
{512, nullptr, "SetPalmaUniqueCodeInvalid"}, |
|
|
|
{513, nullptr, "WritePalmaActivityEntry"}, |
|
|
|
{514, nullptr, "WritePalmaRgbLedPatternEntry"}, |
|
|
|
{515, nullptr, "WritePalmaWaveEntry"}, |
|
|
|
{516, nullptr, "SetPalmaDataBaseIdentificationVersion"}, |
|
|
|
{517, nullptr, "GetPalmaDataBaseIdentificationVersion"}, |
|
|
|
{518, nullptr, "SuspendPalmaFeature"}, |
|
|
|
{519, nullptr, "GetPalmaOperationResult"}, |
|
|
|
{520, nullptr, "ReadPalmaPlayLog"}, |
|
|
|
{521, nullptr, "ResetPalmaPlayLog"}, |
|
|
|
{522, &Hid::SetIsPalmaAllConnectable, "SetIsPalmaAllConnectable"}, |
|
|
|
{523, nullptr, "SetIsPalmaPairedConnectable"}, |
|
|
|
{524, nullptr, "PairPalma"}, |
|
|
|
{525, &Hid::SetPalmaBoostMode, "SetPalmaBoostMode"}, |
|
|
|
{1000, nullptr, "SetNpadCommunicationMode"}, |
|
|
|
{1001, nullptr, "GetNpadCommunicationMode"}, |
|
|
|
}; |
|
|
|
// clang-format on
|
|
|
|
|
|
|
|
RegisterHandlers(functions); |
|
|
|
|