mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-09-22 09:18:55 +00:00
LibWeb: Add tests for Gamepad API by utilising virtual SDL3 joysticks
Some checks failed
CI / macOS, arm64, Sanitizer, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer, Clang (push) Waiting to run
Package the js repl as a binary artifact / Linux, arm64 (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / Linux, x86_64 (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
Build Dev Container Image / build (push) Has been cancelled
Some checks failed
CI / macOS, arm64, Sanitizer, Clang (push) Waiting to run
CI / Linux, x86_64, Fuzzers, Clang (push) Waiting to run
CI / Linux, x86_64, Sanitizer, GNU (push) Waiting to run
CI / Linux, x86_64, Sanitizer, Clang (push) Waiting to run
Package the js repl as a binary artifact / Linux, arm64 (push) Waiting to run
Package the js repl as a binary artifact / macOS, arm64 (push) Waiting to run
Package the js repl as a binary artifact / Linux, x86_64 (push) Waiting to run
Run test262 and test-wasm / run_and_update_results (push) Waiting to run
Lint Code / lint (push) Waiting to run
Label PRs with merge conflicts / auto-labeler (push) Waiting to run
Push notes / build (push) Waiting to run
Build Dev Container Image / build (push) Has been cancelled
This commit is contained in:
parent
74e0483ea5
commit
9adf27f009
Notes:
github-actions[bot]
2025-09-01 19:11:51 +00:00
Author: https://github.com/Lubrsi
Commit: 9adf27f009
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/5902
Reviewed-by: https://github.com/gmta
Reviewed-by: https://github.com/trflynn89
28 changed files with 897 additions and 0 deletions
|
@ -675,6 +675,7 @@ set(SOURCES
|
||||||
Infra/JSON.cpp
|
Infra/JSON.cpp
|
||||||
Infra/Strings.cpp
|
Infra/Strings.cpp
|
||||||
Internals/InternalAnimationTimeline.cpp
|
Internals/InternalAnimationTimeline.cpp
|
||||||
|
Internals/InternalGamepad.cpp
|
||||||
Internals/Internals.cpp
|
Internals/Internals.cpp
|
||||||
Internals/InternalsBase.cpp
|
Internals/InternalsBase.cpp
|
||||||
Internals/WebUI.cpp
|
Internals/WebUI.cpp
|
||||||
|
|
|
@ -805,6 +805,7 @@ class RequestList;
|
||||||
namespace Web::Internals {
|
namespace Web::Internals {
|
||||||
|
|
||||||
class Internals;
|
class Internals;
|
||||||
|
class InternalGamepad;
|
||||||
class WebUI;
|
class WebUI;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
178
Libraries/LibWeb/Internals/InternalGamepad.cpp
Normal file
178
Libraries/LibWeb/Internals/InternalGamepad.cpp
Normal file
|
@ -0,0 +1,178 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025, Luke Wilde <luke@ladybird.org>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <LibWeb/Bindings/InternalGamepadPrototype.h>
|
||||||
|
#include <LibWeb/Bindings/Intrinsics.h>
|
||||||
|
#include <LibWeb/Internals/InternalGamepad.h>
|
||||||
|
|
||||||
|
namespace Web::Internals {
|
||||||
|
|
||||||
|
GC_DEFINE_ALLOCATOR(InternalGamepad);
|
||||||
|
|
||||||
|
static constexpr Array<SDL_GamepadButton, 15> BUTTONS = {
|
||||||
|
SDL_GAMEPAD_BUTTON_SOUTH,
|
||||||
|
SDL_GAMEPAD_BUTTON_EAST,
|
||||||
|
SDL_GAMEPAD_BUTTON_WEST,
|
||||||
|
SDL_GAMEPAD_BUTTON_NORTH,
|
||||||
|
SDL_GAMEPAD_BUTTON_LEFT_SHOULDER,
|
||||||
|
SDL_GAMEPAD_BUTTON_RIGHT_SHOULDER,
|
||||||
|
SDL_GAMEPAD_BUTTON_BACK,
|
||||||
|
SDL_GAMEPAD_BUTTON_START,
|
||||||
|
SDL_GAMEPAD_BUTTON_LEFT_STICK,
|
||||||
|
SDL_GAMEPAD_BUTTON_RIGHT_STICK,
|
||||||
|
SDL_GAMEPAD_BUTTON_DPAD_UP,
|
||||||
|
SDL_GAMEPAD_BUTTON_DPAD_DOWN,
|
||||||
|
SDL_GAMEPAD_BUTTON_DPAD_LEFT,
|
||||||
|
SDL_GAMEPAD_BUTTON_DPAD_RIGHT,
|
||||||
|
SDL_GAMEPAD_BUTTON_GUIDE,
|
||||||
|
};
|
||||||
|
|
||||||
|
static constexpr Array<SDL_GamepadAxis, 4> AXES {
|
||||||
|
SDL_GAMEPAD_AXIS_LEFTX,
|
||||||
|
SDL_GAMEPAD_AXIS_LEFTY,
|
||||||
|
SDL_GAMEPAD_AXIS_RIGHTX,
|
||||||
|
SDL_GAMEPAD_AXIS_RIGHTY,
|
||||||
|
};
|
||||||
|
|
||||||
|
static constexpr Array<SDL_GamepadAxis, 2> TRIGGERS {
|
||||||
|
SDL_GAMEPAD_AXIS_LEFT_TRIGGER,
|
||||||
|
SDL_GAMEPAD_AXIS_RIGHT_TRIGGER,
|
||||||
|
};
|
||||||
|
|
||||||
|
static constexpr char const* VIRTUAL_GAMEPAD_NAME = "Ladybird Virtual Gamepad";
|
||||||
|
|
||||||
|
static SDLCALL bool rumble(void* user_data, u16 low_frequency_rumble, u16 high_frequency_rumble)
|
||||||
|
{
|
||||||
|
auto* internal_gamepad = static_cast<InternalGamepad*>(user_data);
|
||||||
|
internal_gamepad->received_rumble(low_frequency_rumble, high_frequency_rumble);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static SDLCALL bool rumble_triggers(void* user_data, u16 left_rumble, u16 right_rumble)
|
||||||
|
{
|
||||||
|
auto* internal_gamepad = static_cast<InternalGamepad*>(user_data);
|
||||||
|
internal_gamepad->received_rumble_triggers(left_rumble, right_rumble);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
InternalGamepad::InternalGamepad(JS::Realm& realm)
|
||||||
|
: Bindings::PlatformObject(realm)
|
||||||
|
{
|
||||||
|
SDL_VirtualJoystickDesc virtual_joystick_desc {};
|
||||||
|
SDL_INIT_INTERFACE(&virtual_joystick_desc);
|
||||||
|
|
||||||
|
virtual_joystick_desc.type = SDL_JOYSTICK_TYPE_GAMEPAD;
|
||||||
|
virtual_joystick_desc.naxes = AXES.size() + TRIGGERS.size();
|
||||||
|
virtual_joystick_desc.nbuttons = BUTTONS.size();
|
||||||
|
|
||||||
|
u32 button_mask = 0;
|
||||||
|
for (auto const button : BUTTONS)
|
||||||
|
button_mask |= 1 << button;
|
||||||
|
|
||||||
|
virtual_joystick_desc.button_mask = button_mask;
|
||||||
|
|
||||||
|
u32 axis_mask = 0;
|
||||||
|
for (auto const axis : AXES)
|
||||||
|
axis_mask |= 1 << axis;
|
||||||
|
|
||||||
|
for (auto const trigger : TRIGGERS)
|
||||||
|
axis_mask |= 1 << trigger;
|
||||||
|
|
||||||
|
virtual_joystick_desc.axis_mask = axis_mask;
|
||||||
|
|
||||||
|
virtual_joystick_desc.name = VIRTUAL_GAMEPAD_NAME;
|
||||||
|
virtual_joystick_desc.userdata = this;
|
||||||
|
virtual_joystick_desc.Rumble = rumble;
|
||||||
|
virtual_joystick_desc.RumbleTriggers = rumble_triggers;
|
||||||
|
|
||||||
|
m_sdl_joystick_id = SDL_AttachVirtualJoystick(&virtual_joystick_desc);
|
||||||
|
m_sdl_joystick = SDL_OpenJoystick(m_sdl_joystick_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
InternalGamepad::~InternalGamepad() = default;
|
||||||
|
|
||||||
|
void InternalGamepad::initialize(JS::Realm& realm)
|
||||||
|
{
|
||||||
|
WEB_SET_PROTOTYPE_FOR_INTERFACE(InternalGamepad);
|
||||||
|
Base::initialize(realm);
|
||||||
|
}
|
||||||
|
|
||||||
|
void InternalGamepad::visit_edges(Cell::Visitor& visitor)
|
||||||
|
{
|
||||||
|
Base::visit_edges(visitor);
|
||||||
|
visitor.visit(m_received_rumble_effects);
|
||||||
|
visitor.visit(m_received_rumble_trigger_effects);
|
||||||
|
}
|
||||||
|
|
||||||
|
void InternalGamepad::finalize()
|
||||||
|
{
|
||||||
|
disconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
Array<SDL_GamepadButton, 15> const& InternalGamepad::buttons()
|
||||||
|
{
|
||||||
|
return BUTTONS;
|
||||||
|
}
|
||||||
|
|
||||||
|
Array<SDL_GamepadAxis, 4> const& InternalGamepad::axes()
|
||||||
|
{
|
||||||
|
return AXES;
|
||||||
|
}
|
||||||
|
|
||||||
|
Array<SDL_GamepadAxis, 2> const& InternalGamepad::triggers()
|
||||||
|
{
|
||||||
|
return TRIGGERS;
|
||||||
|
}
|
||||||
|
|
||||||
|
void InternalGamepad::set_button(int button, bool down)
|
||||||
|
{
|
||||||
|
SDL_SetJoystickVirtualButton(m_sdl_joystick, button, down);
|
||||||
|
}
|
||||||
|
|
||||||
|
void InternalGamepad::set_axis(int axis, short value)
|
||||||
|
{
|
||||||
|
SDL_SetJoystickVirtualAxis(m_sdl_joystick, axis, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
GC::RootVector<JS::Object*> InternalGamepad::get_received_rumble_effects() const
|
||||||
|
{
|
||||||
|
GC::RootVector<JS::Object*> received_rumble_effects { realm().heap() };
|
||||||
|
for (auto const received_rumble_effect : m_received_rumble_effects)
|
||||||
|
received_rumble_effects.append(received_rumble_effect);
|
||||||
|
return received_rumble_effects;
|
||||||
|
}
|
||||||
|
|
||||||
|
GC::RootVector<JS::Object*> InternalGamepad::get_received_rumble_trigger_effects() const
|
||||||
|
{
|
||||||
|
GC::RootVector<JS::Object*> received_rumble_trigger_effects { realm().heap() };
|
||||||
|
for (auto const received_rumble_trigger_effect : m_received_rumble_trigger_effects)
|
||||||
|
received_rumble_trigger_effects.append(received_rumble_trigger_effect);
|
||||||
|
return received_rumble_trigger_effects;
|
||||||
|
}
|
||||||
|
|
||||||
|
void InternalGamepad::received_rumble(u16 low_frequency_rumble, u16 high_frequency_rumble)
|
||||||
|
{
|
||||||
|
auto object = JS::Object::create(realm(), nullptr);
|
||||||
|
object->define_direct_property("lowFrequencyRumble"_utf16, JS::Value(low_frequency_rumble), JS::default_attributes);
|
||||||
|
object->define_direct_property("highFrequencyRumble"_utf16, JS::Value(high_frequency_rumble), JS::default_attributes);
|
||||||
|
m_received_rumble_effects.append(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
void InternalGamepad::received_rumble_triggers(u16 left_rumble, u16 right_rumble)
|
||||||
|
{
|
||||||
|
auto object = JS::Object::create(realm(), nullptr);
|
||||||
|
object->define_direct_property("leftRumble"_utf16, JS::Value(left_rumble), JS::default_attributes);
|
||||||
|
object->define_direct_property("rightRumble"_utf16, JS::Value(right_rumble), JS::default_attributes);
|
||||||
|
m_received_rumble_trigger_effects.append(object);
|
||||||
|
}
|
||||||
|
|
||||||
|
void InternalGamepad::disconnect()
|
||||||
|
{
|
||||||
|
SDL_CloseJoystick(m_sdl_joystick);
|
||||||
|
SDL_DetachVirtualJoystick(m_sdl_joystick_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
51
Libraries/LibWeb/Internals/InternalGamepad.h
Normal file
51
Libraries/LibWeb/Internals/InternalGamepad.h
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2025, Luke Wilde <luke@ladybird.org>
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: BSD-2-Clause
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <LibWeb/Bindings/PlatformObject.h>
|
||||||
|
#include <SDL3/SDL_gamepad.h>
|
||||||
|
#include <SDL3/SDL_joystick.h>
|
||||||
|
|
||||||
|
namespace Web::Internals {
|
||||||
|
|
||||||
|
class InternalGamepad : public Bindings::PlatformObject {
|
||||||
|
WEB_PLATFORM_OBJECT(InternalGamepad, Bindings::PlatformObject);
|
||||||
|
GC_DECLARE_ALLOCATOR(InternalGamepad);
|
||||||
|
|
||||||
|
public:
|
||||||
|
static GC::Ref<InternalGamepad> create(JS::Realm&);
|
||||||
|
|
||||||
|
virtual ~InternalGamepad() override;
|
||||||
|
|
||||||
|
Array<SDL_GamepadButton, 15> const& buttons();
|
||||||
|
Array<SDL_GamepadAxis, 4> const& axes();
|
||||||
|
Array<SDL_GamepadAxis, 2> const& triggers();
|
||||||
|
|
||||||
|
void set_button(int button, bool down);
|
||||||
|
void set_axis(int axis, short value);
|
||||||
|
|
||||||
|
GC::RootVector<JS::Object*> get_received_rumble_effects() const;
|
||||||
|
GC::RootVector<JS::Object*> get_received_rumble_trigger_effects() const;
|
||||||
|
|
||||||
|
void received_rumble(u16 low_frequency_rumble, u16 high_frequency_rumble);
|
||||||
|
void received_rumble_triggers(u16 left_rumble, u16 right_rumble);
|
||||||
|
|
||||||
|
void disconnect();
|
||||||
|
|
||||||
|
private:
|
||||||
|
InternalGamepad(JS::Realm&);
|
||||||
|
virtual void initialize(JS::Realm&) override;
|
||||||
|
virtual void visit_edges(Cell::Visitor&) override;
|
||||||
|
virtual void finalize() override;
|
||||||
|
|
||||||
|
SDL_JoystickID m_sdl_joystick_id;
|
||||||
|
SDL_Joystick* m_sdl_joystick;
|
||||||
|
Vector<GC::Ref<JS::Object>> m_received_rumble_effects;
|
||||||
|
Vector<GC::Ref<JS::Object>> m_received_rumble_trigger_effects;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
14
Libraries/LibWeb/Internals/InternalGamepad.idl
Normal file
14
Libraries/LibWeb/Internals/InternalGamepad.idl
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
[Exposed=Nobody]
|
||||||
|
interface InternalGamepad {
|
||||||
|
readonly attribute sequence<long> buttons;
|
||||||
|
readonly attribute sequence<long> axes;
|
||||||
|
readonly attribute sequence<long> triggers;
|
||||||
|
|
||||||
|
undefined setButton(long button, boolean down);
|
||||||
|
undefined setAxis(long axis, short value);
|
||||||
|
|
||||||
|
sequence<object> getReceivedRumbleEffects();
|
||||||
|
sequence<object> getReceivedRumbleTriggerEffects();
|
||||||
|
|
||||||
|
undefined disconnect();
|
||||||
|
};
|
|
@ -18,6 +18,7 @@
|
||||||
#include <LibWeb/DOMURL/DOMURL.h>
|
#include <LibWeb/DOMURL/DOMURL.h>
|
||||||
#include <LibWeb/HTML/HTMLElement.h>
|
#include <LibWeb/HTML/HTMLElement.h>
|
||||||
#include <LibWeb/HTML/Window.h>
|
#include <LibWeb/HTML/Window.h>
|
||||||
|
#include <LibWeb/Internals/InternalGamepad.h>
|
||||||
#include <LibWeb/Internals/Internals.h>
|
#include <LibWeb/Internals/Internals.h>
|
||||||
#include <LibWeb/Page/InputEvent.h>
|
#include <LibWeb/Page/InputEvent.h>
|
||||||
#include <LibWeb/Page/Page.h>
|
#include <LibWeb/Page/Page.h>
|
||||||
|
@ -330,4 +331,15 @@ GC::Ptr<DOM::ShadowRoot> Internals::get_shadow_root(GC::Ref<DOM::Element> elemen
|
||||||
return element->shadow_root();
|
return element->shadow_root();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Internals::handle_sdl_input_events()
|
||||||
|
{
|
||||||
|
page().handle_sdl_input_events();
|
||||||
|
}
|
||||||
|
|
||||||
|
GC::Ref<InternalGamepad> Internals::connect_virtual_gamepad()
|
||||||
|
{
|
||||||
|
auto& realm = this->realm();
|
||||||
|
return realm.create<InternalGamepad>(realm);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,6 +69,10 @@ public:
|
||||||
|
|
||||||
GC::Ptr<DOM::ShadowRoot> get_shadow_root(GC::Ref<DOM::Element>);
|
GC::Ptr<DOM::ShadowRoot> get_shadow_root(GC::Ref<DOM::Element>);
|
||||||
|
|
||||||
|
void handle_sdl_input_events();
|
||||||
|
|
||||||
|
GC::Ref<InternalGamepad> connect_virtual_gamepad();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
explicit Internals(JS::Realm&);
|
explicit Internals(JS::Realm&);
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
#import <DOM/EventTarget.idl>
|
#import <DOM/EventTarget.idl>
|
||||||
#import <HTML/HTMLElement.idl>
|
#import <HTML/HTMLElement.idl>
|
||||||
#import <Internals/InternalAnimationTimeline.idl>
|
#import <Internals/InternalAnimationTimeline.idl>
|
||||||
|
#import <Internals/InternalGamepad.idl>
|
||||||
|
|
||||||
[Exposed=Nobody]
|
[Exposed=Nobody]
|
||||||
interface Internals {
|
interface Internals {
|
||||||
|
@ -58,4 +59,8 @@ interface Internals {
|
||||||
// Returns the shadow root of the element, if it has one, even if it's not normally accessible to JS.
|
// Returns the shadow root of the element, if it has one, even if it's not normally accessible to JS.
|
||||||
ShadowRoot? getShadowRoot(Element element);
|
ShadowRoot? getShadowRoot(Element element);
|
||||||
|
|
||||||
|
undefined handleSDLInputEvents();
|
||||||
|
|
||||||
|
InternalGamepad connectVirtualGamepad();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -307,6 +307,7 @@ libweb_js_bindings(IndexedDB/IDBRequest)
|
||||||
libweb_js_bindings(IndexedDB/IDBTransaction)
|
libweb_js_bindings(IndexedDB/IDBTransaction)
|
||||||
libweb_js_bindings(IndexedDB/IDBVersionChangeEvent)
|
libweb_js_bindings(IndexedDB/IDBVersionChangeEvent)
|
||||||
libweb_js_bindings(Internals/InternalAnimationTimeline)
|
libweb_js_bindings(Internals/InternalAnimationTimeline)
|
||||||
|
libweb_js_bindings(Internals/InternalGamepad)
|
||||||
libweb_js_bindings(Internals/Internals)
|
libweb_js_bindings(Internals/Internals)
|
||||||
libweb_js_bindings(Internals/WebUI)
|
libweb_js_bindings(Internals/WebUI)
|
||||||
libweb_js_bindings(IntersectionObserver/IntersectionObserver)
|
libweb_js_bindings(IntersectionObserver/IntersectionObserver)
|
||||||
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
Before pressing button 0: []
|
||||||
|
Received gamepadconnected event for 'Ladybird Virtual Gamepad' at index 0
|
||||||
|
After pressing button 0: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 1: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 1: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 2: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 2: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 3: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 3: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 9: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 9: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 10: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 10: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 4: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 4: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 6: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 6: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 7: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 7: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 8: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 8: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 11: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 11: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 12: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 12: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 13: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 13: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 14: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 14: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before pressing button 5: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After pressing button 5: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":1}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After unpressed button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Received gamepaddisconnected event for 'Ladybird Virtual Gamepad' at index 0
|
|
@ -0,0 +1,5 @@
|
||||||
|
Initial: []
|
||||||
|
Before user gesture of pressing a button: []
|
||||||
|
Received gamepadconnected event for 'Ladybird Virtual Gamepad' at index 0
|
||||||
|
After user gesture of pressing a button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Received gamepaddisconnected event for 'Ladybird Virtual Gamepad' at index 0
|
|
@ -0,0 +1,15 @@
|
||||||
|
Initial: []
|
||||||
|
Before user gesture of moving axis to -0.1 (-3262): []
|
||||||
|
After user gesture of moving axis to -0.1 (-3262): []
|
||||||
|
Before user gesture of moving axis to -0.2 (-6525): []
|
||||||
|
After user gesture of moving axis to -0.2 (-6525): []
|
||||||
|
Before user gesture of moving axis to -0.3 (-9788): []
|
||||||
|
After user gesture of moving axis to -0.3 (-9788): []
|
||||||
|
Before user gesture of moving axis to -0.4 (-13051): []
|
||||||
|
After user gesture of moving axis to -0.4 (-13051): []
|
||||||
|
Before user gesture of moving axis to -0.5 (-16314): []
|
||||||
|
After user gesture of moving axis to -0.5 (-16314): []
|
||||||
|
Before user gesture of moving axis to -0.503 (-16411): []
|
||||||
|
Received gamepadconnected event for 'Ladybird Virtual Gamepad' at index 0
|
||||||
|
After user gesture of moving axis to -0.503 (-16411): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[-0.5008163576714733,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Received gamepaddisconnected event for 'Ladybird Virtual Gamepad' at index 0
|
|
@ -0,0 +1,15 @@
|
||||||
|
Initial: []
|
||||||
|
Before user gesture of moving axis to 0.1 (3262): []
|
||||||
|
After user gesture of moving axis to 0.1 (3262): []
|
||||||
|
Before user gesture of moving axis to 0.2 (6525): []
|
||||||
|
After user gesture of moving axis to 0.2 (6525): []
|
||||||
|
Before user gesture of moving axis to 0.3 (9788): []
|
||||||
|
After user gesture of moving axis to 0.3 (9788): []
|
||||||
|
Before user gesture of moving axis to 0.4 (13051): []
|
||||||
|
After user gesture of moving axis to 0.4 (13051): []
|
||||||
|
Before user gesture of moving axis to 0.5 (16314): []
|
||||||
|
After user gesture of moving axis to 0.5 (16314): []
|
||||||
|
Before user gesture of moving axis to 0.503 (16411): []
|
||||||
|
Received gamepadconnected event for 'Ladybird Virtual Gamepad' at index 0
|
||||||
|
After user gesture of moving axis to 0.503 (16411): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.5008468757152666,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Received gamepaddisconnected event for 'Ladybird Virtual Gamepad' at index 0
|
|
@ -0,0 +1,16 @@
|
||||||
|
Before moving trigger axis 4 to -1 (-32628): []
|
||||||
|
After moving trigger axis 4 to -1 (-32628): []
|
||||||
|
Before moving trigger axis 4 to -0.98 (-31976): []
|
||||||
|
After moving trigger axis 4 to -0.98 (-31976): []
|
||||||
|
Before moving trigger axis 4 to -0.96 (-31323): []
|
||||||
|
After moving trigger axis 4 to -0.96 (-31323): []
|
||||||
|
Before moving trigger axis 4 to -0.94 (-30671): []
|
||||||
|
After moving trigger axis 4 to -0.94 (-30671): []
|
||||||
|
Before moving trigger axis 4 to -0.92 (-30018): []
|
||||||
|
After moving trigger axis 4 to -0.92 (-30018): []
|
||||||
|
Before moving trigger axis 4 to -0.9 (-29366): []
|
||||||
|
After moving trigger axis 4 to -0.9 (-29366): []
|
||||||
|
Before moving trigger axis 4 to -0.8033 (-26211): []
|
||||||
|
Received gamepadconnected event for 'Ladybird Virtual Gamepad' at index 0
|
||||||
|
After moving trigger axis 4 to -0.8033 (-26211): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.1000396740623188},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Received gamepaddisconnected event for 'Ladybird Virtual Gamepad' at index 0
|
9
Tests/LibWeb/Text/expected/GamepadAPI/gamepad-iframe.txt
Normal file
9
Tests/LibWeb/Text/expected/GamepadAPI/gamepad-iframe.txt
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
Before pressing a button: []
|
||||||
|
Received gamepadconnected event for 'Ladybird Virtual Gamepad' at index 0
|
||||||
|
After pressing a button: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 0 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 0 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.7965972381170368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Received dual rumble effects: [{"lowFrequencyRumble":32767,"highFrequencyRumble":32767},{"lowFrequencyRumble":0,"highFrequencyRumble":0}]
|
||||||
|
Received trigger rumble effects: [{"leftRumble":32767,"rightRumble":32767},{"leftRumble":0,"rightRumble":0}]
|
||||||
|
Received gamepaddisconnected event for 'Ladybird Virtual Gamepad' at index 0
|
||||||
|
After disconnecting gamepad: []
|
|
@ -0,0 +1,5 @@
|
||||||
|
Before pressing button in top level: []
|
||||||
|
Received gamepadconnected event for 'Ladybird Virtual Gamepad' at index 0
|
||||||
|
After pressing button in top level: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Gamepad should not be immediately exposed in the new navigable: []
|
||||||
|
Gamepad is now exposed in the new navigable: [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.000015259021896696368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":true,"touched":true,"value":1},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
|
@ -0,0 +1,74 @@
|
||||||
|
Before moving axis 0 to 1 (32628): []
|
||||||
|
Received gamepadconnected event for 'Ladybird Virtual Gamepad' at index 0
|
||||||
|
After moving axis 0 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 0 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 0 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.7965972381170368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 0 to 0.4 (13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.7965972381170368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 0 to 0.4 (13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.3983062485694666,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 0 to -0.4 (-13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.3983062485694666,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 0 to -0.4 (-13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[-0.39827573052567333,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 0 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[-0.39827573052567333,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 0 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.7965972381170368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 0 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.7965972381170368,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 0 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 1 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.000015259021896696368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 1 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 1 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 1 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.7965972381170368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 1 to 0.4 (13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.7965972381170368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 1 to 0.4 (13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.3983062485694666,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 1 to -0.4 (-13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.3983062485694666,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 1 to -0.4 (-13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,-0.39827573052567333,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 1 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,-0.39827573052567333,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 1 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.7965972381170368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 1 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.7965972381170368,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 1 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 2 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.000015259021896696368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 2 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 2 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 2 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.7965972381170368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 2 to 0.4 (13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.7965972381170368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 2 to 0.4 (13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.3983062485694666,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 2 to -0.4 (-13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.3983062485694666,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 2 to -0.4 (-13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,-0.39827573052567333,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 2 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,-0.39827573052567333,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 2 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.7965972381170368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 2 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.7965972381170368,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 2 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 3 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.000015259021896696368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 3 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 3 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 3 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.7965972381170368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 3 to 0.4 (13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.7965972381170368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 3 to 0.4 (13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.3983062485694666],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 3 to -0.4 (-13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.3983062485694666],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 3 to -0.4 (-13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,-0.39827573052567333],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 3 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,-0.39827573052567333],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 3 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.7965972381170368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 3 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.7965972381170368],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 3 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 4 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 4 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 4 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 4 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.8982818079165014},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 4 to 0.4 (13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.8982818079165014},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 4 to 0.4 (13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.6991485335856197},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 4 to -0.4 (-13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.6991485335856197},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 4 to -0.4 (-13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.3008514664143803},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 4 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.3008514664143803},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 4 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.8982818079165014},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 4 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.8982818079165014},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 4 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 5 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 5 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 5 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 5 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":true,"touched":true,"value":0.8982818079165014},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 5 to 0.4 (13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":true,"touched":true,"value":0.8982818079165014},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 5 to 0.4 (13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":true,"touched":true,"value":0.6991485335856197},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 5 to -0.4 (-13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":true,"touched":true,"value":0.6991485335856197},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 5 to -0.4 (-13051): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":true,"touched":true,"value":0.3008514664143803},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 5 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":true,"touched":true,"value":0.3008514664143803},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 5 to 0.8 (26102): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":true,"touched":true,"value":0.8982818079165014},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Before moving axis 5 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":true,"touched":true,"value":0.8982818079165014},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
After moving axis 5 to 1 (32628): [{"id":"Ladybird Virtual Gamepad","index":0,"connected":true,"mapping":"standard","axes":[0.9957579919127184,0.9957579919127184,0.9957579919127184,0.9957579919127184],"buttons":[{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":true,"touched":true,"value":0.9978637043366801},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0},{"pressed":false,"touched":false,"value":0}],"vibrationActuator":{"effects":["dual-rumble","trigger-rumble"]}}]
|
||||||
|
Received gamepaddisconnected event for 'Ladybird Virtual Gamepad' at index 0
|
45
Tests/LibWeb/Text/expected/GamepadAPI/gamepad-rumble.txt
Normal file
45
Tests/LibWeb/Text/expected/GamepadAPI/gamepad-rumble.txt
Normal file
|
@ -0,0 +1,45 @@
|
||||||
|
Checking if effect 'dual-rumble' with params '{"duration":5001}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'dual-rumble' with params '{"startDelay":5001}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'dual-rumble' with params '{"duration":2500,"startDelay":2501}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'dual-rumble' with params '{"duration":1,"weakMagnitude":-0.1}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'dual-rumble' with params '{"duration":1,"weakMagnitude":1.1}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'dual-rumble' with params '{"duration":1,"strongMagnitude":-0.1}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'dual-rumble' with params '{"duration":1,"strongMagnitude":1.1}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'trigger-rumble' with params '{"duration":5001}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'trigger-rumble' with params '{"startDelay":5001}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'trigger-rumble' with params '{"duration":2500,"startDelay":2501}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'trigger-rumble' with params '{"duration":1,"weakMagnitude":-0.1}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'trigger-rumble' with params '{"duration":1,"weakMagnitude":1.1}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'trigger-rumble' with params '{"duration":1,"strongMagnitude":-0.1}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'trigger-rumble' with params '{"duration":1,"strongMagnitude":1.1}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'trigger-rumble' with params '{"duration":1,"leftTrigger":-0.1}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'trigger-rumble' with params '{"duration":1,"leftTrigger":1.1}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'trigger-rumble' with params '{"duration":1,"rightTrigger":-0.1}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Checking if effect 'trigger-rumble' with params '{"duration":1,"rightTrigger":1.1}' throws
|
||||||
|
TypeError: Invalid effect
|
||||||
|
Playing valid dual rumble effect
|
||||||
|
Dual rumble promise resolved with 'complete'
|
||||||
|
Playing valid trigger rumble effect
|
||||||
|
Trigger rumble promise resolved with 'complete'
|
||||||
|
Testing preempting a rumble effect
|
||||||
|
newDualRumbleResult: 'complete', preemptedResult: 'preempted'
|
||||||
|
Received dual rumble effects: [{"lowFrequencyRumble":32767,"highFrequencyRumble":32767},{"lowFrequencyRumble":0,"highFrequencyRumble":0},{"lowFrequencyRumble":6553,"highFrequencyRumble":6553},{"lowFrequencyRumble":65535,"highFrequencyRumble":65535},{"lowFrequencyRumble":0,"highFrequencyRumble":0}]
|
||||||
|
Received trigger rumble effects: [{"leftRumble":32767,"rightRumble":32767},{"leftRumble":0,"rightRumble":0}]
|
||||||
|
Received gamepaddisconnected event for 'Ladybird Virtual Gamepad' at index 0
|
|
@ -0,0 +1,25 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="../include.js"></script>
|
||||||
|
<script src="gamepad-helper.js"></script>
|
||||||
|
<script>
|
||||||
|
asyncTest(async (done) => {
|
||||||
|
const gamepad = internals.connectVirtualGamepad();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
listenForGamepadConnected();
|
||||||
|
|
||||||
|
for (const button of gamepad.buttons) {
|
||||||
|
println(`Before pressing button ${button}: ${getStringifiedGamepads()}`);
|
||||||
|
gamepad.setButton(button, true);
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
println(`After pressing button ${button}: ${getStringifiedGamepads()}`);
|
||||||
|
gamepad.setButton(button, false);
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
println(`After unpressed button: ${getStringifiedGamepads()}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
listenForGamepadDisconnected();
|
||||||
|
gamepad.disconnect();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -0,0 +1,22 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="../include.js"></script>
|
||||||
|
<script src="gamepad-helper.js"></script>
|
||||||
|
<script>
|
||||||
|
asyncTest(async (done) => {
|
||||||
|
println(`Initial: ${getStringifiedGamepads()}`);
|
||||||
|
|
||||||
|
const gamepad = internals.connectVirtualGamepad();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
listenForGamepadConnected();
|
||||||
|
|
||||||
|
println(`Before user gesture of pressing a button: ${getStringifiedGamepads()}`);
|
||||||
|
gamepad.setButton(gamepad.buttons[0], true);
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
println(`After user gesture of pressing a button: ${getStringifiedGamepads()}`);
|
||||||
|
|
||||||
|
listenForGamepadDisconnected();
|
||||||
|
gamepad.disconnect();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -0,0 +1,27 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="../include.js"></script>
|
||||||
|
<script src="gamepad-helper.js"></script>
|
||||||
|
<script>
|
||||||
|
asyncTest(async (done) => {
|
||||||
|
println(`Initial: ${getStringifiedGamepads()}`);
|
||||||
|
|
||||||
|
const gamepad = internals.connectVirtualGamepad();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
listenForGamepadConnected();
|
||||||
|
|
||||||
|
const shortMax = 32628;
|
||||||
|
|
||||||
|
for (const axisValue of [-0.1, -0.2, -0.3, -0.4, -0.5, -0.503]) {
|
||||||
|
const axisAsInt = Math.ceil(axisValue * shortMax);
|
||||||
|
println(`Before user gesture of moving axis to ${axisValue} (${axisAsInt}): ${getStringifiedGamepads()}`);
|
||||||
|
gamepad.setAxis(gamepad.axes[0], axisAsInt);
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
println(`After user gesture of moving axis to ${axisValue} (${axisAsInt}): ${getStringifiedGamepads()}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
listenForGamepadDisconnected();
|
||||||
|
gamepad.disconnect();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -0,0 +1,27 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="../include.js"></script>
|
||||||
|
<script src="gamepad-helper.js"></script>
|
||||||
|
<script>
|
||||||
|
asyncTest(async (done) => {
|
||||||
|
println(`Initial: ${getStringifiedGamepads()}`);
|
||||||
|
|
||||||
|
const gamepad = internals.connectVirtualGamepad();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
listenForGamepadConnected();
|
||||||
|
|
||||||
|
const shortMax = 32628;
|
||||||
|
|
||||||
|
for (const axisValue of [0.1, 0.2, 0.3, 0.4, 0.5, 0.503]) {
|
||||||
|
const axisAsInt = Math.floor(axisValue * shortMax);
|
||||||
|
println(`Before user gesture of moving axis to ${axisValue} (${axisAsInt}): ${getStringifiedGamepads()}`);
|
||||||
|
gamepad.setAxis(gamepad.axes[0], axisAsInt);
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
println(`After user gesture of moving axis to ${axisValue} (${axisAsInt}): ${getStringifiedGamepads()}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
listenForGamepadDisconnected();
|
||||||
|
gamepad.disconnect();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -0,0 +1,27 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="../include.js"></script>
|
||||||
|
<script src="gamepad-helper.js"></script>
|
||||||
|
<script>
|
||||||
|
asyncTest(async (done) => {
|
||||||
|
const gamepad = internals.connectVirtualGamepad();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
listenForGamepadConnected();
|
||||||
|
|
||||||
|
const shortMax = 32628;
|
||||||
|
|
||||||
|
const trigger = gamepad.triggers[0];
|
||||||
|
|
||||||
|
for (const axisValue of [-1.0, -0.98, -0.96, -0.94, -0.92, -0.9, -0.8033]) {
|
||||||
|
const axisValueAsInt = Math.floor(axisValue * shortMax);
|
||||||
|
println(`Before moving trigger axis ${trigger} to ${axisValue} (${axisValueAsInt}): ${getStringifiedGamepads()}`);
|
||||||
|
gamepad.setAxis(trigger, axisValueAsInt);
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
println(`After moving trigger axis ${trigger} to ${axisValue} (${axisValueAsInt}): ${getStringifiedGamepads()}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
listenForGamepadDisconnected();
|
||||||
|
gamepad.disconnect();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
</script>
|
44
Tests/LibWeb/Text/input/GamepadAPI/gamepad-helper.js
Normal file
44
Tests/LibWeb/Text/input/GamepadAPI/gamepad-helper.js
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
(() => {
|
||||||
|
globalThis.handleSDLInputEvents = () => {
|
||||||
|
internals.handleSDLInputEvents();
|
||||||
|
return new Promise(resolve => {
|
||||||
|
setTimeout(() => resolve(), 0);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
globalThis.getStringifiedGamepads = () => {
|
||||||
|
const gamepads = navigator.getGamepads().map(gamepad => ({
|
||||||
|
id: gamepad.id,
|
||||||
|
index: gamepad.index,
|
||||||
|
connected: gamepad.connected,
|
||||||
|
mapping: gamepad.mapping,
|
||||||
|
axes: gamepad.axes,
|
||||||
|
buttons: gamepad.buttons.map(button => ({
|
||||||
|
pressed: button.pressed,
|
||||||
|
touched: button.touched,
|
||||||
|
value: button.value,
|
||||||
|
})),
|
||||||
|
vibrationActuator: {
|
||||||
|
effects: gamepad.vibrationActuator.effects,
|
||||||
|
},
|
||||||
|
}));
|
||||||
|
|
||||||
|
return JSON.stringify(gamepads);
|
||||||
|
};
|
||||||
|
|
||||||
|
globalThis.listenForGamepadConnected = () => {
|
||||||
|
window.addEventListener("gamepadconnected", ({ gamepad }) => {
|
||||||
|
println(
|
||||||
|
`Received gamepadconnected event for '${gamepad.id}' at index ${gamepad.index}`
|
||||||
|
);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
globalThis.listenForGamepadDisconnected = () => {
|
||||||
|
window.addEventListener("gamepaddisconnected", ({ gamepad }) => {
|
||||||
|
println(
|
||||||
|
`Received gamepaddisconnected event for '${gamepad.id}' at index ${gamepad.index}`
|
||||||
|
);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
})();
|
68
Tests/LibWeb/Text/input/GamepadAPI/gamepad-iframe.html
Normal file
68
Tests/LibWeb/Text/input/GamepadAPI/gamepad-iframe.html
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<iframe id="test-iframe" srcdoc="
|
||||||
|
<script src='gamepad-helper.js'></script>
|
||||||
|
<script>
|
||||||
|
window.onmessage = async ({ data }) => {
|
||||||
|
switch (data) {
|
||||||
|
case 'getGamepads':
|
||||||
|
window.parent.postMessage(getStringifiedGamepads(), '*');
|
||||||
|
break;
|
||||||
|
case 'rumbleGamepad': {
|
||||||
|
const navGamepad = navigator.getGamepads()[0];
|
||||||
|
await navGamepad.vibrationActuator.playEffect('dual-rumble', { duration: 1, weakMagnitude: 0.5, strongMagnitude: 0.5 });
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
await navGamepad.vibrationActuator.playEffect('trigger-rumble', { duration: 1, leftTrigger: 0.5, rightTrigger: 0.5 });
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
window.parent.postMessage('done', '*');
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
"></iframe>
|
||||||
|
<script src="../include.js"></script>
|
||||||
|
<script src="gamepad-helper.js"></script>
|
||||||
|
<script>
|
||||||
|
asyncTest(async (done) => {
|
||||||
|
const testIframe = document.getElementById("test-iframe");
|
||||||
|
|
||||||
|
const sendMessageAndWait = (message) => {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
window.onmessage = ({ data }) => {
|
||||||
|
resolve(data);
|
||||||
|
};
|
||||||
|
|
||||||
|
testIframe.contentWindow.postMessage(message, "*");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const gamepad = internals.connectVirtualGamepad();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
listenForGamepadConnected();
|
||||||
|
|
||||||
|
println(`Before pressing a button: ${await sendMessageAndWait("getGamepads")}`);
|
||||||
|
gamepad.setButton(gamepad.buttons[0], true);
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
println(`After pressing a button: ${await sendMessageAndWait("getGamepads")}`);
|
||||||
|
|
||||||
|
const shortMax = 32628;
|
||||||
|
const axisValueAsInt = Math.floor(0.8 * shortMax);
|
||||||
|
println(`Before moving axis ${gamepad.axes[0]} to 0.8 (${axisValueAsInt}): ${await sendMessageAndWait("getGamepads")}`);
|
||||||
|
gamepad.setAxis(gamepad.axes[0], axisValueAsInt);
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
println(`After moving axis ${gamepad.axes[0]} to 0.8 (${axisValueAsInt}): ${await sendMessageAndWait("getGamepads")}`);
|
||||||
|
|
||||||
|
await sendMessageAndWait("rumbleGamepad");
|
||||||
|
println(`Received dual rumble effects: ${JSON.stringify(gamepad.getReceivedRumbleEffects())}`);
|
||||||
|
println(`Received trigger rumble effects: ${JSON.stringify(gamepad.getReceivedRumbleTriggerEffects())}`);
|
||||||
|
|
||||||
|
listenForGamepadDisconnected();
|
||||||
|
gamepad.disconnect();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
println(`After disconnecting gamepad: ${await sendMessageAndWait("getGamepads")}`);
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
</script>
|
|
@ -0,0 +1,56 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="../include.js"></script>
|
||||||
|
<script src="gamepad-helper.js"></script>
|
||||||
|
<script>
|
||||||
|
asyncTest(async (done) => {
|
||||||
|
const gamepad = internals.connectVirtualGamepad();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
listenForGamepadConnected();
|
||||||
|
|
||||||
|
println(`Before pressing button in top level: ${getStringifiedGamepads()}`);
|
||||||
|
gamepad.setButton(gamepad.buttons[0], true);
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
println(`After pressing button in top level: ${getStringifiedGamepads()}`);
|
||||||
|
gamepad.setButton(gamepad.buttons[0], false);
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
|
||||||
|
const iframe = document.createElement("iframe");
|
||||||
|
iframe.onload = async () => {
|
||||||
|
const sendMessageAndWait = (message) => {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
window.onmessage = ({ data }) => {
|
||||||
|
resolve(data);
|
||||||
|
};
|
||||||
|
|
||||||
|
iframe.contentWindow.postMessage(message, "*");
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
println(`Gamepad should not be immediately exposed in the new navigable: ${await sendMessageAndWait("getGamepads")}`);
|
||||||
|
|
||||||
|
// New navigables will automatically connect to available gamepads, otherwise this wouldn't do anything.
|
||||||
|
gamepad.setButton(gamepad.buttons[0], true);
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
|
||||||
|
println(`Gamepad is now exposed in the new navigable: ${await sendMessageAndWait("getGamepads")}`);
|
||||||
|
|
||||||
|
done();
|
||||||
|
};
|
||||||
|
|
||||||
|
iframe.srcdoc = `
|
||||||
|
\u003cscript src="gamepad-helper.js"\u003e\u003c/script\u003e
|
||||||
|
\u003cscript\u003e
|
||||||
|
window.onmessage = async ({ data }) => {
|
||||||
|
switch (data) {
|
||||||
|
case 'getGamepads':
|
||||||
|
window.parent.postMessage(getStringifiedGamepads(), '*');
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
\u003c/script\u003e`;
|
||||||
|
|
||||||
|
document.body.appendChild(iframe);
|
||||||
|
});
|
||||||
|
</script>
|
28
Tests/LibWeb/Text/input/GamepadAPI/gamepad-moving-axes.html
Normal file
28
Tests/LibWeb/Text/input/GamepadAPI/gamepad-moving-axes.html
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="../include.js"></script>
|
||||||
|
<script src="gamepad-helper.js"></script>
|
||||||
|
<script>
|
||||||
|
asyncTest(async (done) => {
|
||||||
|
const gamepad = internals.connectVirtualGamepad();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
listenForGamepadConnected();
|
||||||
|
|
||||||
|
const shortMax = 32628;
|
||||||
|
|
||||||
|
for (const axis of gamepad.axes.concat(gamepad.triggers)) {
|
||||||
|
for (const axisValue of [1.0, 0.8, 0.4, -0.4, 0.8, 1.0]) {
|
||||||
|
const axisValueAsInt = axisValue * shortMax;
|
||||||
|
const axisValueRounded = axisValue > 0 ? Math.floor(axisValueAsInt) : Math.ceil(axisValueAsInt);
|
||||||
|
println(`Before moving axis ${axis} to ${axisValue} (${axisValueRounded}): ${getStringifiedGamepads()}`);
|
||||||
|
gamepad.setAxis(axis, axisValueRounded);
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
println(`After moving axis ${axis} to ${axisValue} (${axisValueRounded}): ${getStringifiedGamepads()}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
listenForGamepadDisconnected();
|
||||||
|
gamepad.disconnect();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
</script>
|
75
Tests/LibWeb/Text/input/GamepadAPI/gamepad-rumble.html
Normal file
75
Tests/LibWeb/Text/input/GamepadAPI/gamepad-rumble.html
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<script src="../include.js"></script>
|
||||||
|
<script src="gamepad-helper.js"></script>
|
||||||
|
<script>
|
||||||
|
asyncTest(async (done) => {
|
||||||
|
const gamepad = internals.connectVirtualGamepad();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
|
||||||
|
gamepad.setButton(gamepad.buttons[0], true);
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
|
||||||
|
const navGamepad = navigator.getGamepads()[0];
|
||||||
|
|
||||||
|
const checkIfThrows = async (effectType, params) => {
|
||||||
|
println(`Checking if effect '${effectType}' with params '${JSON.stringify(params)}' throws`);
|
||||||
|
try {
|
||||||
|
await navGamepad.vibrationActuator.playEffect(effectType, params);
|
||||||
|
println("FAIL: Did not throw");
|
||||||
|
} catch (e) {
|
||||||
|
println(`${e.name}: ${e.message}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
await checkIfThrows("dual-rumble", { duration: 5001 });
|
||||||
|
await checkIfThrows("dual-rumble", { startDelay: 5001 });
|
||||||
|
await checkIfThrows("dual-rumble", { duration: 2500, startDelay: 2501 });
|
||||||
|
await checkIfThrows("dual-rumble", { duration: 1, weakMagnitude: -0.1 });
|
||||||
|
await checkIfThrows("dual-rumble", { duration: 1, weakMagnitude: 1.1 });
|
||||||
|
await checkIfThrows("dual-rumble", { duration: 1, strongMagnitude: -0.1 });
|
||||||
|
await checkIfThrows("dual-rumble", { duration: 1, strongMagnitude: 1.1 });
|
||||||
|
|
||||||
|
await checkIfThrows("trigger-rumble", { duration: 5001 });
|
||||||
|
await checkIfThrows("trigger-rumble", { startDelay: 5001 });
|
||||||
|
await checkIfThrows("trigger-rumble", { duration: 2500, startDelay: 2501 });
|
||||||
|
await checkIfThrows("trigger-rumble", { duration: 1, weakMagnitude: -0.1 });
|
||||||
|
await checkIfThrows("trigger-rumble", { duration: 1, weakMagnitude: 1.1 });
|
||||||
|
await checkIfThrows("trigger-rumble", { duration: 1, strongMagnitude: -0.1 });
|
||||||
|
await checkIfThrows("trigger-rumble", { duration: 1, strongMagnitude: 1.1 });
|
||||||
|
await checkIfThrows("trigger-rumble", { duration: 1, leftTrigger: -0.1 });
|
||||||
|
await checkIfThrows("trigger-rumble", { duration: 1, leftTrigger: 1.1 });
|
||||||
|
await checkIfThrows("trigger-rumble", { duration: 1, rightTrigger: -0.1 });
|
||||||
|
await checkIfThrows("trigger-rumble", { duration: 1, rightTrigger: 1.1 });
|
||||||
|
|
||||||
|
println("Playing valid dual rumble effect");
|
||||||
|
const dualRumbleResult = await navGamepad.vibrationActuator.playEffect("dual-rumble", { duration: 2, weakMagnitude: 0.5, strongMagnitude: 0.5 });
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
println(`Dual rumble promise resolved with '${dualRumbleResult}'`);
|
||||||
|
println("Playing valid trigger rumble effect");
|
||||||
|
const triggerRumbleResult = await navGamepad.vibrationActuator.playEffect("trigger-rumble", { duration: 2, leftTrigger: 0.5, rightTrigger: 0.5 });
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
println(`Trigger rumble promise resolved with '${triggerRumbleResult}'`);
|
||||||
|
|
||||||
|
println("Testing preempting a rumble effect");
|
||||||
|
const effectToPreemptPromise = navGamepad.vibrationActuator.playEffect("dual-rumble", { duration: 1000, strongMagnitude: 0.1, weakMagnitude: 0.1 });
|
||||||
|
|
||||||
|
// Make sure the first effect is issued to the gamepad.
|
||||||
|
await new Promise(resolve => {
|
||||||
|
setTimeout(() => resolve(), 1);
|
||||||
|
});
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
|
||||||
|
const newDualRumbleResult = await navGamepad.vibrationActuator.playEffect("dual-rumble", { duration: 2, strongMagnitude: 1.0, weakMagnitude: 1.0 });
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
const preemptedResult = await effectToPreemptPromise;
|
||||||
|
println(`newDualRumbleResult: '${newDualRumbleResult}', preemptedResult: '${preemptedResult}'`);
|
||||||
|
|
||||||
|
println(`Received dual rumble effects: ${JSON.stringify(gamepad.getReceivedRumbleEffects())}`);
|
||||||
|
println(`Received trigger rumble effects: ${JSON.stringify(gamepad.getReceivedRumbleTriggerEffects())}`);
|
||||||
|
|
||||||
|
listenForGamepadDisconnected();
|
||||||
|
gamepad.disconnect();
|
||||||
|
await handleSDLInputEvents();
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
</script>
|
Loading…
Add table
Add a link
Reference in a new issue