Microsoft Surface Haptics Custom Waveform Integration

by pedro_g_s

HTML

<html>
    <body>
        <button id="b">Activate Custom Waveform</button>
        <script>
            document.querySelector('#b').addEventListener('pointerdown', function(e) {
                if (e.haptics) {
                		const VENDOR_A_CUSTOM_WAVEFORM = 0x2002;
                    const VENDOR_B_CUSTOM_WAVEFORM = 0x2004;

                    const VENDOR_A_DEVICE_ID = 'E001';
                    const VENDOR_B_DEVICE_ID = 'C004';

                    const waveform = new HapticsPredefinedWaveform({
                        waveformId: VENDOR_A_CUSTOM_WAVEFORM,
                        vendorId: VENDOR_A_DEVICE_ID,
                        alternates: [
                            new HapticsPredefinedWaveform({
                                waveformId: VENDOR_B_CUSTOM_WAVEFORM,
                                vendorId: VENDOR_B_DEVICE_ID
                            })
                        ]
                    });
                    e.haptics.play(waveform);
                }
            });
        </script>
    </body>
</html>