aboutsummaryrefslogtreecommitdiff
path: root/javascript/imageviewerGamepad.js
blob: 29bd7140346004fa2d12b25a97f7b1a85c6c2c08 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
    let delay = 350//ms
    window.addEventListener('gamepadconnected', (e) => {
        console.log("Gamepad connected!")
        const gamepad = e.gamepad;
        setInterval(() => {
            const xValue = gamepad.axes[0].toFixed(2);
            if (xValue < -0.3) {
                modalPrevImage(e);
            } else if (xValue > 0.3) {
                modalNextImage(e);
            }

        }, delay);
    });


    /*
    Primarily for vr controller type pointer devices.
    I use the wheel event because there's currently no way to do it properly with web xr.
     */

    let isScrolling = false;
    window.addEventListener('wheel', (e) => {
        if (isScrolling) return;
        isScrolling = true;

        if (e.deltaX <= -0.6) {
            modalPrevImage(e);
        } else if (e.deltaX >= 0.6) {
            modalNextImage(e);
        }

        setTimeout(() => {
            isScrolling = false;
        }, delay);
    });