| 18 | module.onunload = function() { keyboardEvents(false); }; |
| 19 | |
| 20 | function keyboardEvents(bool) { |
| 21 | if(this.state === bool) { |
| 22 | return; |
| 23 | } else { |
| 24 | this.state = bool; |
| 25 | } |
| 26 | |
| 27 | var eventHandlers = { |
| 28 | "keydown": typeKey, |
| 29 | "keyup": typeKey, |
| 30 | }; |
| 31 | |
| 32 | for(var eventName in eventHandlers) { |
| 33 | if(bool) { |
| 34 | d3.select(window).on(eventName+".logger", eventHandlers[eventName]); |
| 35 | } else { |
| 36 | d3.select(window).on(eventName+".logger", null); |
| 37 | } |
| 38 | } |
| 39 | |
| 40 | var scanCodes = [ |
| 41 | {"key":"A","make":"1C","break":"F0,1C","y":3,"x":1,"dx":1, "keycode":65}, |
| 42 | {"key":"B","make":"32","break":"F0,32","y":4,"x":5,"dx":1, "keycode":66}, |
| 43 | {"key":"C","make":"21","break":"F0,21","y":4,"x":3,"dx":1, "keycode":67}, |
| 44 | {"key":"D","make":"23","break":"F0,23","y":3,"x":3,"dx":1, "keycode":68}, |
| 45 | {"key":"E","make":"24","break":"F0,24","y":2,"x":3,"dx":1, "keycode":69}, |
| 46 | {"key":"F","make":"2B","break":"F0,2B","y":3,"x":4,"dx":1, "keycode":70}, |
| 47 | {"key":"G","make":"34","break":"F0,34","y":3,"x":5,"dx":1, "keycode":71}, |
| 48 | {"key":"H","make":"33","break":"F0,33","y":3,"x":6,"dx":1, "keycode":72}, |
| 49 | {"key":"I","make":"43","break":"F0,43","y":2,"x":8,"dx":1, "keycode":73}, |
| 50 | {"key":"J","make":"3B","break":"F0,3B","y":3,"x":7,"dx":1, "keycode":74}, |
| 51 | {"key":"K","make":"42","break":"F0,42","y":3,"x":8,"dx":1, "keycode":75}, |
| 52 | {"key":"L","make":"4B","break":"F0,4B","y":3,"x":9,"dx":1, "keycode":76}, |
| 53 | {"key":"M","make":"3A","break":"F0,3A","y":4,"x":7,"dx":1, "keycode":77}, |
| 54 | {"key":"N","make":"31","break":"F0,31","y":4,"x":6,"dx":1, "keycode":78}, |
| 55 | {"key":"O","make":"44","break":"F0,44","y":2,"x":9,"dx":1, "keycode":79}, |
| 56 | {"key":"P","make":"4D","break":"F0,4D","y":2,"x":10,"dx":1, "keycode":80}, |
| 57 | {"key":"Q","make":"15","break":"F0,15","y":2,"x":1,"dx":1, "keycode":81}, |
| 58 | {"key":"R","make":"2D","break":"F0,2D","y":2,"x":4,"dx":1, "keycode":82}, |
| 59 | {"key":"S","make":"1B","break":"F0,1B","y":3,"x":2,"dx":1, "keycode":83}, |
| 60 | {"key":"T","make":"2C","break":"F0,2C","y":2,"x":5,"dx":1, "keycode":84}, |
| 61 | {"key":"U","make":"3C","break":"F0,3C","y":2,"x":7,"dx":1, "keycode":85}, |
| 62 | {"key":"V","make":"2A","break":"F0,2A","y":4,"x":4,"dx":1, "keycode":86}, |
| 63 | {"key":"W","make":"1D","break":"F0,1D","y":2,"x":2,"dx":1, "keycode":87}, |
| 64 | {"key":"X","make":"22","break":"F0,22","y":4,"x":2,"dx":1, "keycode":88}, |
| 65 | {"key":"Y","make":"35","break":"F0,35","y":2,"x":6,"dx":1, "keycode":89}, |
| 66 | {"key":"Z","make":"1A","break":"F0,1A","y":4,"x":1,"dx":1, "keycode":90}, |
| 67 | {"key":"0","make":"45","break":"F0,45","y":1,"x":10,"dx":1, "keycode":48}, |
| 68 | {"key":"1","make":"16","break":"F0,16","y":1,"x":1,"dx":1, "keycode":49}, |
| 69 | {"key":"2","make":"1E","break":"F0,1E","y":1,"x":2,"dx":1, "keycode":50}, |
| 70 | {"key":"3","make":"26","break":"F0,26","y":1,"x":3,"dx":1, "keycode":51}, |
| 71 | {"key":"4","make":"25","break":"F0,25","y":1,"x":4,"dx":1, "keycode":52}, |
| 72 | {"key":"5","make":"2E","break":"F0,2E","y":1,"x":5,"dx":1, "keycode":53}, |
| 73 | {"key":"6","make":"36","break":"F0,36","y":1,"x":6,"dx":1, "keycode":54}, |
| 74 | {"key":"7","make":"3D","break":"F0,3D","y":1,"x":7,"dx":1, "keycode":55}, |
| 75 | {"key":"8","make":"3E","break":"F0,3E","y":1,"x":8,"dx":1, "keycode":56}, |
| 76 | {"key":"9","make":"46","break":"F0,46","y":1,"x":9,"dx":1, "keycode":57}, |
| 77 | {"key":"`","make":"0E","break":"F0,0E","y":1,"x":0,"dx":1, "keycode":192}, |