2015-06-14 20:56:56 +00:00
/* Copyright (C) 2013-2015 by Jacob Alexander
2014-04-06 18:49:27 +00:00
*
2016-02-23 22:35:08 +00:00
* 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 :
2013-11-17 00:21:21 +00:00
*
2016-02-23 22:35:08 +00:00
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software .
2013-11-17 00:21:21 +00:00
*
2016-02-23 22:35:08 +00:00
* 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 .
2013-04-14 02:35:59 +00:00
*/
2015-06-14 20:56:56 +00:00
# pragma once
2013-04-14 02:35:59 +00:00
// ----- Includes -----
// Compiler Includes
# include <stdint.h>
// Local Includes
// ----- Defines -----
# define KEYBOARD_KEYS 0xFF // TODO Determine max number of keys
# define KEYBOARD_BUFFER 24 // Max number of key signals to buffer
// This limits the NKRO-ability, so at 24, the keyboard is 24KRO
// The buffer is really only needed for converter modules
// An alternative macro module could be written for matrix modules and still work well
// ----- Variables -----
extern volatile uint8_t KeyIndex_Buffer [ KEYBOARD_BUFFER ] ;
extern volatile uint8_t KeyIndex_BufferUsed ;
// ----- Functions -----
// Functions used by main.c
2014-04-16 07:15:09 +00:00
void Scan_setup ( ) ;
uint8_t Scan_loop ( ) ;
2013-04-14 02:35:59 +00:00
// Functions available to macro.c
2014-04-06 18:49:27 +00:00
uint8_t Scan_sendData ( uint8_t dataPayload ) ;
2013-04-14 02:35:59 +00:00
2014-09-11 17:57:30 +00:00
void Scan_finishedWithMacro ( uint8_t sentKeys ) ;
void Scan_finishedWithOutput ( uint8_t sentKeys ) ;
2013-04-14 02:35:59 +00:00