diff Scan/MBC-55X/scan_loop.c @ 450:48ede6680396 master

Updating MBC-55X scan module
author Jacob Alexander <haata@kiibohd.com>
date Sun, 12 Jun 2016 15:53:25 -0700
parents 9afed592bcb5
children
line wrap: on
line diff
--- a/Scan/MBC-55X/scan_loop.c	Tue May 31 00:19:45 2016 -0700
+++ b/Scan/MBC-55X/scan_loop.c	Sun Jun 12 15:53:25 2016 -0700
@@ -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 <Lib/ScanLib.h>
 
 // Project Includes
+#include <kll_defs.h>
 #include <led.h>
 #include <macro.h>
 #include <print.h>
@@ -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 @@
 	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 @@
 	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 @@
 	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 @@
 		// 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 @@
 		// 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 @@
 }
 
 // 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 @@
 {
 }
 
+// NOTE: Does nothing with the MBC-55x
+void Scan_currentChange( unsigned int current )
+{
+}
+