diff options
author | liamwhite <liamwhite@users.noreply.github.com> | 2024-02-27 18:26:26 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-27 18:26:26 +0100 |
commit | dc94882c9062ab88d3d5de35dcb8731111baaea2 (patch) | |
tree | b00be6f4a4b2c826f116e212e15f4498e4b50504 /src/core/hle/service/hid/hid_server.h | |
parent | Merge pull request #13175 from liamwhite/asan (diff) | |
parent | service: hid: Migrate HidServer to new IPC (diff) | |
download | yuzu-master.tar yuzu-master.tar.gz yuzu-master.tar.bz2 yuzu-master.tar.lz yuzu-master.tar.xz yuzu-master.tar.zst yuzu-master.zip |
Diffstat (limited to 'src/core/hle/service/hid/hid_server.h')
-rw-r--r-- | src/core/hle/service/hid/hid_server.h | 352 |
1 files changed, 232 insertions, 120 deletions
diff --git a/src/core/hle/service/hid/hid_server.h b/src/core/hle/service/hid/hid_server.h index faf775689..cfa31c2de 100644 --- a/src/core/hle/service/hid/hid_server.h +++ b/src/core/hle/service/hid/hid_server.h @@ -6,12 +6,20 @@ #include "core/hle/service/cmif_types.h" #include "core/hle/service/service.h" #include "hid_core/hid_types.h" +#include "hid_core/resources/npad/npad_types.h" +#include "hid_core/resources/palma/palma.h" namespace Core { class System; } +namespace Kernel { +class KReadableEvent; +} + namespace Service::HID { +class IActiveVibrationDeviceList; +class IAppletResource; class ResourceManager; class HidFirmwareSettings; @@ -24,128 +32,232 @@ public: std::shared_ptr<ResourceManager> GetResourceManager(); private: - void CreateAppletResource(HLERequestContext& ctx); - void ActivateDebugPad(HLERequestContext& ctx); - void ActivateTouchScreen(HLERequestContext& ctx); - void ActivateMouse(HLERequestContext& ctx); - void ActivateKeyboard(HLERequestContext& ctx); - void SendKeyboardLockKeyEvent(HLERequestContext& ctx); - void AcquireXpadIdEventHandle(HLERequestContext& ctx); - void ReleaseXpadIdEventHandle(HLERequestContext& ctx); - void ActivateXpad(HLERequestContext& ctx); - void GetXpadIds(HLERequestContext& ctx); - void ActivateJoyXpad(HLERequestContext& ctx); - void GetJoyXpadLifoHandle(HLERequestContext& ctx); - void GetJoyXpadIds(HLERequestContext& ctx); - void ActivateSixAxisSensor(HLERequestContext& ctx); - void DeactivateSixAxisSensor(HLERequestContext& ctx); - void GetSixAxisSensorLifoHandle(HLERequestContext& ctx); - void ActivateJoySixAxisSensor(HLERequestContext& ctx); - void DeactivateJoySixAxisSensor(HLERequestContext& ctx); - void GetJoySixAxisSensorLifoHandle(HLERequestContext& ctx); - void StartSixAxisSensor(HLERequestContext& ctx); - void StopSixAxisSensor(HLERequestContext& ctx); - void IsSixAxisSensorFusionEnabled(HLERequestContext& ctx); - void EnableSixAxisSensorFusion(HLERequestContext& ctx); - void SetSixAxisSensorFusionParameters(HLERequestContext& ctx); - void GetSixAxisSensorFusionParameters(HLERequestContext& ctx); - void ResetSixAxisSensorFusionParameters(HLERequestContext& ctx); - void SetGyroscopeZeroDriftMode(HLERequestContext& ctx); - void GetGyroscopeZeroDriftMode(HLERequestContext& ctx); - void ResetGyroscopeZeroDriftMode(HLERequestContext& ctx); - void IsSixAxisSensorAtRest(HLERequestContext& ctx); - void IsFirmwareUpdateAvailableForSixAxisSensor(HLERequestContext& ctx); - void EnableSixAxisSensorUnalteredPassthrough(HLERequestContext& ctx); - void IsSixAxisSensorUnalteredPassthroughEnabled(HLERequestContext& ctx); - void LoadSixAxisSensorCalibrationParameter(HLERequestContext& ctx); - void GetSixAxisSensorIcInformation(HLERequestContext& ctx); - void ResetIsSixAxisSensorDeviceNewlyAssigned(HLERequestContext& ctx); - void ActivateGesture(HLERequestContext& ctx); - void SetSupportedNpadStyleSet(HLERequestContext& ctx); - void GetSupportedNpadStyleSet(HLERequestContext& ctx); - void SetSupportedNpadIdType(HLERequestContext& ctx); - void ActivateNpad(HLERequestContext& ctx); - void DeactivateNpad(HLERequestContext& ctx); - void AcquireNpadStyleSetUpdateEventHandle(HLERequestContext& ctx); - void DisconnectNpad(HLERequestContext& ctx); + Result CreateAppletResource(OutInterface<IAppletResource> out_applet_resource, + ClientAppletResourceUserId aruid); + Result ActivateDebugPad(ClientAppletResourceUserId aruid); + Result ActivateTouchScreen(ClientAppletResourceUserId aruid); + Result ActivateMouse(ClientAppletResourceUserId aruid); + Result ActivateKeyboard(ClientAppletResourceUserId aruid); + Result SendKeyboardLockKeyEvent(u32 flags); + Result AcquireXpadIdEventHandle(OutCopyHandle<Kernel::KReadableEvent> out_event, + ClientAppletResourceUserId aruid); + Result ReleaseXpadIdEventHandle(ClientAppletResourceUserId aruid); + Result ActivateXpad(u32 basic_xpad_id, ClientAppletResourceUserId aruid); + Result GetXpadIds(Out<u64> out_count, OutArray<u32, BufferAttr_HipcPointer> out_basic_pad_ids); + Result ActivateJoyXpad(u32 joy_xpad_id); + Result GetJoyXpadLifoHandle(OutCopyHandle<Kernel::KSharedMemory> out_shared_memory_handle, + u32 joy_xpad_id); + Result GetJoyXpadIds(Out<s64> out_basic_xpad_id_count); + Result ActivateSixAxisSensor(u32 joy_xpad_id); + Result DeactivateSixAxisSensor(u32 joy_xpad_id); + Result GetSixAxisSensorLifoHandle(OutCopyHandle<Kernel::KSharedMemory> out_shared_memory_handle, + u32 joy_xpad_id); + Result ActivateJoySixAxisSensor(u32 joy_xpad_id); + Result DeactivateJoySixAxisSensor(u32 joy_xpad_id); + Result GetJoySixAxisSensorLifoHandle( + OutCopyHandle<Kernel::KSharedMemory> out_shared_memory_handle, u32 joy_xpad_id); + Result StartSixAxisSensor(Core::HID::SixAxisSensorHandle sixaxis_handle, + ClientAppletResourceUserId aruid); + Result StopSixAxisSensor(Core::HID::SixAxisSensorHandle sixaxis_handle, + ClientAppletResourceUserId aruid); + Result IsSixAxisSensorFusionEnabled(Out<bool> out_is_enabled, + Core::HID::SixAxisSensorHandle sixaxis_handle, + ClientAppletResourceUserId aruid); + Result EnableSixAxisSensorFusion(bool is_enabled, Core::HID::SixAxisSensorHandle sixaxis_handle, + ClientAppletResourceUserId aruid); + Result SetSixAxisSensorFusionParameters(Core::HID::SixAxisSensorHandle sixaxis_handle, + Core::HID::SixAxisSensorFusionParameters sixaxis_fusion, + ClientAppletResourceUserId aruid); + Result GetSixAxisSensorFusionParameters( + Out<Core::HID::SixAxisSensorFusionParameters> out_fusion_parameters, + Core::HID::SixAxisSensorHandle sixaxis_handle, ClientAppletResourceUserId aruid); + Result ResetSixAxisSensorFusionParameters(Core::HID::SixAxisSensorHandle sixaxis_handle, + ClientAppletResourceUserId aruid); + Result SetGyroscopeZeroDriftMode(Core::HID::SixAxisSensorHandle sixaxis_handle, + Core::HID::GyroscopeZeroDriftMode drift_mode, + ClientAppletResourceUserId aruid); + Result GetGyroscopeZeroDriftMode(Out<Core::HID::GyroscopeZeroDriftMode> out_drift_mode, + Core::HID::SixAxisSensorHandle sixaxis_handle, + ClientAppletResourceUserId aruid); + Result ResetGyroscopeZeroDriftMode(Core::HID::SixAxisSensorHandle sixaxis_handle, + ClientAppletResourceUserId aruid); + Result IsSixAxisSensorAtRest(Out<bool> out_is_at_rest, + Core::HID::SixAxisSensorHandle sixaxis_handle, + ClientAppletResourceUserId aruid); + Result IsFirmwareUpdateAvailableForSixAxisSensor(Out<bool> out_is_firmware_available, + Core::HID::SixAxisSensorHandle sixaxis_handle, + ClientAppletResourceUserId aruid); + Result EnableSixAxisSensorUnalteredPassthrough(bool is_enabled, + Core::HID::SixAxisSensorHandle sixaxis_handle, + ClientAppletResourceUserId aruid); + Result IsSixAxisSensorUnalteredPassthroughEnabled(Out<bool> out_is_enabled, + Core::HID::SixAxisSensorHandle sixaxis_handle, + ClientAppletResourceUserId aruid); + Result LoadSixAxisSensorCalibrationParameter( + OutLargeData<Core::HID::SixAxisSensorCalibrationParameter, BufferAttr_HipcMapAlias> + out_calibration, + Core::HID::SixAxisSensorHandle sixaxis_handle, ClientAppletResourceUserId aruid); + Result GetSixAxisSensorIcInformation( + OutLargeData<Core::HID::SixAxisSensorIcInformation, BufferAttr_HipcPointer> + out_ic_information, + Core::HID::SixAxisSensorHandle sixaxis_handle, ClientAppletResourceUserId aruid); + Result ResetIsSixAxisSensorDeviceNewlyAssigned(Core::HID::SixAxisSensorHandle sixaxis_handle, + ClientAppletResourceUserId aruid); + Result ActivateGesture(u32 basic_gesture_id, ClientAppletResourceUserId aruid); + Result SetSupportedNpadStyleSet(Core::HID::NpadStyleSet supported_style_set, + ClientAppletResourceUserId aruid); + Result GetSupportedNpadStyleSet(Out<Core::HID::NpadStyleSet> out_supported_style_set, + ClientAppletResourceUserId aruid); + Result SetSupportedNpadIdType( + ClientAppletResourceUserId aruid, + InArray<Core::HID::NpadIdType, BufferAttr_HipcPointer> supported_npad_list); + Result ActivateNpad(ClientAppletResourceUserId aruid); + Result DeactivateNpad(ClientAppletResourceUserId aruid); + Result AcquireNpadStyleSetUpdateEventHandle(OutCopyHandle<Kernel::KReadableEvent> out_event, + Core::HID::NpadIdType npad_id, + ClientAppletResourceUserId aruid, u64 unknown); + Result DisconnectNpad(Core::HID::NpadIdType npad_id, ClientAppletResourceUserId aruid); Result GetPlayerLedPattern(Out<Core::HID::LedPattern> out_led_pattern, Core::HID::NpadIdType npad_id); - void ActivateNpadWithRevision(HLERequestContext& ctx); - void SetNpadJoyHoldType(HLERequestContext& ctx); - void GetNpadJoyHoldType(HLERequestContext& ctx); - void SetNpadJoyAssignmentModeSingleByDefault(HLERequestContext& ctx); - void SetNpadJoyAssignmentModeSingle(HLERequestContext& ctx); - void SetNpadJoyAssignmentModeDual(HLERequestContext& ctx); - void MergeSingleJoyAsDualJoy(HLERequestContext& ctx); - void StartLrAssignmentMode(HLERequestContext& ctx); - void StopLrAssignmentMode(HLERequestContext& ctx); - void SetNpadHandheldActivationMode(HLERequestContext& ctx); - void GetNpadHandheldActivationMode(HLERequestContext& ctx); - void SwapNpadAssignment(HLERequestContext& ctx); - void IsUnintendedHomeButtonInputProtectionEnabled(HLERequestContext& ctx); - void EnableUnintendedHomeButtonInputProtection(HLERequestContext& ctx); - void SetNpadJoyAssignmentModeSingleWithDestination(HLERequestContext& ctx); - void SetNpadAnalogStickUseCenterClamp(HLERequestContext& ctx); - void SetNpadCaptureButtonAssignment(HLERequestContext& ctx); - void ClearNpadCaptureButtonAssignment(HLERequestContext& ctx); - void GetVibrationDeviceInfo(HLERequestContext& ctx); - void SendVibrationValue(HLERequestContext& ctx); - void GetActualVibrationValue(HLERequestContext& ctx); - void CreateActiveVibrationDeviceList(HLERequestContext& ctx); - void PermitVibration(HLERequestContext& ctx); - void IsVibrationPermitted(HLERequestContext& ctx); - void SendVibrationValues(HLERequestContext& ctx); - void SendVibrationGcErmCommand(HLERequestContext& ctx); - void GetActualVibrationGcErmCommand(HLERequestContext& ctx); - void BeginPermitVibrationSession(HLERequestContext& ctx); - void EndPermitVibrationSession(HLERequestContext& ctx); - void IsVibrationDeviceMounted(HLERequestContext& ctx); - void SendVibrationValueInBool(HLERequestContext& ctx); - void ActivateConsoleSixAxisSensor(HLERequestContext& ctx); - void StartConsoleSixAxisSensor(HLERequestContext& ctx); - void StopConsoleSixAxisSensor(HLERequestContext& ctx); - void ActivateSevenSixAxisSensor(HLERequestContext& ctx); - void StartSevenSixAxisSensor(HLERequestContext& ctx); - void StopSevenSixAxisSensor(HLERequestContext& ctx); - void InitializeSevenSixAxisSensor(HLERequestContext& ctx); - void FinalizeSevenSixAxisSensor(HLERequestContext& ctx); - void ResetSevenSixAxisSensorTimestamp(HLERequestContext& ctx); - void IsUsbFullKeyControllerEnabled(HLERequestContext& ctx); - void GetPalmaConnectionHandle(HLERequestContext& ctx); - void InitializePalma(HLERequestContext& ctx); - void AcquirePalmaOperationCompleteEvent(HLERequestContext& ctx); - void GetPalmaOperationInfo(HLERequestContext& ctx); - void PlayPalmaActivity(HLERequestContext& ctx); - void SetPalmaFrModeType(HLERequestContext& ctx); - void ReadPalmaStep(HLERequestContext& ctx); - void EnablePalmaStep(HLERequestContext& ctx); - void ResetPalmaStep(HLERequestContext& ctx); - void ReadPalmaApplicationSection(HLERequestContext& ctx); - void WritePalmaApplicationSection(HLERequestContext& ctx); - void ReadPalmaUniqueCode(HLERequestContext& ctx); - void SetPalmaUniqueCodeInvalid(HLERequestContext& ctx); - void WritePalmaActivityEntry(HLERequestContext& ctx); - void WritePalmaRgbLedPatternEntry(HLERequestContext& ctx); - void WritePalmaWaveEntry(HLERequestContext& ctx); - void SetPalmaDataBaseIdentificationVersion(HLERequestContext& ctx); - void GetPalmaDataBaseIdentificationVersion(HLERequestContext& ctx); - void SuspendPalmaFeature(HLERequestContext& ctx); - void GetPalmaOperationResult(HLERequestContext& ctx); - void ReadPalmaPlayLog(HLERequestContext& ctx); - void ResetPalmaPlayLog(HLERequestContext& ctx); - void SetIsPalmaAllConnectable(HLERequestContext& ctx); - void SetIsPalmaPairedConnectable(HLERequestContext& ctx); - void PairPalma(HLERequestContext& ctx); - void SetPalmaBoostMode(HLERequestContext& ctx); - void CancelWritePalmaWaveEntry(HLERequestContext& ctx); - void EnablePalmaBoostMode(HLERequestContext& ctx); - void GetPalmaBluetoothAddress(HLERequestContext& ctx); - void SetDisallowedPalmaConnection(HLERequestContext& ctx); - void SetNpadCommunicationMode(HLERequestContext& ctx); - void GetNpadCommunicationMode(HLERequestContext& ctx); - void SetTouchScreenConfiguration(HLERequestContext& ctx); - void IsFirmwareUpdateNeededForNotification(HLERequestContext& ctx); - void SetTouchScreenResolution(HLERequestContext& ctx); + Result ActivateNpadWithRevision(NpadRevision revision, ClientAppletResourceUserId aruid); + Result SetNpadJoyHoldType(ClientAppletResourceUserId aruid, NpadJoyHoldType hold_type); + Result GetNpadJoyHoldType(Out<NpadJoyHoldType> out_hold_type, ClientAppletResourceUserId aruid); + Result SetNpadJoyAssignmentModeSingleByDefault(Core::HID::NpadIdType npad_id, + ClientAppletResourceUserId aruid); + Result SetNpadJoyAssignmentModeSingle(Core::HID::NpadIdType npad_id, + ClientAppletResourceUserId aruid, + NpadJoyDeviceType npad_joy_device_type); + Result SetNpadJoyAssignmentModeDual(Core::HID::NpadIdType npad_id, + ClientAppletResourceUserId aruid); + Result MergeSingleJoyAsDualJoy(Core::HID::NpadIdType npad_id_1, Core::HID::NpadIdType npad_id_2, + ClientAppletResourceUserId aruid); + Result StartLrAssignmentMode(ClientAppletResourceUserId aruid); + Result StopLrAssignmentMode(ClientAppletResourceUserId aruid); + Result SetNpadHandheldActivationMode(ClientAppletResourceUserId aruid, + NpadHandheldActivationMode activation_mode); + Result GetNpadHandheldActivationMode(Out<NpadHandheldActivationMode> out_activation_mode, + ClientAppletResourceUserId aruid); + Result SwapNpadAssignment(Core::HID::NpadIdType npad_id_1, Core::HID::NpadIdType npad_id_2, + ClientAppletResourceUserId aruid); + Result IsUnintendedHomeButtonInputProtectionEnabled(Out<bool> out_is_enabled, + Core::HID::NpadIdType npad_id, + ClientAppletResourceUserId aruid); + Result EnableUnintendedHomeButtonInputProtection(bool is_enabled, Core::HID::NpadIdType npad_id, + ClientAppletResourceUserId aruid); + Result SetNpadJoyAssignmentModeSingleWithDestination(Out<bool> out_is_reassigned, + Out<Core::HID::NpadIdType> out_new_npad_id, + Core::HID::NpadIdType npad_id, + ClientAppletResourceUserId aruid, + NpadJoyDeviceType npad_joy_device_type); + Result SetNpadAnalogStickUseCenterClamp(bool use_center_clamp, + ClientAppletResourceUserId aruid); + Result SetNpadCaptureButtonAssignment(Core::HID::NpadStyleSet npad_styleset, + ClientAppletResourceUserId aruid, + Core::HID::NpadButton button); + Result ClearNpadCaptureButtonAssignment(ClientAppletResourceUserId aruid); + Result GetVibrationDeviceInfo(Out<Core::HID::VibrationDeviceInfo> out_vibration_device_info, + Core::HID::VibrationDeviceHandle vibration_device_handle); + Result SendVibrationValue(Core::HID::VibrationDeviceHandle vibration_device_handle, + Core::HID::VibrationValue vibration_value, + ClientAppletResourceUserId aruid); + Result GetActualVibrationValue(Out<Core::HID::VibrationValue> out_vibration_value, + Core::HID::VibrationDeviceHandle vibration_device_handle, + ClientAppletResourceUserId aruid); + Result CreateActiveVibrationDeviceList(OutInterface<IActiveVibrationDeviceList> out_interface); + Result PermitVibration(bool can_vibrate); + Result IsVibrationPermitted(Out<bool> out_is_permitted); + Result SendVibrationValues( + ClientAppletResourceUserId aruid, + InArray<Core::HID::VibrationDeviceHandle, BufferAttr_HipcPointer> vibration_handles, + InArray<Core::HID::VibrationValue, BufferAttr_HipcPointer> vibration_values); + Result SendVibrationGcErmCommand(Core::HID::VibrationDeviceHandle vibration_device_handle, + ClientAppletResourceUserId aruid, + Core::HID::VibrationGcErmCommand gc_erm_command); + Result GetActualVibrationGcErmCommand(Out<Core::HID::VibrationGcErmCommand> out_gc_erm_command, + Core::HID::VibrationDeviceHandle vibration_device_handle, + ClientAppletResourceUserId aruid); + Result BeginPermitVibrationSession(ClientAppletResourceUserId aruid); + Result EndPermitVibrationSession(ClientAppletResourceUserId aruid); + Result IsVibrationDeviceMounted(Out<bool> out_is_mounted, + Core::HID::VibrationDeviceHandle vibration_device_handle, + ClientAppletResourceUserId aruid); + Result SendVibrationValueInBool(bool is_vibrating, + Core::HID::VibrationDeviceHandle vibration_device_handle, + ClientAppletResourceUserId aruid); + Result ActivateConsoleSixAxisSensor(ClientAppletResourceUserId aruid); + Result StartConsoleSixAxisSensor(Core::HID::ConsoleSixAxisSensorHandle console_sixaxis_handle, + ClientAppletResourceUserId aruid); + Result StopConsoleSixAxisSensor(Core::HID::ConsoleSixAxisSensorHandle console_sixaxis_handle, + ClientAppletResourceUserId aruid); + Result ActivateSevenSixAxisSensor(ClientAppletResourceUserId aruid); + Result StartSevenSixAxisSensor(ClientAppletResourceUserId aruid); + Result StopSevenSixAxisSensor(ClientAppletResourceUserId aruid); + Result InitializeSevenSixAxisSensor(ClientAppletResourceUserId aruid, u64 t_mem_1_size, + u64 t_mem_2_size, + InCopyHandle<Kernel::KTransferMemory> t_mem_1, + InCopyHandle<Kernel::KTransferMemory> t_mem_2); + Result FinalizeSevenSixAxisSensor(ClientAppletResourceUserId aruid); + Result ResetSevenSixAxisSensorTimestamp(ClientAppletResourceUserId aruid); + Result IsUsbFullKeyControllerEnabled(Out<bool> out_is_enabled, + ClientAppletResourceUserId aruid); + Result GetPalmaConnectionHandle(Out<Palma::PalmaConnectionHandle> out_handle, + Core::HID::NpadIdType npad_id, + ClientAppletResourceUserId aruid); + Result InitializePalma(Palma::PalmaConnectionHandle connection_handle); + Result AcquirePalmaOperationCompleteEvent(OutCopyHandle<Kernel::KReadableEvent> out_event, + Palma::PalmaConnectionHandle connection_handle); + Result GetPalmaOperationInfo(Out<Palma::PalmaOperationType> out_operation_type, + Palma::PalmaConnectionHandle connection_handle, + OutBuffer<BufferAttr_HipcMapAlias> out_data); + Result PlayPalmaActivity(Palma::PalmaConnectionHandle connection_handle, u64 palma_activity); + Result SetPalmaFrModeType(Palma::PalmaConnectionHandle connection_handle, + Palma::PalmaFrModeType fr_mode); + Result ReadPalmaStep(Palma::PalmaConnectionHandle connection_handle); + Result EnablePalmaStep(bool is_enabled, Palma::PalmaConnectionHandle connection_handle); + Result ResetPalmaStep(Palma::PalmaConnectionHandle connection_handle); + Result ReadPalmaApplicationSection(Palma::PalmaConnectionHandle connection_handle, u64 offset, + u64 size); + Result WritePalmaApplicationSection( + Palma::PalmaConnectionHandle connection_handle, u64 offset, u64 size, + InLargeData<Palma::PalmaApplicationSection, BufferAttr_HipcPointer> data); + Result ReadPalmaUniqueCode(Palma::PalmaConnectionHandle connection_handle); + Result SetPalmaUniqueCodeInvalid(Palma::PalmaConnectionHandle connection_handle); + Result WritePalmaActivityEntry(Palma::PalmaConnectionHandle connection_handle, + Palma::PalmaActivityEntry activity_entry); + Result WritePalmaRgbLedPatternEntry(Palma::PalmaConnectionHandle connection_handle, u64 unknown, + InBuffer<BufferAttr_HipcMapAlias> led_pattern); + Result WritePalmaWaveEntry(Palma::PalmaConnectionHandle connection_handle, + Palma::PalmaWaveSet wave_set, u64 unknown, u64 t_mem_size, u64 size, + InCopyHandle<Kernel::KTransferMemory> t_mem); + Result SetPalmaDataBaseIdentificationVersion(s32 database_id_version, + Palma::PalmaConnectionHandle connection_handle); + Result GetPalmaDataBaseIdentificationVersion(Palma::PalmaConnectionHandle connection_handle); + Result SuspendPalmaFeature(Palma::PalmaFeature feature, + Palma::PalmaConnectionHandle connection_handle); + Result GetPalmaOperationResult(Palma::PalmaConnectionHandle connection_handle); + Result ReadPalmaPlayLog(u16 unknown, Palma::PalmaConnectionHandle connection_handle); + Result ResetPalmaPlayLog(u16 unknown, Palma::PalmaConnectionHandle connection_handle); + Result SetIsPalmaAllConnectable(bool is_palma_all_connectable, ClientAppletResourceUserId arui); + Result SetIsPalmaPairedConnectable(bool is_palma_paired_connectable, + ClientAppletResourceUserId aruid); + Result PairPalma(Palma::PalmaConnectionHandle connection_handle); + Result SetPalmaBoostMode(bool is_enabled); + Result CancelWritePalmaWaveEntry(Palma::PalmaConnectionHandle connection_handle); + Result EnablePalmaBoostMode(bool is_enabled, ClientAppletResourceUserId aruid); + Result GetPalmaBluetoothAddress(Out<Palma::Address> out_bt_address, + Palma::PalmaConnectionHandle connection_handle); + Result SetDisallowedPalmaConnection( + ClientAppletResourceUserId aruid, + InArray<Palma::Address, BufferAttr_HipcPointer> disallowed_address); + Result SetNpadCommunicationMode(ClientAppletResourceUserId aruid, + NpadCommunicationMode communication_mode); + Result GetNpadCommunicationMode(Out<NpadCommunicationMode> out_communication_mode, + ClientAppletResourceUserId aruid); + Result SetTouchScreenConfiguration(Core::HID::TouchScreenConfigurationForNx touchscreen_config, + ClientAppletResourceUserId aruid); + Result IsFirmwareUpdateNeededForNotification(Out<bool> out_is_firmware_update_needed, + s32 unknown, ClientAppletResourceUserId aruid); + Result SetTouchScreenResolution(u32 width, u32 height, ClientAppletResourceUserId aruid); std::shared_ptr<ResourceManager> resource_manager; std::shared_ptr<HidFirmwareSettings> firmware_settings; |