hid_server.h 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. // SPDX-FileCopyrightText: Copyright 2023 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-3.0-or-later
  3. #pragma once
  4. #include "core/hle/service/service.h"
  5. namespace Core {
  6. class System;
  7. }
  8. namespace Service::HID {
  9. class ResourceManager;
  10. class IHidServer final : public ServiceFramework<IHidServer> {
  11. public:
  12. explicit IHidServer(Core::System& system_, std::shared_ptr<ResourceManager> resource);
  13. ~IHidServer() override;
  14. std::shared_ptr<ResourceManager> GetResourceManager();
  15. private:
  16. void CreateAppletResource(HLERequestContext& ctx);
  17. void ActivateDebugPad(HLERequestContext& ctx);
  18. void ActivateTouchScreen(HLERequestContext& ctx);
  19. void ActivateMouse(HLERequestContext& ctx);
  20. void ActivateKeyboard(HLERequestContext& ctx);
  21. void SendKeyboardLockKeyEvent(HLERequestContext& ctx);
  22. void AcquireXpadIdEventHandle(HLERequestContext& ctx);
  23. void ReleaseXpadIdEventHandle(HLERequestContext& ctx);
  24. void ActivateXpad(HLERequestContext& ctx);
  25. void GetXpadIds(HLERequestContext& ctx);
  26. void ActivateJoyXpad(HLERequestContext& ctx);
  27. void GetJoyXpadLifoHandle(HLERequestContext& ctx);
  28. void GetJoyXpadIds(HLERequestContext& ctx);
  29. void ActivateSixAxisSensor(HLERequestContext& ctx);
  30. void DeactivateSixAxisSensor(HLERequestContext& ctx);
  31. void GetSixAxisSensorLifoHandle(HLERequestContext& ctx);
  32. void ActivateJoySixAxisSensor(HLERequestContext& ctx);
  33. void DeactivateJoySixAxisSensor(HLERequestContext& ctx);
  34. void GetJoySixAxisSensorLifoHandle(HLERequestContext& ctx);
  35. void StartSixAxisSensor(HLERequestContext& ctx);
  36. void StopSixAxisSensor(HLERequestContext& ctx);
  37. void IsSixAxisSensorFusionEnabled(HLERequestContext& ctx);
  38. void EnableSixAxisSensorFusion(HLERequestContext& ctx);
  39. void SetSixAxisSensorFusionParameters(HLERequestContext& ctx);
  40. void GetSixAxisSensorFusionParameters(HLERequestContext& ctx);
  41. void ResetSixAxisSensorFusionParameters(HLERequestContext& ctx);
  42. void SetGyroscopeZeroDriftMode(HLERequestContext& ctx);
  43. void GetGyroscopeZeroDriftMode(HLERequestContext& ctx);
  44. void ResetGyroscopeZeroDriftMode(HLERequestContext& ctx);
  45. void IsSixAxisSensorAtRest(HLERequestContext& ctx);
  46. void IsFirmwareUpdateAvailableForSixAxisSensor(HLERequestContext& ctx);
  47. void EnableSixAxisSensorUnalteredPassthrough(HLERequestContext& ctx);
  48. void IsSixAxisSensorUnalteredPassthroughEnabled(HLERequestContext& ctx);
  49. void LoadSixAxisSensorCalibrationParameter(HLERequestContext& ctx);
  50. void GetSixAxisSensorIcInformation(HLERequestContext& ctx);
  51. void ResetIsSixAxisSensorDeviceNewlyAssigned(HLERequestContext& ctx);
  52. void ActivateGesture(HLERequestContext& ctx);
  53. void SetSupportedNpadStyleSet(HLERequestContext& ctx);
  54. void GetSupportedNpadStyleSet(HLERequestContext& ctx);
  55. void SetSupportedNpadIdType(HLERequestContext& ctx);
  56. void ActivateNpad(HLERequestContext& ctx);
  57. void DeactivateNpad(HLERequestContext& ctx);
  58. void AcquireNpadStyleSetUpdateEventHandle(HLERequestContext& ctx);
  59. void DisconnectNpad(HLERequestContext& ctx);
  60. void GetPlayerLedPattern(HLERequestContext& ctx);
  61. void ActivateNpadWithRevision(HLERequestContext& ctx);
  62. void SetNpadJoyHoldType(HLERequestContext& ctx);
  63. void GetNpadJoyHoldType(HLERequestContext& ctx);
  64. void SetNpadJoyAssignmentModeSingleByDefault(HLERequestContext& ctx);
  65. void SetNpadJoyAssignmentModeSingle(HLERequestContext& ctx);
  66. void SetNpadJoyAssignmentModeDual(HLERequestContext& ctx);
  67. void MergeSingleJoyAsDualJoy(HLERequestContext& ctx);
  68. void StartLrAssignmentMode(HLERequestContext& ctx);
  69. void StopLrAssignmentMode(HLERequestContext& ctx);
  70. void SetNpadHandheldActivationMode(HLERequestContext& ctx);
  71. void GetNpadHandheldActivationMode(HLERequestContext& ctx);
  72. void SwapNpadAssignment(HLERequestContext& ctx);
  73. void IsUnintendedHomeButtonInputProtectionEnabled(HLERequestContext& ctx);
  74. void EnableUnintendedHomeButtonInputProtection(HLERequestContext& ctx);
  75. void SetNpadJoyAssignmentModeSingleWithDestination(HLERequestContext& ctx);
  76. void SetNpadAnalogStickUseCenterClamp(HLERequestContext& ctx);
  77. void SetNpadCaptureButtonAssignment(HLERequestContext& ctx);
  78. void ClearNpadCaptureButtonAssignment(HLERequestContext& ctx);
  79. void GetVibrationDeviceInfo(HLERequestContext& ctx);
  80. void SendVibrationValue(HLERequestContext& ctx);
  81. void GetActualVibrationValue(HLERequestContext& ctx);
  82. void CreateActiveVibrationDeviceList(HLERequestContext& ctx);
  83. void PermitVibration(HLERequestContext& ctx);
  84. void IsVibrationPermitted(HLERequestContext& ctx);
  85. void SendVibrationValues(HLERequestContext& ctx);
  86. void SendVibrationGcErmCommand(HLERequestContext& ctx);
  87. void GetActualVibrationGcErmCommand(HLERequestContext& ctx);
  88. void BeginPermitVibrationSession(HLERequestContext& ctx);
  89. void EndPermitVibrationSession(HLERequestContext& ctx);
  90. void IsVibrationDeviceMounted(HLERequestContext& ctx);
  91. void ActivateConsoleSixAxisSensor(HLERequestContext& ctx);
  92. void StartConsoleSixAxisSensor(HLERequestContext& ctx);
  93. void StopConsoleSixAxisSensor(HLERequestContext& ctx);
  94. void ActivateSevenSixAxisSensor(HLERequestContext& ctx);
  95. void StartSevenSixAxisSensor(HLERequestContext& ctx);
  96. void StopSevenSixAxisSensor(HLERequestContext& ctx);
  97. void InitializeSevenSixAxisSensor(HLERequestContext& ctx);
  98. void FinalizeSevenSixAxisSensor(HLERequestContext& ctx);
  99. void ResetSevenSixAxisSensorTimestamp(HLERequestContext& ctx);
  100. void IsUsbFullKeyControllerEnabled(HLERequestContext& ctx);
  101. void GetPalmaConnectionHandle(HLERequestContext& ctx);
  102. void InitializePalma(HLERequestContext& ctx);
  103. void AcquirePalmaOperationCompleteEvent(HLERequestContext& ctx);
  104. void GetPalmaOperationInfo(HLERequestContext& ctx);
  105. void PlayPalmaActivity(HLERequestContext& ctx);
  106. void SetPalmaFrModeType(HLERequestContext& ctx);
  107. void ReadPalmaStep(HLERequestContext& ctx);
  108. void EnablePalmaStep(HLERequestContext& ctx);
  109. void ResetPalmaStep(HLERequestContext& ctx);
  110. void ReadPalmaApplicationSection(HLERequestContext& ctx);
  111. void WritePalmaApplicationSection(HLERequestContext& ctx);
  112. void ReadPalmaUniqueCode(HLERequestContext& ctx);
  113. void SetPalmaUniqueCodeInvalid(HLERequestContext& ctx);
  114. void WritePalmaActivityEntry(HLERequestContext& ctx);
  115. void WritePalmaRgbLedPatternEntry(HLERequestContext& ctx);
  116. void WritePalmaWaveEntry(HLERequestContext& ctx);
  117. void SetPalmaDataBaseIdentificationVersion(HLERequestContext& ctx);
  118. void GetPalmaDataBaseIdentificationVersion(HLERequestContext& ctx);
  119. void SuspendPalmaFeature(HLERequestContext& ctx);
  120. void GetPalmaOperationResult(HLERequestContext& ctx);
  121. void ReadPalmaPlayLog(HLERequestContext& ctx);
  122. void ResetPalmaPlayLog(HLERequestContext& ctx);
  123. void SetIsPalmaAllConnectable(HLERequestContext& ctx);
  124. void SetIsPalmaPairedConnectable(HLERequestContext& ctx);
  125. void PairPalma(HLERequestContext& ctx);
  126. void SetPalmaBoostMode(HLERequestContext& ctx);
  127. void CancelWritePalmaWaveEntry(HLERequestContext& ctx);
  128. void EnablePalmaBoostMode(HLERequestContext& ctx);
  129. void GetPalmaBluetoothAddress(HLERequestContext& ctx);
  130. void SetDisallowedPalmaConnection(HLERequestContext& ctx);
  131. void SetNpadCommunicationMode(HLERequestContext& ctx);
  132. void GetNpadCommunicationMode(HLERequestContext& ctx);
  133. void SetTouchScreenConfiguration(HLERequestContext& ctx);
  134. void IsFirmwareUpdateNeededForNotification(HLERequestContext& ctx);
  135. std::shared_ptr<ResourceManager> resource_manager;
  136. };
  137. } // namespace Service::HID