// C++/WinRT v2.0.250303.1 // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once #ifndef WINRT_Windows_Devices_Haptics_2_H #define WINRT_Windows_Devices_Haptics_2_H #include "winrt/impl/Windows.Devices.Haptics.1.h" WINRT_EXPORT namespace winrt::Windows::Devices::Haptics { struct HapticsControllerOverrideToken { int64_t Value {}; }; inline bool operator==(HapticsControllerOverrideToken const& left, HapticsControllerOverrideToken const& right) noexcept { return left.Value == right.Value; } inline bool operator!=(HapticsControllerOverrideToken const& left, HapticsControllerOverrideToken const& right) noexcept { return !(left == right); } struct WINRT_IMPL_EMPTY_BASES InputHapticsManager : winrt::Windows::Devices::Haptics::IInputHapticsManager { InputHapticsManager(std::nullptr_t) noexcept {} InputHapticsManager(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Devices::Haptics::IInputHapticsManager(ptr, take_ownership_from_abi) {} static auto IsSupported(); static auto IsHapticDevicePresent(); static auto GetForCurrentThread(); static auto TryGetForThread(uint32_t ThreadId); }; struct KnownSimpleHapticsControllerWaveforms { KnownSimpleHapticsControllerWaveforms() = delete; [[nodiscard]] static auto Click(); [[nodiscard]] static auto BuzzContinuous(); [[nodiscard]] static auto RumbleContinuous(); [[nodiscard]] static auto Press(); [[nodiscard]] static auto Release(); [[nodiscard]] static auto BrushContinuous(); [[nodiscard]] static auto ChiselMarkerContinuous(); [[nodiscard]] static auto EraserContinuous(); [[nodiscard]] static auto Error(); [[nodiscard]] static auto GalaxyPenContinuous(); [[nodiscard]] static auto Hover(); [[nodiscard]] static auto InkContinuous(); [[nodiscard]] static auto MarkerContinuous(); [[nodiscard]] static auto PencilContinuous(); [[nodiscard]] static auto Success(); }; struct WINRT_IMPL_EMPTY_BASES SimpleHapticsController : winrt::Windows::Devices::Haptics::ISimpleHapticsController { SimpleHapticsController(std::nullptr_t) noexcept {} SimpleHapticsController(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Devices::Haptics::ISimpleHapticsController(ptr, take_ownership_from_abi) {} }; struct WINRT_IMPL_EMPTY_BASES SimpleHapticsControllerFeedback : winrt::Windows::Devices::Haptics::ISimpleHapticsControllerFeedback { SimpleHapticsControllerFeedback(std::nullptr_t) noexcept {} SimpleHapticsControllerFeedback(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Devices::Haptics::ISimpleHapticsControllerFeedback(ptr, take_ownership_from_abi) {} }; struct WINRT_IMPL_EMPTY_BASES VibrationDevice : winrt::Windows::Devices::Haptics::IVibrationDevice { VibrationDevice(std::nullptr_t) noexcept {} VibrationDevice(void* ptr, take_ownership_from_abi_t) noexcept : winrt::Windows::Devices::Haptics::IVibrationDevice(ptr, take_ownership_from_abi) {} static auto RequestAccessAsync(); static auto GetDeviceSelector(); static auto FromIdAsync(param::hstring const& deviceId); static auto GetDefaultAsync(); static auto FindAllAsync(); }; } #endif