MIDIキーボードをPS4版のFF14に接続するためのアダプタ。このプログラムはPS4側のmbed用で、この他にMIDI側のmbedが必要です。
Fork of USBKeyboard_HelloWorld by
Diff: main.cpp
- Revision:
- 8:370e4348433f
- Parent:
- 7:d29d9dfda5b9
--- a/main.cpp Sat Aug 18 06:38:20 2018 +0000 +++ b/main.cpp Sat Aug 25 07:55:23 2018 +0000 @@ -38,24 +38,24 @@ 'a', '1', // ド 48 'b', '2', // レ 'c', // ミ - 'd', '3', // ファ + 'd', '3', // ファ 'e', '4', // ソ 'f', '5', // ラ 'g', // シ 59 'h', '6', // ド 60 'i', '7', // レ - 'j', // ミ + 'j', // ミ 'k', '8', // ファ 'l', '9', // ソ 'm', '0', // ラ 'n', // シ 71 'o', 'w', // ド 72 - 'p', 'x', // レ - 'q', // ミ - 'r', 'y', // ファ - 's', 'z', // ソ + 'p', 'x', // レ + 'q', // ミ + 'r', 'y', // ファ + 's', 'z', // ソ 't', '.', // ラ - 'u', // シ + 'u', // シ 'v', // ド 84 ',', '/', ';', '[', ']' }; @@ -81,21 +81,24 @@ } // 先頭が'O'で4文字以上受信済みかチェック if (((unsigned char)(indexW - indexR) >= 4) && (buffer[indexR] == 'O')) { + int key = (buffer[indexR + 2] - '0') * 10 + (buffer[indexR + 3] - '0'); switch(buffer[indexR + 1]) { case 'N': - int key = (buffer[indexR + 2] - '0') * 10 + (buffer[indexR + 3] - '0'); - if (key < 48) { + if (key < 48 || key > 84) { pc.printf("reject %d", key); - break; // 48未満は対象外 + break; // 48未満と84超過は対象外 } - if (key <= 84) { - key -= 48; - keyboard.printf("%c", ffKey[key]); - break; - } - pc.printf("other %d", key); + key -= 48; + keyboard.keyDown(ffKey[key]); + //keyboard.printf("%c", ffKey[key]); break; case 'F': + if (key < 48 || key > 84) { + pc.printf("reject %d", key); + break; // 48未満と84超過は対象外 + } + key -= 48; + keyboard.keyUp(ffKey[key]); break; default: pc.printf("不正なコードの受信 %c", buffer[indexR + 1]);