gesture.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // SPDX-FileCopyrightText: Copyright 2024 yuzu Emulator Project
  2. // SPDX-License-Identifier: GPL-3.0-or-later
  3. #include "hid_core/resources/touch_screen/gesture.h"
  4. #include "hid_core/resources/touch_screen/touch_screen_resource.h"
  5. namespace Service::HID {
  6. Gesture::Gesture(std::shared_ptr<TouchResource> resource) : touch_resource{resource} {}
  7. Gesture::~Gesture() = default;
  8. Result Gesture::Activate() {
  9. std::scoped_lock lock{mutex};
  10. // TODO: Result result = CreateThread();
  11. Result result = ResultSuccess;
  12. if (result.IsError()) {
  13. return result;
  14. }
  15. result = touch_resource->ActivateGesture();
  16. if (result.IsError()) {
  17. // TODO: StopThread();
  18. }
  19. return result;
  20. }
  21. Result Gesture::Activate(u64 aruid, u32 basic_gesture_id) {
  22. std::scoped_lock lock{mutex};
  23. return touch_resource->ActivateGesture(aruid, basic_gesture_id);
  24. }
  25. Result Gesture::Deactivate() {
  26. std::scoped_lock lock{mutex};
  27. const auto result = touch_resource->DeactivateGesture();
  28. if (result.IsError()) {
  29. return result;
  30. }
  31. // TODO: return StopThread();
  32. return ResultSuccess;
  33. }
  34. Result Gesture::IsActive(bool& out_is_active) const {
  35. out_is_active = touch_resource->IsGestureActive();
  36. return ResultSuccess;
  37. }
  38. } // namespace Service::HID