59 lines
1.4 KiB
Plaintext
59 lines
1.4 KiB
Plaintext
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
||
|
* You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||
|
|
||
|
using mozilla::dom::GamepadServiceType from "mozilla/dom/GamepadMessageUtils.h";
|
||
|
using mozilla::dom::GamepadPoseState from "mozilla/dom/GamepadMessageUtils.h";
|
||
|
|
||
|
|
||
|
namespace mozilla {
|
||
|
namespace dom {
|
||
|
|
||
|
struct GamepadAdded {
|
||
|
nsString id;
|
||
|
uint32_t index;
|
||
|
// Ideally, mapping should be a GamepadMappingType
|
||
|
// But, we have dependency problems in non MOZ_GAMEPAD
|
||
|
// platforms. Therefore, we make it as an uint32_t here.
|
||
|
uint32_t mapping;
|
||
|
GamepadServiceType service_type;
|
||
|
uint32_t num_buttons;
|
||
|
uint32_t num_axes;
|
||
|
};
|
||
|
|
||
|
struct GamepadRemoved {
|
||
|
uint32_t index;
|
||
|
GamepadServiceType service_type;
|
||
|
};
|
||
|
|
||
|
struct GamepadAxisInformation {
|
||
|
uint32_t index;
|
||
|
GamepadServiceType service_type;
|
||
|
uint32_t axis;
|
||
|
double value;
|
||
|
};
|
||
|
|
||
|
struct GamepadButtonInformation {
|
||
|
uint32_t index;
|
||
|
GamepadServiceType service_type;
|
||
|
uint32_t button;
|
||
|
bool pressed;
|
||
|
double value;
|
||
|
};
|
||
|
|
||
|
struct GamepadPoseInformation {
|
||
|
uint32_t index;
|
||
|
GamepadServiceType service_type;
|
||
|
GamepadPoseState pose_state;
|
||
|
};
|
||
|
|
||
|
union GamepadChangeEvent {
|
||
|
GamepadAdded;
|
||
|
GamepadRemoved;
|
||
|
GamepadAxisInformation;
|
||
|
GamepadButtonInformation;
|
||
|
GamepadPoseInformation;
|
||
|
};
|
||
|
|
||
|
} // namespace dom
|
||
|
} // namespace mozilla
|