Major code cleanup and preparation for PartialMap Macro Module
- Code should be working, but much is untested - All of the old modules will need to update and use the new DefaultMap keymap - There might still be some naming conflicts with some Scan Modules
This commit is contained in:
		
							parent
							
								
									f3e22fb242
								
							
						
					
					
						commit
						9d423a64a8
					
				
					 81 changed files with 1373 additions and 904 deletions
				
			
		| 
						 | 
				
			
			@ -1,15 +1,15 @@
 | 
			
		|||
/* Copyright (C) 2011-2013 by Jacob Alexander
 | 
			
		||||
 * 
 | 
			
		||||
/* Copyright (C) 2011-2014 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
 | 
			
		||||
| 
						 | 
				
			
			@ -39,11 +39,6 @@
 | 
			
		|||
 | 
			
		||||
// ----- Macros -----
 | 
			
		||||
 | 
			
		||||
// Make sure we haven't overflowed the buffer
 | 
			
		||||
#define bufferAdd(byte) \
 | 
			
		||||
		if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER ) \
 | 
			
		||||
			KeyIndex_Buffer[KeyIndex_BufferUsed++] = byte
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// ----- Variables -----
 | 
			
		||||
| 
						 | 
				
			
			@ -66,10 +61,10 @@ static uint8_t cmd_ACK_AA    = 0x10; // Keyboard will send ack (0xAA) back to PC
 | 
			
		|||
// ----- Functions -----
 | 
			
		||||
 | 
			
		||||
// Setup
 | 
			
		||||
inline void scan_setup()
 | 
			
		||||
inline void Scan_setup()
 | 
			
		||||
{
 | 
			
		||||
	// Setup the the USART interface for keyboard data input
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	// Setup baud rate
 | 
			
		||||
	// 16 MHz / ( 16 * Baud ) = UBRR
 | 
			
		||||
	// Baud <- 3.358 ms per bit, thus 1000 / 3.358 = 297.80
 | 
			
		||||
| 
						 | 
				
			
			@ -92,7 +87,7 @@ inline void scan_setup()
 | 
			
		|||
// Nothing is needed here for the Kaypro, but the function is available as part of the api to be called in a polling fashion
 | 
			
		||||
// TODO
 | 
			
		||||
//  - Add songs :D
 | 
			
		||||
inline uint8_t scan_loop()
 | 
			
		||||
inline uint8_t Scan_loop()
 | 
			
		||||
{
 | 
			
		||||
	// We *could* do extra offline processing here, but, it's not really needed for the Kaypro 1 keyboard
 | 
			
		||||
	return 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -126,7 +121,7 @@ ISR(USART1_RX_vect)
 | 
			
		|||
	case 0x09: // ^I
 | 
			
		||||
	case 0x0D: // ^M
 | 
			
		||||
	case 0x1B: // ^[
 | 
			
		||||
		bufferAdd( keyValue );
 | 
			
		||||
		Macro_bufferAdd( keyValue );
 | 
			
		||||
		break;
 | 
			
		||||
	// 0x40 Offset Keys
 | 
			
		||||
	// Add Ctrl key and offset to the lower alphabet
 | 
			
		||||
| 
						 | 
				
			
			@ -135,8 +130,8 @@ ISR(USART1_RX_vect)
 | 
			
		|||
	case 0x1D: // ^]
 | 
			
		||||
	case 0x1E: // ^^
 | 
			
		||||
	case 0x1F: // ^_
 | 
			
		||||
		bufferAdd( 0xF6 );
 | 
			
		||||
		bufferAdd( keyValue + 0x40 );
 | 
			
		||||
		Macro_bufferAdd( 0xF6 );
 | 
			
		||||
		Macro_bufferAdd( keyValue + 0x40 );
 | 
			
		||||
		break;
 | 
			
		||||
 | 
			
		||||
	// - Add Shift key and offset to non-shifted key -
 | 
			
		||||
| 
						 | 
				
			
			@ -145,73 +140,73 @@ ISR(USART1_RX_vect)
 | 
			
		|||
	case 0x23: // #
 | 
			
		||||
	case 0x24: // $
 | 
			
		||||
	case 0x25: // %
 | 
			
		||||
		bufferAdd( 0xF5 );
 | 
			
		||||
		bufferAdd( keyValue + 0x10 );
 | 
			
		||||
		Macro_bufferAdd( 0xF5 );
 | 
			
		||||
		Macro_bufferAdd( keyValue + 0x10 );
 | 
			
		||||
		break;
 | 
			
		||||
	// 0x11 Offset Keys
 | 
			
		||||
	case 0x26: // &
 | 
			
		||||
	case 0x28: // (
 | 
			
		||||
		bufferAdd( 0xF5 );
 | 
			
		||||
		bufferAdd( keyValue + 0x11 );
 | 
			
		||||
		Macro_bufferAdd( 0xF5 );
 | 
			
		||||
		Macro_bufferAdd( keyValue + 0x11 );
 | 
			
		||||
		break;
 | 
			
		||||
	// 0x07 Offset Keys
 | 
			
		||||
	case 0x29: // )
 | 
			
		||||
		bufferAdd( 0xF5 );
 | 
			
		||||
		bufferAdd( keyValue + 0x07 );
 | 
			
		||||
		Macro_bufferAdd( 0xF5 );
 | 
			
		||||
		Macro_bufferAdd( keyValue + 0x07 );
 | 
			
		||||
		break;
 | 
			
		||||
	// -0x0E Offset Keys
 | 
			
		||||
	case 0x40: // @
 | 
			
		||||
		bufferAdd( 0xF5 );
 | 
			
		||||
		bufferAdd( keyValue - 0x0E );
 | 
			
		||||
		Macro_bufferAdd( 0xF5 );
 | 
			
		||||
		Macro_bufferAdd( keyValue - 0x0E );
 | 
			
		||||
		break;
 | 
			
		||||
	// 0x0E Offset Keys
 | 
			
		||||
	case 0x2A: // *
 | 
			
		||||
		bufferAdd( 0xF5 );
 | 
			
		||||
		bufferAdd( keyValue + 0x0E );
 | 
			
		||||
		Macro_bufferAdd( 0xF5 );
 | 
			
		||||
		Macro_bufferAdd( keyValue + 0x0E );
 | 
			
		||||
		break;
 | 
			
		||||
	// 0x12 Offset Keys
 | 
			
		||||
	case 0x2B: // +
 | 
			
		||||
		bufferAdd( 0xF5 );
 | 
			
		||||
		bufferAdd( keyValue + 0x12 );
 | 
			
		||||
		Macro_bufferAdd( 0xF5 );
 | 
			
		||||
		Macro_bufferAdd( keyValue + 0x12 );
 | 
			
		||||
		break;
 | 
			
		||||
	// 0x05 Offset Keys
 | 
			
		||||
	case 0x22: // "
 | 
			
		||||
		bufferAdd( 0xF5 );
 | 
			
		||||
		bufferAdd( keyValue + 0x05 );
 | 
			
		||||
		Macro_bufferAdd( 0xF5 );
 | 
			
		||||
		Macro_bufferAdd( keyValue + 0x05 );
 | 
			
		||||
		break;
 | 
			
		||||
	// 0x01 Offset Keys
 | 
			
		||||
	case 0x3A: // :
 | 
			
		||||
		bufferAdd( 0xF5 );
 | 
			
		||||
		bufferAdd( keyValue + 0x01 );
 | 
			
		||||
		Macro_bufferAdd( 0xF5 );
 | 
			
		||||
		Macro_bufferAdd( keyValue + 0x01 );
 | 
			
		||||
		break;
 | 
			
		||||
	// -0x10 Offset Keys
 | 
			
		||||
	case 0x3C: // <
 | 
			
		||||
	case 0x3E: // >
 | 
			
		||||
	case 0x3F: // ?
 | 
			
		||||
		bufferAdd( 0xF5 );
 | 
			
		||||
		bufferAdd( keyValue - 0x10 );
 | 
			
		||||
		Macro_bufferAdd( 0xF5 );
 | 
			
		||||
		Macro_bufferAdd( keyValue - 0x10 );
 | 
			
		||||
		break;
 | 
			
		||||
	// -0x28 Offset Keys
 | 
			
		||||
	case 0x5E: // ^
 | 
			
		||||
		bufferAdd( 0xF5 );
 | 
			
		||||
		bufferAdd( keyValue - 0x28 );
 | 
			
		||||
		Macro_bufferAdd( 0xF5 );
 | 
			
		||||
		Macro_bufferAdd( keyValue - 0x28 );
 | 
			
		||||
		break;
 | 
			
		||||
	// -0x32 Offset Keys
 | 
			
		||||
	case 0x5F: // _
 | 
			
		||||
		bufferAdd( 0xF5 );
 | 
			
		||||
		bufferAdd( keyValue - 0x32 );
 | 
			
		||||
		Macro_bufferAdd( 0xF5 );
 | 
			
		||||
		Macro_bufferAdd( keyValue - 0x32 );
 | 
			
		||||
		break;
 | 
			
		||||
	// -0x20 Offset Keys
 | 
			
		||||
	case 0x7B: // {
 | 
			
		||||
	case 0x7C: // |
 | 
			
		||||
	case 0x7D: // }
 | 
			
		||||
		bufferAdd( 0xF5 );
 | 
			
		||||
		bufferAdd( keyValue - 0x20 );
 | 
			
		||||
		Macro_bufferAdd( 0xF5 );
 | 
			
		||||
		Macro_bufferAdd( keyValue - 0x20 );
 | 
			
		||||
		break;
 | 
			
		||||
	// -0x1E Offset Keys
 | 
			
		||||
	case 0x7E: // ~
 | 
			
		||||
		bufferAdd( 0xF5 );
 | 
			
		||||
		bufferAdd( keyValue - 0x1E );
 | 
			
		||||
		Macro_bufferAdd( 0xF5 );
 | 
			
		||||
		Macro_bufferAdd( keyValue - 0x1E );
 | 
			
		||||
		break;
 | 
			
		||||
	// All other keys
 | 
			
		||||
	default:
 | 
			
		||||
| 
						 | 
				
			
			@ -226,8 +221,8 @@ ISR(USART1_RX_vect)
 | 
			
		|||
		// Add Ctrl key and offset to the lower alphabet
 | 
			
		||||
		if ( keyValue >= 0x00 && keyValue <= 0x1F )
 | 
			
		||||
		{
 | 
			
		||||
			bufferAdd( 0xF6 );
 | 
			
		||||
			bufferAdd( keyValue + 0x60 );
 | 
			
		||||
			Macro_bufferAdd( 0xF6 );
 | 
			
		||||
			Macro_bufferAdd( keyValue + 0x60 );
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Shift Characters are from 0x41 to 0x59
 | 
			
		||||
| 
						 | 
				
			
			@ -235,14 +230,14 @@ ISR(USART1_RX_vect)
 | 
			
		|||
		// Add Shift key and offset to the lower alphabet
 | 
			
		||||
		else if ( keyValue >= 0x41 && keyValue <= 0x5A )
 | 
			
		||||
		{
 | 
			
		||||
			bufferAdd( 0xF5 );
 | 
			
		||||
			bufferAdd( keyValue + 0x20 );
 | 
			
		||||
			Macro_bufferAdd( 0xF5 );
 | 
			
		||||
			Macro_bufferAdd( keyValue + 0x20 );
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// Everything else
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			bufferAdd( keyValue );
 | 
			
		||||
			Macro_bufferAdd( keyValue );
 | 
			
		||||
		}
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -274,35 +269,35 @@ ISR(USART1_RX_vect)
 | 
			
		|||
}
 | 
			
		||||
 | 
			
		||||
// Send data
 | 
			
		||||
uint8_t scan_sendData( uint8_t dataPayload )
 | 
			
		||||
uint8_t Scan_sendData( uint8_t dataPayload )
 | 
			
		||||
{
 | 
			
		||||
	UDR1 = dataPayload;
 | 
			
		||||
	return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Signal KeyIndex_Buffer that it has been properly read
 | 
			
		||||
void scan_finishedWithBuffer( uint8_t sentKeys )
 | 
			
		||||
void Scan_finishedWithBuffer( uint8_t sentKeys )
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Signal that the keys have been properly sent over USB
 | 
			
		||||
void scan_finishedWithUSBBuffer( uint8_t sentKeys )
 | 
			
		||||
void Scan_finishedWithUSBBuffer( uint8_t sentKeys )
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Reset/Hold keyboard
 | 
			
		||||
// NOTE: Does nothing with the BETKB
 | 
			
		||||
void scan_lockKeyboard( void )
 | 
			
		||||
void Scan_lockKeyboard( void )
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// NOTE: Does nothing with the BETKB
 | 
			
		||||
void scan_unlockKeyboard( void )
 | 
			
		||||
void Scan_unlockKeyboard( void )
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Reset Keyboard
 | 
			
		||||
void scan_resetKeyboard( void )
 | 
			
		||||
void Scan_resetKeyboard( void )
 | 
			
		||||
{
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,15 +1,15 @@
 | 
			
		|||
/* Copyright (C) 2011-2013 by Jacob Alexander
 | 
			
		||||
 * 
 | 
			
		||||
/* Copyright (C) 2011-2014 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
 | 
			
		||||
| 
						 | 
				
			
			@ -49,18 +49,18 @@ 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( void );
 | 
			
		||||
uint8_t Scan_loop( void );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Functions available to macro.c
 | 
			
		||||
uint8_t scan_sendData( uint8_t dataPayload );
 | 
			
		||||
uint8_t Scan_sendData( uint8_t dataPayload );
 | 
			
		||||
 | 
			
		||||
void scan_finishedWithBuffer( uint8_t sentKeys );
 | 
			
		||||
void scan_finishedWithUSBBuffer( uint8_t sentKeys );
 | 
			
		||||
void scan_lockKeyboard( void );
 | 
			
		||||
void scan_unlockKeyboard( void );
 | 
			
		||||
void scan_resetKeyboard( void );
 | 
			
		||||
void Scan_finishedWithBuffer( uint8_t sentKeys );
 | 
			
		||||
void Scan_finishedWithUSBBuffer( uint8_t sentKeys );
 | 
			
		||||
void Scan_lockKeyboard( void );
 | 
			
		||||
void Scan_unlockKeyboard( void );
 | 
			
		||||
void Scan_resetKeyboard( void );
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif // __SCAN_LOOP_H
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
###| CMake Kiibohd Controller Scan Module |###
 | 
			
		||||
#
 | 
			
		||||
# Written by Jacob Alexander in 2011 for the Kiibohd Controller
 | 
			
		||||
# Written by Jacob Alexander in 2011,2014 for the Kiibohd Controller
 | 
			
		||||
#
 | 
			
		||||
# Released into the Public Domain
 | 
			
		||||
#
 | 
			
		||||
| 
						 | 
				
			
			@ -19,14 +19,6 @@ set( SCAN_SRCS
 | 
			
		|||
###
 | 
			
		||||
# Module Specific Options
 | 
			
		||||
#
 | 
			
		||||
add_definitions( -I${HEAD_DIR}/Keymap )
 | 
			
		||||
 | 
			
		||||
#| Keymap Settings
 | 
			
		||||
add_definitions(
 | 
			
		||||
	-DMODIFIER_MASK=kaypro1_ModifierMask
 | 
			
		||||
	#-DKEYINDEX_MASK=kaypro1_ColemakMap
 | 
			
		||||
	-DKEYINDEX_MASK=kaypro1_DefaultMap
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
###
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue