Updating MBC-55X scan module
authorJacob Alexander <haata@kiibohd.com>
Sun, 12 Jun 2016 22:53:25 +0000 (15:53 -0700)
committerJacob Alexander <haata@kiibohd.com>
Sun, 12 Jun 2016 22:53:25 +0000 (15:53 -0700)
Scan/MBC-55X/defaultMap.h [deleted file]
Scan/MBC-55X/defaultMap.kll [new file with mode: 0644]
Scan/MBC-55X/scan_loop.c
Scan/MBC-55X/scan_loop.h
Scan/MBC-55X/setup.cmake

diff --git a/Scan/MBC-55X/defaultMap.h b/Scan/MBC-55X/defaultMap.h
deleted file mode 100644 (file)
index fbf6529..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-/* Copyright (C) 2013-2015 by Jacob Alexander
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-#pragma once
-
-// This file contains various key layouts for the Sanyo MBC-55X Computer Keyboard
-
-
-// ----- Variables -----
-
-// Default 1-indexed key mappings
-static uint8_t DefaultMap_Lookup[] = {
-                               0, // 0x00
-                               0, // 0x01
-                               0, // 0x02
-                               0, // 0x03
-                               0, // 0x04
-                               0, // 0x05
-                               0, // 0x06
-                               0, // 0x07
-                               KEY_BACKSPACE, // 0x08
-                               KEY_TAB, // 0x09
-                               0, // 0x0A
-                               0, // 0x0B
-                               0, // 0x0C
-                               KEY_ENTER, // 0x0D
-                               0, // 0x0E
-                               0, // 0x0F
-                               0, // 0x10
-                               0, // 0x11
-                               0, // 0x12
-                               0, // 0x13
-                               0, // 0x14
-                               0, // 0x15
-                               0, // 0x16
-                               0, // 0x17
-                               0, // 0x18
-                               0, // 0x19
-                               0, // 0x1A
-                               KEY_ESC, // 0x1B
-                               0, // 0x1C
-                               0, // 0x1D
-                               0, // 0x1E
-                               0, // 0x1F
-                               KEY_SPACE, // 0x20
-                               0, // 0x21
-                               0, // 0x22
-                               0, // 0x23
-                               0, // 0x24
-                               0, // 0x25
-                               0, // 0x26
-                               KEY_QUOTE, // 0x27
-                               0, // 0x28
-                               0, // 0x29
-                               0, // 0x2A
-                               0, // 0x2B
-                               KEY_COMMA, // 0x2C
-                               KEY_MINUS, // 0x2D
-                               KEY_PERIOD, // 0x2E
-                               KEY_SLASH, // 0x2F
-                               KEY_0, // 0x30
-                               KEY_1, // 0x31
-                               KEY_2, // 0x32
-                               KEY_3, // 0x33
-                               KEY_4, // 0x34
-                               KEY_5, // 0x35
-                               KEY_6, // 0x36
-                               KEY_7, // 0x37
-                               KEY_8, // 0x38
-                               KEY_9, // 0x39
-                               0, // 0x3A
-                               KEY_SEMICOLON, // 0x3B
-                               0, // 0x3C
-                               KEY_EQUAL, // 0x3D
-                               0, // 0x3E
-                               0, // 0x3F
-                               0, // 0x40
-                               0, // 0x41
-                               0, // 0x42
-                               0, // 0x43
-                               0, // 0x44
-                               0, // 0x45
-                               0, // 0x46
-                               0, // 0x47
-                               0, // 0x48
-                               0, // 0x49
-                               0, // 0x4A
-                               0, // 0x4B
-                               0, // 0x4C
-                               0, // 0x4D
-                               0, // 0x4E
-                               0, // 0x4F
-                               0, // 0x50
-                               0, // 0x51
-                               0, // 0x52
-                               0, // 0x53
-                               0, // 0x54
-                               0, // 0x55
-                               0, // 0x56
-                               0, // 0x57
-                               0, // 0x58
-                               0, // 0x59
-                               0, // 0x5A
-                               KEY_LEFT_BRACE, // 0x5B
-                               KEY_BACKSLASH, // 0x5C
-                               KEY_RIGHT_BRACE, // 0x5D
-                               0, // 0x5E
-                               0, // 0x5F
-                               KEY_TILDE, // 0x60
-                               KEY_A, // 0x61
-                               KEY_B, // 0x62
-                               KEY_C, // 0x63
-                               KEY_D, // 0x64
-                               KEY_E, // 0x65
-                               KEY_F, // 0x66
-                               KEY_G, // 0x67
-                               KEY_H, // 0x68
-                               KEY_I, // 0x69
-                               KEY_J, // 0x6A
-                               KEY_K, // 0x6B
-                               KEY_L, // 0x6C
-                               KEY_M, // 0x6D
-                               KEY_N, // 0x6E
-                               KEY_O, // 0x6F
-                               KEY_P, // 0x70
-                               KEY_Q, // 0x71
-                               KEY_R, // 0x72
-                               KEY_S, // 0x73
-                               KEY_T, // 0x74
-                               KEY_U, // 0x75
-                               KEY_V, // 0x76
-                               KEY_W, // 0x77
-                               KEY_X, // 0x78
-                               KEY_Y, // 0x79
-                               KEY_Z, // 0x7A
-                               0, // 0x7B
-                               0, // 0x7C
-                               0, // 0x7D
-                               0, // 0x7E
-                               KEY_DELETE, // 0x7F
-                               0, // 0x80
-                               0, // 0x81
-                               0, // 0x82
-                               0, // 0x83
-                               0, // 0x84
-                               0, // 0x85
-                               0, // 0x86
-                               0, // 0x87
-                               0, // 0x88
-                               0, // 0x89
-                               0, // 0x8A
-                               0, // 0x8B
-                               0, // 0x8C
-                               0, // 0x8D
-                               0, // 0x8E
-                               0, // 0x8F
-                               0, // 0x90
-                               0, // 0x91
-                               0, // 0x92
-                               0, // 0x93
-                               0, // 0x94
-                               0, // 0x95
-                               0, // 0x96
-                               0, // 0x97
-                               0, // 0x98
-                               0, // 0x99
-                               0, // 0x9A
-                               0, // 0x9B
-                               0, // 0x9C
-                               0, // 0x9D
-                               0, // 0x9E
-                               0, // 0x9F
-                               0, // 0xA0
-                               0, // 0xA1
-                               0, // 0xA2
-                               0, // 0xA3
-                               0, // 0xA4
-                               0, // 0xA5
-                               0, // 0xA6
-                               0, // 0xA7
-                               0, // 0xA8
-                               0, // 0xA9
-                               0, // 0xAA
-                               0, // 0xAB
-                               0, // 0xAC
-                               0, // 0xAD
-                               0, // 0xAE
-                               0, // 0xAF
-                               0, // 0xB0
-                               KEYPAD_0, // 0xB1
-                               KEYPAD_PERIOD, // 0xB2
-                               0, // 0xB3
-                               0, // 0xB4
-                               0, // 0xB5
-                               0, // 0xB6
-                               0, // 0xB7
-                               0, // 0xB8
-                               0, // 0xB9
-                               0, // 0xBA
-                               0, // 0xBB
-                               0, // 0xBC
-                               0, // 0xBD
-                               0, // 0xBE
-                               0, // 0xBF
-                               KEYPAD_1, // 0xC0
-                               KEYPAD_2, // 0xC1
-                               KEYPAD_3, // 0xC2
-                               KEYPAD_ENTER, // 0xC3
-                               0, // 0xC4
-                               0, // 0xC5
-                               0, // 0xC6
-                               0, // 0xC7
-                               0, // 0xC8
-                               0, // 0xC9
-                               0, // 0xCA
-                               0, // 0xCB
-                               0, // 0xCC
-                               0, // 0xCD
-                               0, // 0xCE
-                               0, // 0xCF
-                               KEYPAD_4, // 0xD0
-                               KEYPAD_5, // 0xD1
-                               KEYPAD_6, // 0xD2
-                               KEYPAD_COMMA, // 0xD3
-                               0, // 0xD4
-                               0, // 0xD5
-                               0, // 0xD6
-                               0, // 0xD7
-                               0, // 0xD8
-                               0, // 0xD9
-                               0, // 0xDA
-                               0, // 0xDB
-                               0, // 0xDC
-                               0, // 0xDD
-                               0, // 0xDE
-                               0, // 0xDF
-                               0, // 0xE0
-                               KEYPAD_7, // 0xE1
-                               KEYPAD_8, // 0xE2
-                               KEYPAD_9, // 0xE3
-                               KEYPAD_MINUS, // 0xE4
-                               0, // 0xE5
-                               0, // 0xE6
-                               0, // 0xE7
-                               0, // 0xE8
-                               0, // 0xE9
-                               0, // 0xEA
-                               0, // 0xEB
-                               0, // 0xEC
-                               0, // 0xED
-                               0, // 0xEE
-                               0, // 0xEF
-                               0, // 0xF0
-                               KEY_UP, // 0xF1
-                               KEY_DOWN, // 0xF2
-                               KEY_LEFT, // 0xF3
-                               KEY_RIGHT, // 0xF4
-                               KEY_LSHIFT, // 0xF5
-                               KEY_CTRL, // 0xF6
-                               0, // 0xF7
-                               0, // 0xF8
-                               0, // 0xF9
-                               0, // 0xFA
-                               0, // 0xFB
-                               0, // 0xFC
-                               0, // 0xFD
-                               0, // 0xFE
-                               0, // 0xFF
-};
-
diff --git a/Scan/MBC-55X/defaultMap.kll b/Scan/MBC-55X/defaultMap.kll
new file mode 100644 (file)
index 0000000..90a0c8a
--- /dev/null
@@ -0,0 +1,92 @@
+Name = MD1;
+Version = 0.1;
+Author = "HaaTa (Jacob Alexander) 2016";
+KLL = 0.3d;
+
+# Modified Date
+Date = 2016-06-12;
+
+S0x08 : U"Backspace";
+S0x09 : U"Tab";
+
+S0x1B : U"Esc";
+
+S0x20 : U"Space";
+
+S0x27 : U"Quote";
+
+S0x2C : U"Comma";
+S0x2D : U"Minus";
+S0x2E : U"Period";
+S0x2F : U"Slash";
+S0x30 : U"0";
+S0x31 : U"1";
+S0x32 : U"2";
+S0x33 : U"3";
+S0x34 : U"4";
+S0x35 : U"5";
+S0x36 : U"6";
+S0x37 : U"7";
+S0x38 : U"8";
+S0x39 : U"9";
+S0x3B : U"Semicolon";
+S0x3D : U"Equal";
+S0x5B : U"LBracket";
+S0x5C : U"Backslash";
+S0x5D : U"RBracket";
+
+S0x60 : U"Backtick";
+S0x61 : U"A";
+S0x62 : U"B";
+S0x63 : U"C";
+S0x64 : U"D";
+S0x65 : U"E";
+S0x66 : U"F";
+S0x67 : U"G";
+S0x68 : U"H";
+S0x69 : U"I";
+S0x6A : U"J";
+S0x6B : U"K";
+S0x6C : U"L";
+S0x6D : U"M";
+S0x6E : U"N";
+S0x6F : U"O";
+S0x70 : U"P";
+S0x71 : U"Q";
+S0x72 : U"R";
+S0x73 : U"S";
+S0x74 : U"T";
+S0x75 : U"U";
+S0x76 : U"V";
+S0x77 : U"W";
+S0x78 : U"X";
+S0x79 : U"Y";
+S0x7A : U"Z";
+
+S0x7F : U"Delete";
+
+S0xB1 : U"P0";
+S0xB2 : U"P.";
+
+S0xC0 : U"P1";
+S0xC1 : U"P2";
+S0xC2 : U"P3";
+S0xC3 : U"PEnter";
+
+S0xD0 : U"P4";
+S0xD1 : U"P5";
+S0xD2 : U"P6";
+S0xD3 : U"P,";
+
+S0xE1 : U"P7";
+S0xE2 : U"P8";
+S0xE3 : U"P9";
+S0xE4 : U"P-";
+
+S0xF1 : U"Up";
+S0xF2 : U"Down";
+S0xF3 : U"Left";
+S0xF4 : U"Right";
+S0xF5 : U"LShift";
+S0xF6 : U"Ctrl";
+
index bbbe7a05983bfaf40ac717a6c23ccce1a6a7e298..d6290c90ce3f42e4c254e3a743d63c605cf5496a 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013,2014 by Jacob Alexander
+/* Copyright (C) 2013,2014,2016 by Jacob Alexander
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -25,6 +25,7 @@
 #include <Lib/ScanLib.h>
 
 // Project Includes
+#include <kll_defs.h>
 #include <led.h>
 #include <macro.h>
 #include <print.h>
 // ----- Macros -----
 
 
+// ----- Enums -----
+
+// Keypress States
+typedef enum KeyPosition {
+       KeyState_Off     = 0,
+       KeyState_Press   = 1,
+       KeyState_Hold    = 2,
+       KeyState_Release = 3,
+       KeyState_Invalid,
+} KeyPosition;
+
+
 
 // ----- Variables -----
 
@@ -212,7 +225,7 @@ void processKeyValue( uint8_t keyValue )
        case 0x09: // ^I
        case 0x0D: // ^M
        case 0x1B: // ^[
-               Macro_bufferAdd( keyValue );
+               Macro_keyState( keyValue, KeyState_Press );
                break;
        // 0x40 Offset Keys
        // Add Ctrl key and offset to the lower alphabet
@@ -221,8 +234,8 @@ void processKeyValue( uint8_t keyValue )
        case 0x1D: // ^]
        case 0x1E: // ^^
        case 0x1F: // ^_
-               Macro_bufferAdd( 0xF6 );
-               Macro_bufferAdd( keyValue + 0x40 );
+               Macro_keyState( 0xF6, KeyState_Press );
+               Macro_keyState( keyValue + 0x40, KeyState_Press );
                break;
 
        // - Add Shift key and offset to non-shifted key -
@@ -231,73 +244,73 @@ void processKeyValue( uint8_t keyValue )
        case 0x23: // #
        case 0x24: // $
        case 0x25: // %
-               Macro_bufferAdd( 0xF5 );
-               Macro_bufferAdd( keyValue + 0x10 );
+               Macro_keyState( 0xF5, KeyState_Press );
+               Macro_keyState( keyValue + 0x10, KeyState_Press );
                break;
        // 0x11 Offset Keys
        case 0x26: // &
        case 0x28: // (
-               Macro_bufferAdd( 0xF5 );
-               Macro_bufferAdd( keyValue + 0x11 );
+               Macro_keyState( 0xF5, KeyState_Press );
+               Macro_keyState( keyValue + 0x11, KeyState_Press );
                break;
        // 0x07 Offset Keys
        case 0x29: // )
-               Macro_bufferAdd( 0xF5 );
-               Macro_bufferAdd( keyValue + 0x07 );
+               Macro_keyState( 0xF5, KeyState_Press );
+               Macro_keyState( keyValue + 0x07, KeyState_Press );
                break;
        // -0x0E Offset Keys
        case 0x40: // @
-               Macro_bufferAdd( 0xF5 );
-               Macro_bufferAdd( keyValue - 0x0E );
+               Macro_keyState( 0xF5, KeyState_Press );
+               Macro_keyState( keyValue - 0x0E, KeyState_Press );
                break;
        // 0x0E Offset Keys
        case 0x2A: // *
-               Macro_bufferAdd( 0xF5 );
-               Macro_bufferAdd( keyValue + 0x0E );
+               Macro_keyState( 0xF5, KeyState_Press );
+               Macro_keyState( keyValue + 0x0E, KeyState_Press );
                break;
        // 0x12 Offset Keys
        case 0x2B: // +
-               Macro_bufferAdd( 0xF5 );
-               Macro_bufferAdd( keyValue + 0x12 );
+               Macro_keyState( 0xF5, KeyState_Press );
+               Macro_keyState( keyValue + 0x12, KeyState_Press );
                break;
        // 0x05 Offset Keys
        case 0x22: // "
-               Macro_bufferAdd( 0xF5 );
-               Macro_bufferAdd( keyValue + 0x05 );
+               Macro_keyState( 0xF5, KeyState_Press );
+               Macro_keyState( keyValue + 0x05, KeyState_Press );
                break;
        // 0x01 Offset Keys
        case 0x3A: // :
-               Macro_bufferAdd( 0xF5 );
-               Macro_bufferAdd( keyValue + 0x01 );
+               Macro_keyState( 0xF5, KeyState_Press );
+               Macro_keyState( keyValue + 0x01, KeyState_Press );
                break;
        // -0x10 Offset Keys
        case 0x3C: // <
        case 0x3E: // >
        case 0x3F: // ?
-               Macro_bufferAdd( 0xF5 );
-               Macro_bufferAdd( keyValue - 0x10 );
+               Macro_keyState( 0xF5, KeyState_Press );
+               Macro_keyState( keyValue - 0x10, KeyState_Press );
                break;
        // -0x28 Offset Keys
        case 0x5E: // ^
-               Macro_bufferAdd( 0xF5 );
-               Macro_bufferAdd( keyValue - 0x28 );
+               Macro_keyState( 0xF5, KeyState_Press );
+               Macro_keyState( keyValue - 0x28, KeyState_Press );
                break;
        // -0x32 Offset Keys
        case 0x5F: // _
-               Macro_bufferAdd( 0xF5 );
-               Macro_bufferAdd( keyValue - 0x32 );
+               Macro_keyState( 0xF5, KeyState_Press );
+               Macro_keyState( keyValue - 0x32, KeyState_Press );
                break;
        // -0x20 Offset Keys
        case 0x7B: // {
        case 0x7C: // |
        case 0x7D: // }
-               Macro_bufferAdd( 0xF5 );
-               Macro_bufferAdd( keyValue - 0x20 );
+               Macro_keyState( 0xF5, KeyState_Press );
+               Macro_keyState( keyValue - 0x20, KeyState_Press );
                break;
        // -0x1E Offset Keys
        case 0x7E: // ~
-               Macro_bufferAdd( 0xF5 );
-               Macro_bufferAdd( keyValue - 0x1E );
+               Macro_keyState( 0xF5, KeyState_Press );
+               Macro_keyState( keyValue - 0x1E, KeyState_Press );
                break;
        // All other keys
        default:
@@ -312,8 +325,8 @@ void processKeyValue( uint8_t keyValue )
                // Add Ctrl key and offset to the lower alphabet
                if ( keyValue >= 0x00 && keyValue <= 0x1F )
                {
-                       Macro_bufferAdd( 0xF6 );
-                       Macro_bufferAdd( keyValue + 0x60 );
+                       Macro_keyState( 0xF6, KeyState_Press );
+                       Macro_keyState( keyValue + 0x60, KeyState_Press );
                }
 
                // Shift Characters are from 0x41 to 0x59
@@ -321,14 +334,14 @@ void processKeyValue( uint8_t keyValue )
                // Add Shift key and offset to the lower alphabet
                else if ( keyValue >= 0x41 && keyValue <= 0x5A )
                {
-                       Macro_bufferAdd( 0xF5 );
-                       Macro_bufferAdd( keyValue + 0x20 );
+                       Macro_keyState( 0xF5, KeyState_Press );
+                       Macro_keyState( keyValue + 0x20, KeyState_Press );
                }
 
                // Everything else
                else
                {
-                       Macro_bufferAdd( keyValue );
+                       Macro_keyState( keyValue, KeyState_Press );
                }
                break;
        }
@@ -353,12 +366,12 @@ uint8_t Scan_sendData( uint8_t dataPayload )
 }
 
 // Signal KeyIndex_Buffer that it has been properly read
-void Scan_finishedWithBuffer( uint8_t sentKeys )
+void Scan_finishedWithMacro( uint8_t sentKeys )
 {
 }
 
 // Signal that the keys have been properly sent over USB
-void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
+void Scan_finishedWithOutput( uint8_t sentKeys )
 {
        cli(); // Disable Interrupts
 
@@ -379,3 +392,8 @@ void Scan_unlockKeyboard( void )
 {
 }
 
+// NOTE: Does nothing with the MBC-55x
+void Scan_currentChange( unsigned int current )
+{
+}
+
index 6b68ee11ff0c2b917fddcd97dca7ee04fb96fbc8..c16c9ef7e619dcca9e4dce98c4c1e3238f612b05 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 2013-2015 by Jacob Alexander
+/* Copyright (C) 2013-2016 by Jacob Alexander
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -48,16 +48,17 @@ extern volatile     uint8_t KeyIndex_Add_InputSignal;
 // ----- Functions -----
 
 // Functions used by main.c
-void Scan_setup( void );
-uint8_t Scan_loop( void );
+void Scan_setup();
+uint8_t Scan_loop();
 
 
 // Functions available to macro.c
 uint8_t Scan_sendData( uint8_t dataPayload );
 
-void Scan_finishedWithBuffer( uint8_t sentKeys );
-void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
+void Scan_finishedWithMacro( uint8_t sentKeys );
+void Scan_finishedWithOutput( uint8_t sentKeys );
 void Scan_lockKeyboard( void );
 void Scan_unlockKeyboard( void );
 void Scan_resetKeyboard( void );
+void Scan_currentChange( unsigned int current );
 
index 5a8e71a128233fa6dd205c05298aa3b45c3cbd47..e90a6484118c9d77b5fb34f5b898f8fcbbbdb3c6 100644 (file)
@@ -1,6 +1,6 @@
 ###| CMake Kiibohd Controller Scan Module |###
 #
-# Written by Jacob Alexander in 2013,2014 for the Kiibohd Controller
+# Written by Jacob Alexander in 2013,2014,2016 for the Kiibohd Controller
 #
 # Released into the Public Domain
 #
@@ -13,7 +13,7 @@
 # Module C files
 #
 
-set( SCAN_SRCS
+set( Module_SRCS
        scan_loop.c
 )
 
@@ -26,7 +26,7 @@ set( SCAN_SRCS
 ###
 # Compiler Family Compatibility
 #
-set( ScanModuleCompatibility
+set( ModuleCompatibility
        arm
        avr
 )