immersive2/src/util/dualshockEventMapper.ts

90 lines
3.3 KiB
TypeScript

import {DualShockButton} from "@babylonjs/core";
import log from "loglevel";
type ButtonEvent = {
objectName?: string,
pressed: boolean,
touched: boolean,
value: number,
buttonIndex?: number
}
export class DualshockEventMapper {
public static mapButtonEvent(buttonid: any, value: number): ButtonEvent {
const buttonEvent = {
objectName: null,
pressed: value == 1,
touched: false,
value: value,
buttonIndex: null
};
switch (buttonid) {
case DualShockButton.Circle:
log.debug('DualshockEventMapper','circle');
break;
case DualShockButton.Cross:
log.debug('DualshockEventMapper','cross');
buttonEvent.objectName = "right-controller";
buttonEvent.buttonIndex = 3;
break;
case DualShockButton.Triangle:
log.debug('DualshockEventMapper','triangle');
break;
case DualShockButton.Square:
log.debug('DualshockEventMapper','square');
buttonEvent.objectName = "right-controller";
buttonEvent.buttonIndex = 4;
break;
case DualShockButton.L1:
log.debug('DualshockEventMapper','L1');
buttonEvent.objectName = "left-controller";
buttonEvent.buttonIndex = 2;
break;
case DualShockButton.R1:
log.debug('DualshockEventMapper','R1');
buttonEvent.objectName = "right-controller";
buttonEvent.buttonIndex = 2;
break;
case 6:
log.debug('DualshockEventMapper','L2');
buttonEvent.objectName = "left-controller";
buttonEvent.buttonIndex = 1;
break;
case 7:
log.debug('DualshockEventMapper','R2');
buttonEvent.objectName = "right-controller";
buttonEvent.buttonIndex = 1;
break;
case 12:
log.debug('DualshockEventMapper','D-Pad Up');
break;
case 13:
log.debug('DualshockEventMapper', 'D-Pad Down');
buttonEvent.objectName = "left-controller";
buttonEvent.buttonIndex = 3;
break;
case 14:
log.debug('DualshockEventMapper', 'D-Pad Left');
log.debug('DualshockEventMapper', 'D-Pad Left');
buttonEvent.objectName = "left-controller";
buttonEvent.buttonIndex = 4;
break;
case 15:
log.debug('DualshockEventMapper', 'D-Pad Right');
break;
case 10:
log.debug('DualshockEventMapper','L3');
buttonEvent.objectName = "left-controller";
buttonEvent.buttonIndex = 0;
break;
case 11:
log.debug('DualshockEventMapper','R3');
buttonEvent.objectName = "right-controller";
buttonEvent.buttonIndex = 0;
break;
default:
log.debug('DualshockEventMapper',buttonid);
}
return buttonEvent;
}
}