Skip to content

Commit

Permalink
#99 fix: stop thruster when button is released (#118)
Browse files Browse the repository at this point in the history
  • Loading branch information
trebua authored Oct 14, 2019
1 parent 8c3180d commit 2c8a9d4
Showing 1 changed file with 21 additions and 6 deletions.
27 changes: 21 additions & 6 deletions src/VideoComponents/KeyboardWrapper.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -46,22 +46,37 @@ const mapping = {
E: 'LB', //negative heave bias (up) -
};

// Buttons we dont want to send value:0 when is released
const toggles = ['C', 'V', 'SHIFT', ' '];

// Buttons we want to send negative values for
const negatives = ['S', 'A', 'ARROWLEFT'];

class KeyboardWrapper extends Component {
keyChangeHandler(e) {
keyChangeHandler = (e, down) => {
const key = e.key.toUpperCase();
if (!(validKeys.indexOf(key) >= 0)) return;
const multiplier = ['S', 'A', 'ARROWLEFT'].indexOf(key) >= 0 ? -1 : 1;
console.log(key);
if (toggles.indexOf(key) >= 0 && !down) return;
const value = down ? 1.0 : 0.0;
const multiplier = negatives.indexOf(key) >= 0 ? -1 : 1;
window.ipcRenderer.send('button-click', {
button: mapping[key],
value: 1.0 * multiplier,
value: value * multiplier,
});
}
};

componentDidMount() {
document.addEventListener('keydown', e => {
this.keyChangeHandler(e);
this.keyChangeHandler(e, true);
});
document.addEventListener('keyup', e => {
this.keyChangeHandler(e, false);
});
}

componentWillUnmount() {
document.removeEventListener('keyup', this.keyChangeHandler);
document.removeEventListener('keydown', this.keyChangeHandler);
}

render() {
Expand Down

0 comments on commit 2c8a9d4

Please sign in to comment.