diff --git a/Scan/MBC-55X/defaultMap.h b/Scan/MBC-55X/defaultMap.h deleted file mode 100644 index fbf6529..0000000 --- a/Scan/MBC-55X/defaultMap.h +++ /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 index 0000000..90a0c8a --- /dev/null +++ b/Scan/MBC-55X/defaultMap.kll @@ -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"; + diff --git a/Scan/MBC-55X/scan_loop.c b/Scan/MBC-55X/scan_loop.c index bbbe7a0..d6290c9 100644 --- a/Scan/MBC-55X/scan_loop.c +++ b/Scan/MBC-55X/scan_loop.c @@ -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 // Project Includes +#include #include #include #include @@ -40,6 +41,18 @@ // ----- 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 ) +{ +} + diff --git a/Scan/MBC-55X/scan_loop.h b/Scan/MBC-55X/scan_loop.h index 6b68ee1..c16c9ef 100644 --- a/Scan/MBC-55X/scan_loop.h +++ b/Scan/MBC-55X/scan_loop.h @@ -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 ); diff --git a/Scan/MBC-55X/setup.cmake b/Scan/MBC-55X/setup.cmake index 5a8e71a..e90a648 100644 --- a/Scan/MBC-55X/setup.cmake +++ b/Scan/MBC-55X/setup.cmake @@ -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 )