-/* Copyright (C) 2014-2015 by Jacob Alexander
+/* 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
uint8_t prevDecisionTime;
} __attribute__((packed)) KeyState;
+// Ghost Element, after ghost detection/cancelation
+typedef struct KeyGhost {
+ KeyPosition prev;
+ KeyPosition cur;
+ KeyPosition saved; // state before ghosting
+} __attribute__((packed)) KeyGhost;
+
+// utility
+inline uint8_t keyOn(/*KeyPosition*/uint8_t st)
+{
+ return (st == KeyState_Press || st == KeyState_Hold) ? 1 : 0;
+}
// ----- Functions -----
void Matrix_setup();
void Matrix_scan( uint16_t scanNum );
+void Matrix_currentChange( unsigned int current );
+