make astyle

pull/389/head
Jesse Vincent 8 years ago
parent df8f89924c
commit 80e27ef57a
No known key found for this signature in database
GPG Key ID: 122F5DF7108E4046

@ -23,52 +23,52 @@
#include <Kaleidoscope-Unicode.h> #include <Kaleidoscope-Unicode.h>
const Key keymaps[][ROWS][COLS] PROGMEM = { const Key keymaps[][ROWS][COLS] PROGMEM = {
[0] = KEYMAP_STACKED [0] = KEYMAP_STACKED
( (
Key_NoKey, Key_1, Key_2, Key_3, Key_4, Key_5, Key_NoKey, Key_NoKey, Key_1, Key_2, Key_3, Key_4, Key_5, Key_NoKey,
Key_Backtick, Key_Q, Key_W, Key_E, Key_R, Key_T, Key_Tab, Key_Backtick, Key_Q, Key_W, Key_E, Key_R, Key_T, Key_Tab,
Key_PageUp, Key_A, Key_S, Key_D, Key_F, Key_G, Key_PageUp, Key_A, Key_S, Key_D, Key_F, Key_G,
Key_PageDown, Key_Z, Key_X, Key_C, Key_V, Key_B, Key_Escape, Key_PageDown, Key_Z, Key_X, Key_C, Key_V, Key_B, Key_Escape,
Key_LeftControl, Key_Backspace, Key_LeftGui, Key_LeftShift, Key_LeftControl, Key_Backspace, Key_LeftGui, Key_LeftShift,
SYSTER, SYSTER,
Key_skip, Key_6, Key_7, Key_8, Key_9, Key_0, Key_skip, Key_skip, Key_6, Key_7, Key_8, Key_9, Key_0, Key_skip,
Key_Enter, Key_Y, Key_U, Key_I, Key_O, Key_P, Key_Equals, Key_Enter, Key_Y, Key_U, Key_I, Key_O, Key_P, Key_Equals,
Key_H, Key_J, Key_K, Key_L, Key_Semicolon, Key_Quote, Key_H, Key_J, Key_K, Key_L, Key_Semicolon, Key_Quote,
Key_skip, Key_N, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus, Key_skip, Key_N, Key_M, Key_Comma, Key_Period, Key_Slash, Key_Minus,
Key_RightShift, Key_RightAlt, Key_Spacebar, Key_RightControl, Key_RightShift, Key_RightAlt, Key_Spacebar, Key_RightControl,
SYSTER SYSTER
), ),
}; };
void systerAction (KaleidoscopePlugins::Syster::action_t action, const char *symbol) { void systerAction (KaleidoscopePlugins::Syster::action_t action, const char *symbol) {
switch (action) { switch (action) {
case KaleidoscopePlugins::Syster::StartAction: case KaleidoscopePlugins::Syster::StartAction:
Unicode.type (0x2328); Unicode.type (0x2328);
break; break;
case KaleidoscopePlugins::Syster::EndAction: case KaleidoscopePlugins::Syster::EndAction:
handle_keyswitch_event (Key_Backspace, UNKNOWN_KEYSWITCH_LOCATION, IS_PRESSED | INJECTED); handle_keyswitch_event (Key_Backspace, UNKNOWN_KEYSWITCH_LOCATION, IS_PRESSED | INJECTED);
Keyboard.sendReport (); Keyboard.sendReport ();
handle_keyswitch_event (Key_Backspace, UNKNOWN_KEYSWITCH_LOCATION, WAS_PRESSED | INJECTED); handle_keyswitch_event (Key_Backspace, UNKNOWN_KEYSWITCH_LOCATION, WAS_PRESSED | INJECTED);
Keyboard.sendReport (); Keyboard.sendReport ();
break; break;
case KaleidoscopePlugins::Syster::SymbolAction: case KaleidoscopePlugins::Syster::SymbolAction:
Serial.print ("systerAction: symbol="); Serial.print ("systerAction: symbol=");
Serial.println (symbol); Serial.println (symbol);
if (strcmp (symbol, "coffee") == 0) { if (strcmp (symbol, "coffee") == 0) {
Unicode.type (0x2615); Unicode.type (0x2615);
}
break;
} }
break;
}
} }
void setup () { void setup () {
Kaleidoscope.setup (KEYMAP_SIZE); Kaleidoscope.setup (KEYMAP_SIZE);
Kaleidoscope.use (&Unicode, &Syster, NULL); Kaleidoscope.use (&Unicode, &Syster, NULL);
} }
void loop () { void loop () {
Kaleidoscope.loop (); Kaleidoscope.loop ();
} }

