Kiibohd Controller
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

sonyoas3400.h 9.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552
  1. /* Copyright (C) 2012 by Jacob Alexander
  2. *
  3. * Permission is hereby granted, free of charge, to any person obtaining a copy
  4. * of this software and associated documentation files (the "Software"), to deal
  5. * in the Software without restriction, including without limitation the rights
  6. * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  7. * copies of the Software, and to permit persons to whom the Software is
  8. * furnished to do so, subject to the following conditions:
  9. *
  10. * The above copyright notice and this permission notice shall be included in
  11. * all copies or substantial portions of the Software.
  12. *
  13. * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  14. * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  15. * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  16. * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  17. * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  18. * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  19. * THE SOFTWARE.
  20. */
  21. #ifndef __SONYOAS3400_H
  22. #define __SONYOAS3400_H
  23. // This file contains various key layouts for the Sony OA-S3400 Word Processor Keyboard
  24. // ----- Variables -----
  25. static uint8_t sonyoas3400_ModifierMask[] = { 0x90, 0x91, 0x92, 0xCE, 0xE0 };
  26. static uint8_t sonyoas3400_DefaultMap[] = {
  27. 0, // 0x00
  28. 0, // 0x01
  29. 0, // 0x02
  30. 0, // 0x03
  31. 0, // 0x04
  32. 0, // 0x05
  33. 0, // 0x06
  34. 0, // 0x07
  35. KEY_BACKSPACE, // 0x08
  36. KEY_TAB, // 0x09
  37. 0, // 0x0A
  38. 0, // 0x0B
  39. 0, // 0x0C
  40. KEY_ENTER, // 0x0D
  41. 0, // 0x0E
  42. 0, // 0x0F
  43. 0, // 0x10
  44. 0, // 0x11
  45. 0, // 0x12
  46. 0, // 0x13
  47. 0, // 0x14
  48. 0, // 0x15
  49. 0, // 0x16
  50. 0, // 0x17
  51. 0, // 0x18
  52. 0, // 0x19
  53. 0, // 0x1A
  54. 0, // 0x1B
  55. 0, // 0x1C
  56. 0, // 0x1D
  57. 0, // 0x1E
  58. 0, // 0x1F
  59. KEY_SPACE, // 0x20
  60. 0, // 0x21
  61. 0, // 0x22
  62. 0, // 0x23
  63. 0, // 0x24
  64. 0, // 0x25
  65. 0, // 0x26
  66. KEY_QUOTE, // 0x27
  67. 0, // 0x28
  68. 0, // 0x29
  69. 0, // 0x2A
  70. 0, // 0x2B
  71. KEY_COMMA, // 0x2C
  72. KEY_MINUS, // 0x2D
  73. KEY_PERIOD, // 0x2E
  74. KEY_SLASH, // 0x2F
  75. KEY_0, // 0x30
  76. KEY_1, // 0x31
  77. KEY_2, // 0x32
  78. KEY_3, // 0x33
  79. KEY_4, // 0x34
  80. KEY_5, // 0x35
  81. KEY_6, // 0x36
  82. KEY_7, // 0x37
  83. KEY_8, // 0x38
  84. KEY_9, // 0x39
  85. 0, // 0x3A
  86. KEY_SEMICOLON, // 0x3B
  87. 0, // 0x3C
  88. KEY_EQUAL, // 0x3D
  89. 0, // 0x3E
  90. 0, // 0x3F
  91. 0, // 0x40
  92. KEY_A, // 0x41
  93. KEY_B, // 0x42
  94. KEY_C, // 0x43
  95. KEY_D, // 0x44
  96. KEY_E, // 0x45
  97. KEY_F, // 0x46
  98. KEY_G, // 0x47
  99. KEY_H, // 0x48
  100. KEY_I, // 0x49
  101. KEY_J, // 0x4A
  102. KEY_K, // 0x4B
  103. KEY_L, // 0x4C
  104. KEY_M, // 0x4D
  105. KEY_N, // 0x4E
  106. KEY_O, // 0x4F
  107. KEY_P, // 0x50
  108. KEY_Q, // 0x51
  109. KEY_R, // 0x52
  110. KEY_S, // 0x53
  111. KEY_T, // 0x54
  112. KEY_U, // 0x55
  113. KEY_V, // 0x56
  114. KEY_W, // 0x57
  115. KEY_X, // 0x58
  116. KEY_Y, // 0x59
  117. KEY_Z, // 0x5A
  118. 0, // 0x5B
  119. 0, // 0x5C
  120. 0, // 0x5D
  121. 0, // 0x5E
  122. 0, // 0x5F
  123. 0, // 0x60
  124. 0, // 0x61
  125. 0, // 0x62
  126. 0, // 0x63
  127. 0, // 0x64
  128. 0, // 0x65
  129. 0, // 0x66
  130. 0, // 0x67
  131. 0, // 0x68
  132. 0, // 0x69
  133. 0, // 0x6A
  134. 0, // 0x6B
  135. 0, // 0x6C
  136. 0, // 0x6D
  137. 0, // 0x6E
  138. 0, // 0x6F
  139. 0, // 0x70
  140. 0, // 0x71
  141. 0, // 0x72
  142. 0, // 0x73
  143. 0, // 0x74
  144. 0, // 0x75
  145. 0, // 0x76
  146. 0, // 0x77
  147. 0, // 0x78
  148. 0, // 0x79
  149. 0, // 0x7A
  150. 0, // 0x7B
  151. 0, // 0x7C
  152. 0, // 0x7D
  153. 0, // 0x7E
  154. 0, // 0x7F
  155. 0, // 0x80
  156. 0, // 0x81
  157. KEY_LEFT_BRACE, // 0x82
  158. 0, // 0x83
  159. 0, // 0x84
  160. 0, // 0x85
  161. 0, // 0x86
  162. 0, // 0x87
  163. 0, // 0x88
  164. 0, // 0x89
  165. 0, // 0x8A
  166. 0, // 0x8B
  167. 0, // 0x8C
  168. 0, // 0x8D
  169. 0, // 0x8E
  170. 0, // 0x8F
  171. KEY_LEFT_SHIFT, // 0x90
  172. KEY_LEFT_CTRL, // 0x91
  173. KEY_LEFT_ALT, // 0x92
  174. 0, // 0x93
  175. 0, // 0x94
  176. 0, // 0x95
  177. 0, // 0x96
  178. 0, // 0x97
  179. 0, // 0x98
  180. 0, // 0x99
  181. 0, // 0x9A
  182. 0, // 0x9B
  183. 0, // 0x9C
  184. 0, // 0x9D
  185. 0, // 0x9E
  186. 0, // 0x9F
  187. 0, // 0xA0
  188. 0, // 0xA1
  189. 0, // 0xA2
  190. 0, // 0xA3
  191. 0, // 0xA4
  192. 0, // 0xA5
  193. 0, // 0xA6
  194. 0, // 0xA7
  195. 0, // 0xA8
  196. 0, // 0xA9
  197. 0, // 0xAA
  198. 0, // 0xAB
  199. 0, // 0xAC
  200. 0, // 0xAD
  201. 0, // 0xAE
  202. 0, // 0xAF
  203. 0, // 0xB0
  204. 0, // 0xB1
  205. 0, // 0xB2
  206. 0, // 0xB3
  207. 0, // 0xB4
  208. 0, // 0xB5
  209. 0, // 0xB6
  210. 0, // 0xB7
  211. 0, // 0xB8
  212. 0, // 0xB9
  213. 0, // 0xBA
  214. 0, // 0xBB
  215. 0, // 0xBC
  216. 0, // 0xBD
  217. 0, // 0xBE
  218. 0, // 0xBF
  219. 0, // 0xC0
  220. 0, // 0xC1
  221. 0, // 0xC2
  222. 0, // 0xC3
  223. 0, // 0xC4
  224. 0, // 0xC5
  225. 0, // 0xC6
  226. 0, // 0xC7
  227. 0, // 0xC8
  228. 0, // 0xC9
  229. 0, // 0xCA
  230. 0, // 0xCB
  231. 0, // 0xCC
  232. 0, // 0xCD
  233. KEY_LEFT_GUI, // 0xCE
  234. KEY_RIGHT_BRACE, // 0xCF
  235. KEY_ESC, // 0xD0
  236. KEY_TILDE, // 0xD1
  237. KEY_BACKSLASH, // 0xD2
  238. KEY_F11, // 0xD3
  239. KEY_F12, // 0xD4
  240. KEY_F10, // 0xD5
  241. KEY_UP, // 0xD6
  242. KEY_DOWN, // 0xD7
  243. KEY_LEFT, // 0xD8
  244. KEY_RIGHT, // 0xD9
  245. 0, // 0xDA
  246. 0, // 0xDB
  247. 0, // 0xDC
  248. 0, // 0xDD
  249. 0, // 0xDE
  250. 0, // 0xDF
  251. KEY_RIGHT_ALT, // 0xE0
  252. KEY_INSERT, // 0xE1
  253. KEY_HOME, // 0xE2
  254. KEY_PAGE_UP, // 0xE3
  255. KEY_DELETE, // 0xE4
  256. KEY_END, // 0xE5
  257. KEY_PAGE_DOWN, // 0xE6
  258. KEY_DOWN, // 0xE7
  259. KEY_F9, // 0xE8
  260. 0, // 0xE9
  261. 0, // 0xEA
  262. 0, // 0xEB
  263. 0, // 0xEC
  264. 0, // 0xED
  265. 0, // 0xEE
  266. 0, // 0xEF
  267. 0, // 0xF0
  268. 0, // 0xF1
  269. 0, // 0xF2
  270. 0, // 0xF3
  271. 0, // 0xF4
  272. 0, // 0xF5
  273. KEY_F1, // 0xF6
  274. KEY_F2, // 0xF7
  275. KEY_F3, // 0xF8
  276. KEY_F4, // 0xF9
  277. KEY_F5, // 0xFA
  278. KEY_F6, // 0xFB
  279. KEY_F7, // 0xFC
  280. KEY_F8, // 0xFD
  281. 0, // 0xFE
  282. 0, // 0xFF
  283. };
  284. static uint8_t sonyoas3400_ColemakMap[] = {
  285. 0, // 0x00
  286. 0, // 0x01
  287. 0, // 0x02
  288. 0, // 0x03
  289. 0, // 0x04
  290. 0, // 0x05
  291. 0, // 0x06
  292. 0, // 0x07
  293. KEY_BACKSPACE, // 0x08
  294. KEY_TAB, // 0x09
  295. 0, // 0x0A
  296. 0, // 0x0B
  297. 0, // 0x0C
  298. KEY_ENTER, // 0x0D
  299. 0, // 0x0E
  300. 0, // 0x0F
  301. 0, // 0x10
  302. 0, // 0x11
  303. 0, // 0x12
  304. 0, // 0x13
  305. 0, // 0x14
  306. 0, // 0x15
  307. 0, // 0x16
  308. 0, // 0x17
  309. 0, // 0x18
  310. 0, // 0x19
  311. 0, // 0x1A
  312. 0, // 0x1B
  313. 0, // 0x1C
  314. 0, // 0x1D
  315. 0, // 0x1E
  316. 0, // 0x1F
  317. KEY_SPACE, // 0x20
  318. 0, // 0x21
  319. 0, // 0x22
  320. 0, // 0x23
  321. 0, // 0x24
  322. 0, // 0x25
  323. 0, // 0x26
  324. KEY_QUOTE, // 0x27
  325. 0, // 0x28
  326. 0, // 0x29
  327. 0, // 0x2A
  328. 0, // 0x2B
  329. KEY_COMMA, // 0x2C
  330. KEY_MINUS, // 0x2D
  331. KEY_PERIOD, // 0x2E
  332. KEY_SLASH, // 0x2F
  333. KEY_0, // 0x30
  334. KEY_1, // 0x31
  335. KEY_2, // 0x32
  336. KEY_3, // 0x33
  337. KEY_4, // 0x34
  338. KEY_5, // 0x35
  339. KEY_6, // 0x36
  340. KEY_7, // 0x37
  341. KEY_8, // 0x38
  342. KEY_9, // 0x39
  343. 0, // 0x3A
  344. KEY_O, // 0x3B
  345. 0, // 0x3C
  346. KEY_EQUAL, // 0x3D
  347. 0, // 0x3E
  348. 0, // 0x3F
  349. 0, // 0x40
  350. KEY_A, // 0x41
  351. KEY_B, // 0x42
  352. KEY_C, // 0x43
  353. KEY_S, // 0x44
  354. KEY_F, // 0x45
  355. KEY_T, // 0x46
  356. KEY_D, // 0x47
  357. KEY_H, // 0x48
  358. KEY_U, // 0x49
  359. KEY_N, // 0x4A
  360. KEY_E, // 0x4B
  361. KEY_I, // 0x4C
  362. KEY_M, // 0x4D
  363. KEY_K, // 0x4E
  364. KEY_Y, // 0x4F
  365. KEY_SEMICOLON, // 0x50
  366. KEY_Q, // 0x51
  367. KEY_P, // 0x52
  368. KEY_R, // 0x53
  369. KEY_G, // 0x54
  370. KEY_L, // 0x55
  371. KEY_V, // 0x56
  372. KEY_W, // 0x57
  373. KEY_X, // 0x58
  374. KEY_J, // 0x59
  375. KEY_Z, // 0x5A
  376. 0, // 0x5B
  377. 0, // 0x5C
  378. 0, // 0x5D
  379. 0, // 0x5E
  380. 0, // 0x5F
  381. 0, // 0x60
  382. 0, // 0x61
  383. 0, // 0x62
  384. 0, // 0x63
  385. 0, // 0x64
  386. 0, // 0x65
  387. 0, // 0x66
  388. 0, // 0x67
  389. 0, // 0x68
  390. 0, // 0x69
  391. 0, // 0x6A
  392. 0, // 0x6B
  393. 0, // 0x6C
  394. 0, // 0x6D
  395. 0, // 0x6E
  396. 0, // 0x6F
  397. 0, // 0x70
  398. 0, // 0x71
  399. 0, // 0x72
  400. 0, // 0x73
  401. 0, // 0x74
  402. 0, // 0x75
  403. 0, // 0x76
  404. 0, // 0x77
  405. 0, // 0x78
  406. 0, // 0x79
  407. 0, // 0x7A
  408. 0, // 0x7B
  409. 0, // 0x7C
  410. 0, // 0x7D
  411. 0, // 0x7E
  412. 0, // 0x7F
  413. 0, // 0x80
  414. 0, // 0x81
  415. KEY_LEFT_BRACE, // 0x82
  416. 0, // 0x83
  417. 0, // 0x84
  418. 0, // 0x85
  419. 0, // 0x86
  420. 0, // 0x87
  421. 0, // 0x88
  422. 0, // 0x89
  423. 0, // 0x8A
  424. 0, // 0x8B
  425. 0, // 0x8C
  426. 0, // 0x8D
  427. 0, // 0x8E
  428. 0, // 0x8F
  429. KEY_LEFT_SHIFT, // 0x90
  430. KEY_LEFT_CTRL, // 0x91
  431. KEY_LEFT_ALT, // 0x92
  432. 0, // 0x93
  433. 0, // 0x94
  434. 0, // 0x95
  435. 0, // 0x96
  436. 0, // 0x97
  437. 0, // 0x98
  438. 0, // 0x99
  439. 0, // 0x9A
  440. 0, // 0x9B
  441. 0, // 0x9C
  442. 0, // 0x9D
  443. 0, // 0x9E
  444. 0, // 0x9F
  445. 0, // 0xA0
  446. 0, // 0xA1
  447. 0, // 0xA2
  448. 0, // 0xA3
  449. 0, // 0xA4
  450. 0, // 0xA5
  451. 0, // 0xA6
  452. 0, // 0xA7
  453. 0, // 0xA8
  454. 0, // 0xA9
  455. 0, // 0xAA
  456. 0, // 0xAB
  457. 0, // 0xAC
  458. 0, // 0xAD
  459. 0, // 0xAE
  460. 0, // 0xAF
  461. 0, // 0xB0
  462. 0, // 0xB1
  463. 0, // 0xB2
  464. 0, // 0xB3
  465. 0, // 0xB4
  466. 0, // 0xB5
  467. 0, // 0xB6
  468. 0, // 0xB7
  469. 0, // 0xB8
  470. 0, // 0xB9
  471. 0, // 0xBA
  472. 0, // 0xBB
  473. 0, // 0xBC
  474. 0, // 0xBD
  475. 0, // 0xBE
  476. 0, // 0xBF
  477. 0, // 0xC0
  478. 0, // 0xC1
  479. 0, // 0xC2
  480. 0, // 0xC3
  481. 0, // 0xC4
  482. 0, // 0xC5
  483. 0, // 0xC6
  484. 0, // 0xC7
  485. 0, // 0xC8
  486. 0, // 0xC9
  487. 0, // 0xCA
  488. 0, // 0xCB
  489. 0, // 0xCC
  490. 0, // 0xCD
  491. KEY_LEFT_GUI, // 0xCE
  492. KEY_RIGHT_BRACE, // 0xCF
  493. KEY_ESC, // 0xD0
  494. KEY_TILDE, // 0xD1
  495. KEY_BACKSLASH, // 0xD2
  496. KEY_F11, // 0xD3
  497. KEY_F12, // 0xD4
  498. KEY_F10, // 0xD5
  499. KEY_UP, // 0xD6
  500. KEY_DOWN, // 0xD7
  501. KEY_LEFT, // 0xD8
  502. KEY_RIGHT, // 0xD9
  503. 0, // 0xDA
  504. 0, // 0xDB
  505. 0, // 0xDC
  506. 0, // 0xDD
  507. 0, // 0xDE
  508. 0, // 0xDF
  509. KEY_RIGHT_ALT, // 0xE0
  510. KEY_INSERT, // 0xE1
  511. KEY_HOME, // 0xE2
  512. KEY_PAGE_UP, // 0xE3
  513. KEY_DELETE, // 0xE4
  514. KEY_END, // 0xE5
  515. KEY_PAGE_DOWN, // 0xE6
  516. KEY_DOWN, // 0xE7
  517. KEY_F9, // 0xE8
  518. 0, // 0xE9
  519. 0, // 0xEA
  520. 0, // 0xEB
  521. 0, // 0xEC
  522. 0, // 0xED
  523. 0, // 0xEE
  524. 0, // 0xEF
  525. 0, // 0xF0
  526. 0, // 0xF1
  527. 0, // 0xF2
  528. 0, // 0xF3
  529. 0, // 0xF4
  530. 0, // 0xF5
  531. KEY_F1, // 0xF6
  532. KEY_F2, // 0xF7
  533. KEY_F3, // 0xF8
  534. KEY_F4, // 0xF9
  535. KEY_F5, // 0xFA
  536. KEY_F6, // 0xFB
  537. KEY_F7, // 0xFC
  538. KEY_F8, // 0xFD
  539. 0, // 0xFE
  540. 0, // 0xFF
  541. };
  542. #endif