fake_iraw_game_controller.cc 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. // Copyright 2021 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "device/gamepad/test_support/fake_iraw_game_controller.h"
  5. #include "base/notreached.h"
  6. #include "base/strings/string_piece.h"
  7. #include "base/strings/string_piece_forward.h"
  8. #include "base/win/scoped_hstring.h"
  9. #include "device/gamepad/test_support/fake_winrt_wgi_environment.h"
  10. namespace device {
  11. FakeIRawGameController::FakeIRawGameController(int64_t gamepad_id,
  12. UINT16 hardware_product_id,
  13. UINT16 hardware_vendor_id,
  14. base::StringPiece display_name)
  15. : gamepad_id_(gamepad_id),
  16. hardware_product_id_(hardware_product_id),
  17. hardware_vendor_id_(hardware_vendor_id),
  18. display_name_(display_name) {}
  19. FakeIRawGameController::~FakeIRawGameController() = default;
  20. HRESULT WINAPI FakeIRawGameController::get_AxisCount(INT32* value) {
  21. NOTIMPLEMENTED();
  22. return E_NOTIMPL;
  23. }
  24. HRESULT WINAPI FakeIRawGameController::get_ButtonCount(INT32* value) {
  25. NOTIMPLEMENTED();
  26. return E_NOTIMPL;
  27. }
  28. HRESULT WINAPI FakeIRawGameController::get_ForceFeedbackMotors(
  29. ABI::Windows::Foundation::Collections::IVectorView<
  30. ABI::Windows::Gaming::Input::ForceFeedback::ForceFeedbackMotor*>**
  31. value) {
  32. NOTIMPLEMENTED();
  33. return E_NOTIMPL;
  34. }
  35. HRESULT WINAPI FakeIRawGameController::get_HardwareProductId(UINT16* value) {
  36. if (FakeWinrtWgiEnvironment::GetError() ==
  37. ErrorCode::kErrorWgiRawGameControllerGetHardwareProductIdFailed) {
  38. return E_FAIL;
  39. }
  40. *value = hardware_product_id_;
  41. return S_OK;
  42. }
  43. HRESULT WINAPI FakeIRawGameController::get_HardwareVendorId(UINT16* value) {
  44. if (FakeWinrtWgiEnvironment::GetError() ==
  45. ErrorCode::kErrorWgiRawGameControllerGetHardwareVendorIdFailed) {
  46. return E_FAIL;
  47. }
  48. *value = hardware_vendor_id_;
  49. return S_OK;
  50. }
  51. HRESULT WINAPI FakeIRawGameController::get_SwitchCount(INT32* value) {
  52. NOTIMPLEMENTED();
  53. return E_NOTIMPL;
  54. }
  55. HRESULT WINAPI FakeIRawGameController::GetButtonLabel(
  56. INT32 buttonIndex,
  57. ABI::Windows::Gaming::Input::GameControllerButtonLabel* value) {
  58. NOTIMPLEMENTED();
  59. return E_NOTIMPL;
  60. }
  61. HRESULT WINAPI FakeIRawGameController::GetCurrentReading(
  62. UINT32 buttonArrayLength,
  63. boolean* buttonArray,
  64. UINT32 switchArrayLength,
  65. ABI::Windows::Gaming::Input::GameControllerSwitchPosition* switchArray,
  66. UINT32 axisArrayLength,
  67. DOUBLE* axisArray,
  68. UINT64* timestamp) {
  69. NOTIMPLEMENTED();
  70. return E_NOTIMPL;
  71. }
  72. HRESULT WINAPI FakeIRawGameController::GetSwitchKind(
  73. INT32 switchIndex,
  74. ABI::Windows::Gaming::Input::GameControllerSwitchKind* value) {
  75. NOTIMPLEMENTED();
  76. return E_NOTIMPL;
  77. }
  78. HRESULT WINAPI FakeIRawGameController::get_SimpleHapticsControllers(
  79. ABI::Windows::Foundation::Collections::IVectorView<
  80. ABI::Windows::Devices::Haptics::SimpleHapticsController*>** value) {
  81. NOTIMPLEMENTED();
  82. return E_NOTIMPL;
  83. }
  84. HRESULT WINAPI FakeIRawGameController::get_NonRoamableId(HSTRING* value) {
  85. NOTIMPLEMENTED();
  86. return E_NOTIMPL;
  87. }
  88. HRESULT WINAPI FakeIRawGameController::get_DisplayName(HSTRING* value) {
  89. if (FakeWinrtWgiEnvironment::GetError() ==
  90. ErrorCode::kErrorWgiRawGameControllerGetDisplayNameFailed) {
  91. return E_FAIL;
  92. }
  93. *value = base::win::ScopedHString::Create(display_name_).release();
  94. return S_OK;
  95. }
  96. } // namespace device