@ -21,103 +21,103 @@
using namespace KaleidoscopePlugins::Ranges; using namespace KaleidoscopePlugins::Ranges;
namespace KaleidoscopePlugins { namespace KaleidoscopePlugins {
// --- state --- // --- state ---
char Syster::symbol[SYSTER_MAX_SYMBOL_LENGTH + 1]; char Syster::symbol[SYSTER_MAX_SYMBOL_LENGTH + 1];
uint8_t Syster::symbolPos; uint8_t Syster::symbolPos;
bool Syster::isActive; bool Syster::isActive;
// --- helpers --- // --- helpers ---
#define isSyster(k) (k == SYSTER) #define isSyster(k) (k == SYSTER)
// --- api --- // --- api ---
Syster::Syster (void) { Syster::Syster (void) {
} }
void void
Syster::begin (void) { Syster::begin (void) {
event_handler_hook_use (this->eventHandlerHook); event_handler_hook_use (this->eventHandlerHook);
} }
void void
Syster::reset (void) { Syster::reset (void) {
symbolPos = 0; symbolPos = 0;
symbol[0] = 0; symbol[0] = 0;
isActive = false; isActive = false;
} }
// --- hooks --- // --- hooks ---
Key Key
Syster::eventHandlerHook (Key mappedKey, byte row, byte col, uint8_t keyState) { Syster::eventHandlerHook (Key mappedKey, byte row, byte col, uint8_t keyState) {
if (!isActive) { if (!isActive) {
if (!isSyster (mappedKey)) if (!isSyster (mappedKey))
return mappedKey; return mappedKey;
if (key_toggled_on (keyState)) { if (key_toggled_on (keyState)) {
isActive = true; isActive = true;
systerAction (StartAction, NULL); systerAction (StartAction, NULL);
} }
return Key_NoKey; return Key_NoKey;
} }
if (keyState & INJECTED) if (keyState & INJECTED)
return mappedKey; return mappedKey;
if (isSyster (mappedKey)) if (isSyster (mappedKey))
return Key_NoKey; return Key_NoKey;
if (mappedKey == Key_Backspace && symbolPos == 0) if (mappedKey == Key_Backspace && symbolPos == 0)
return Key_NoKey; return Key_NoKey;
if (key_toggled_off (keyState)) { if (key_toggled_off (keyState)) {
if (mappedKey == Key_Spacebar) { if (mappedKey == Key_Spacebar) {
for (uint8_t i = 0; i <= symbolPos; i++) { for (uint8_t i = 0; i <= symbolPos; i++) {
handle_keyswitch_event (Key_Backspace, UNKNOWN_KEYSWITCH_LOCATION, IS_PRESSED | INJECTED); handle_keyswitch_event (Key_Backspace, UNKNOWN_KEYSWITCH_LOCATION, IS_PRESSED | INJECTED);
Keyboard.sendReport (); Keyboard.sendReport ();
handle_keyswitch_event (Key_Backspace, UNKNOWN_KEYSWITCH_LOCATION, WAS_PRESSED | INJECTED); handle_keyswitch_event (Key_Backspace, UNKNOWN_KEYSWITCH_LOCATION, WAS_PRESSED | INJECTED);
Keyboard.sendReport (); Keyboard.sendReport ();
} }
systerAction (EndAction, NULL); systerAction (EndAction, NULL);
symbol[symbolPos] = 0; symbol[symbolPos] = 0;
systerAction (SymbolAction, symbol); systerAction (SymbolAction, symbol);
reset (); reset ();
return Key_NoKey; return Key_NoKey;
} }
} }
if (key_toggled_on (keyState)) { if (key_toggled_on (keyState)) {
if (mappedKey == Key_Backspace) { if (mappedKey == Key_Backspace) {
if (symbolPos > 0) if (symbolPos > 0)
symbolPos--; symbolPos--;
} else { } else {
const char c = keyToChar (mappedKey); const char c = keyToChar (mappedKey);
if (c) if (c)
symbol[symbolPos++] = c; symbol[symbolPos++] = c;
} }
} }
return mappedKey; return mappedKey;
} }
}; };
__attribute__((weak)) __attribute__((weak))
const char const char
keyToChar (Key key) { keyToChar (Key key) {
if (key.flags != 0) if (key.flags != 0)
return 0; return 0;
switch (key.keyCode) { switch (key.keyCode) {
case Key_A.keyCode ... Key_Z.keyCode: case Key_A.keyCode ... Key_Z.keyCode:
return 'a' + (key.keyCode - Key_A.keyCode); return 'a' + (key.keyCode - Key_A.keyCode);
case Key_1.keyCode ... Key_0.keyCode: case Key_1.keyCode ... Key_0.keyCode:
return '1' + (key.keyCode - Key_1.keyCode); return '1' + (key.keyCode - Key_1.keyCode);
} }
return 0; return 0;
} }
__attribute__((weak)) __attribute__((weak))

@ -26,12 +26,12 @@
#define SYSTER (Key){ .raw = KaleidoscopePlugins::Ranges::SYSTER } #define SYSTER (Key){ .raw = KaleidoscopePlugins::Ranges::SYSTER }
namespace KaleidoscopePlugins { namespace KaleidoscopePlugins {
class Syster : public KaleidoscopePlugin { class Syster : public KaleidoscopePlugin {
public: public:
typedef enum { typedef enum {
StartAction, StartAction,
EndAction, EndAction,
SymbolAction SymbolAction
} action_t; } action_t;
Syster (void); Syster (void);
@ -45,7 +45,7 @@ namespace KaleidoscopePlugins {
static bool isActive; static bool isActive;
static Key eventHandlerHook (Key mappedKey, byte row, byte col, uint8_t keyState); static Key eventHandlerHook (Key mappedKey, byte row, byte col, uint8_t keyState);
}; };
}; };
const char keyToChar (Key key); const char keyToChar (Key key);

Loading…
Cancel
Save