X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;ds=sidebyside;f=Scan%2FMD1_1%2Fscan_loop.c;fp=Scan%2FMD1_1%2Fscan_loop.c;h=0000000000000000000000000000000000000000;hb=1fd19c48eac0d7fd8834aa91783385c2844dca9a;hp=74218a0eed7751e0f9a8476533d0e80c01457515;hpb=5f530b524845293c6b8a4e553e98bf75b2b1ad57;p=kiibohd-controller.git diff --git a/Scan/MD1_1/scan_loop.c b/Scan/MD1_1/scan_loop.c deleted file mode 100644 index 74218a0..0000000 --- a/Scan/MD1_1/scan_loop.c +++ /dev/null @@ -1,168 +0,0 @@ -/* Copyright (C) 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 - * 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. - */ - -// ----- Includes ----- - -// Compiler Includes -#include - -// Project Includes -#include -#include -#include -#include -#include -#include -#include - -// Local Includes -#include "scan_loop.h" - - - -// ----- Function Declarations ----- - -// ----- Variables ----- - -// Number of scans since the last USB send -uint16_t Scan_scanCount = 0; - - - -// ----- Functions ----- - -// Setup -inline void Scan_setup() -{ - // Setup GPIO pins for matrix scanning - Matrix_setup(); - - // Setup ISSI chip to control the leds - LED_setup(); - - // Reset scan count - Scan_scanCount = 0; -} - - -// Main Detection Loop -inline uint8_t Scan_loop() -{ - Matrix_scan( Scan_scanCount++ ); - - // Process any LED events - LED_scan(); - - return 0; -} - - -// Signal from Macro Module that all keys have been processed (that it knows about) -inline void Scan_finishedWithMacro( uint8_t sentKeys ) -{ -} - - -// Signal from Output Module that all keys have been processed (that it knows about) -inline void Scan_finishedWithOutput( uint8_t sentKeys ) -{ - // Reset scan loop indicator (resets each key debounce state) - // TODO should this occur after USB send or Macro processing? - Scan_scanCount = 0; -} - - - -// ----- Capabilities ----- - -// Custom capability examples -// Refer to kll.h in Macros/PartialMap for state and stateType information -void CustomAction_action1_capability( uint8_t state, uint8_t stateType, uint8_t *args ) -{ - // Display capability name - // XXX This is required for debug cli to give you a list of capabilities - if ( stateType == 0xFF && state == 0xFF ) - { - print("CustomAction_action1_capability()"); - return; - } - - // Prints Action1 info message to the debug cli - info_print("Action1"); -} - -uint8_t CustomAction_blockHold_storage = 0; -void CustomAction_blockHold_capability( uint8_t state, uint8_t stateType, uint8_t *args ) -{ - // Display capability name - if ( stateType == 0xFF && state == 0xFF ) - { - print("CustomAction_blockHold_capability(usbCode)"); - return; - } - - // Retrieve 8-bit argument - uint8_t key = args[0]; - - // We only care about normal keys - if ( stateType == 0x00 ) - { - // Block given key if we're in the "Press" or "Hold" state - if ( ( state == 0x01 || state == 0x02 ) - && CustomAction_blockHold_storage == 0 ) - { - CustomAction_blockHold_storage = key; - info_msg("Blocking Key: "); - printHex( key ); - print( NL ); - } - // Release if in the "Off" or "Release" state and we're blocking - else if ( ( state == 0x00 || state == 0x03 ) - && key == CustomAction_blockHold_storage ) - { - info_msg("Unblocking Key: "); - printHex( CustomAction_blockHold_storage ); - print( NL ); - CustomAction_blockHold_storage = 0; - } - } -} - -void CustomAction_blockKey_capability( uint8_t state, uint8_t stateType, uint8_t *args ) -{ - // Display capability name - if ( stateType == 0xFF && state == 0xFF ) - { - print("CustomAction_blockKey_capability(usbCode)"); - return; - } - - // Retrieve 8-bit argument - uint8_t key = args[0]; - - // If key is not blocked, process - if ( key != CustomAction_blockHold_storage ) - { - extern void Output_usbCodeSend_capability( uint8_t state, uint8_t stateType, uint8_t *args ); - Output_usbCodeSend_capability( state, stateType, &key ); - } -} -