X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=Scan%2Fmatrix%2Fscan_loop.h;h=1366c5073bbc71dd7cd2633652d6ec3f5c43279a;hb=5f262ea4b68a07e9b94ce0a49c0f7196e5f32b3b;hp=a451d664ccb38eca572f8d6d16e3dff3ed32eb9b;hpb=6557022f206483aea761e057b65dba500b5decee;p=kiibohd-controller.git diff --git a/Scan/matrix/scan_loop.h b/Scan/matrix/scan_loop.h index a451d66..1366c50 100644 --- a/Scan/matrix/scan_loop.h +++ b/Scan/matrix/scan_loop.h @@ -1,15 +1,15 @@ -/* Copyright (C) 2011 by Jacob Alexander - * +/* Copyright (C) 2011-2012,2014-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 @@ -19,8 +19,7 @@ * THE SOFTWARE. */ -#ifndef __SCAN_LOOP_H -#define __SCAN_LOOP_H +#pragma once // ----- Includes ----- @@ -37,21 +36,29 @@ // ----- Defines ----- +#define KEYBOARD_BUFFER 24 // Max number of key signals to buffer + // ----- Variables ----- // NOTE: Highest Bit: Valid keypress (0x80 is valid keypress) // Other Bits: Pressed state sample counter -extern uint8_t KeyIndex_Array [KEYBOARD_SIZE + 1]; - static const uint8_t KeyIndex_Size = KEYBOARD_SIZE; +extern uint8_t KeyIndex_Array [KEYBOARD_KEYS + 1]; + static const uint8_t KeyIndex_Size = KEYBOARD_KEYS; + +extern volatile uint8_t KeyIndex_Buffer[KEYBOARD_BUFFER]; +extern volatile uint8_t KeyIndex_BufferUsed; +extern volatile uint8_t KeyIndex_Add_InputSignal; // ----- Functions ----- -void scan_setup( void ); -uint8_t scan_loop( void ); +void Scan_setup( void ); +uint8_t Scan_loop( void ); -#endif // __SCAN_LOOP_H +// Callbacks from the Macro and Output modules (useful with difficult protocols) +void Scan_finishedWithBuffer( uint8_t sentKeys ); +void Scan_finishedWithUSBBuffer( uint8_t sentKeys );