summaryrefslogtreecommitdiffstats
path: root/keyboards/crkbd/keymaps/lib
diff options
context:
space:
mode:
authorKosuke Adachi <ks@fstn.jp>2018-06-09 07:28:28 +0900
committerDrashna Jaelre <drashna@live.com>2018-06-08 15:28:28 -0700
commit710937e4ef1e14d82261fc439aa6fcfcdbd64bf5 (patch)
tree6226a1d3027634af4b4508dce101ff938f356782 /keyboards/crkbd/keymaps/lib
parent300cf977c93b9b37a57643ddbfa8d0bd13b29e18 (diff)
Add corne keyboard (#3119)
* Fork from helix * Move rev2 to rev1 * Remove unused settings * Move split_util to outof rev * Setup KEYMAP for crkbd * Remove old image * Move keymaps directory and glcdfont.c * Remove AUDIO in keymap * Show keylog * Show keylogs * Show time log * Remove EISU/KANA * Use KEYMAP_kc * Remove iota_gfx_record_user wrapping * Remove unused settings for layer * Add keylogger.c * Fix uppercase letters to lower * Add timelogger.c * Default RGBLED_NUM = 27 * Remove unused setting * Add mode icon reader * Add matrix_write_ln * Add layer_state_reader * Move to lib directory * Rename functions * Add host_led_state_reader * Add logo_reader * Cleaning of iota_gfx_task * Fix bugs and add key defines * Remove unnecessary comments * Update crkbd readme * Move libs to lib directories * Rename KEYMAP to LAYOUT
Diffstat (limited to 'keyboards/crkbd/keymaps/lib')
-rw-r--r--keyboards/crkbd/keymaps/lib/host_led_state_reader.c13
-rw-r--r--keyboards/crkbd/keymaps/lib/keylogger.c49
-rw-r--r--keyboards/crkbd/keymaps/lib/layer_state_reader.c33
-rw-r--r--keyboards/crkbd/keymaps/lib/logo_reader.c12
-rw-r--r--keyboards/crkbd/keymaps/lib/mode_icon_reader.c15
-rw-r--r--keyboards/crkbd/keymaps/lib/timelogger.c17
6 files changed, 139 insertions, 0 deletions
diff --git a/keyboards/crkbd/keymaps/lib/host_led_state_reader.c b/keyboards/crkbd/keymaps/lib/host_led_state_reader.c
new file mode 100644
index 0000000000..c19af11f8a
--- /dev/null
+++ b/keyboards/crkbd/keymaps/lib/host_led_state_reader.c
@@ -0,0 +1,13 @@
+#include "crkbd.h"
+
+char host_led_state[40];
+
+char *read_host_led_state(void)
+{
+ snprintf(host_led_state, sizeof(host_led_state), "\n%s %s %s",
+ (host_keyboard_leds() & (1 << USB_LED_NUM_LOCK)) ? "NUMLOCK" : " ",
+ (host_keyboard_leds() & (1 << USB_LED_CAPS_LOCK)) ? "CAPS" : " ",
+ (host_keyboard_leds() & (1 << USB_LED_SCROLL_LOCK)) ? "SCLK" : " ");
+
+ return host_led_state;
+}
diff --git a/keyboards/crkbd/keymaps/lib/keylogger.c b/keyboards/crkbd/keymaps/lib/keylogger.c
new file mode 100644
index 0000000000..ee14ff0335
--- /dev/null
+++ b/keyboards/crkbd/keymaps/lib/keylogger.c
@@ -0,0 +1,49 @@
+#include "crkbd.h"
+
+char keylog[40] = {};
+char keylogs[21] = {};
+int keylogs_idx = 0;
+
+char code_to_name[60] = {
+ ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f',
+ 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p',
+ 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
+ '1', '2', '3', '4', '5', '6', '7', '8', '9', '0',
+ 'R', 'E', 'B', 'T', ' ', ' ', ' ', ' ', ' ', ' ',
+ ' ', ';', '\'', ' ', ',', '.', '/', ' ', ' ', ' '};
+
+void set_keylog(uint16_t keycode, keyrecord_t *record)
+{
+ char name = ' ';
+ if (keycode < 60)
+ {
+ name = code_to_name[keycode];
+ }
+
+ // update keylog
+ snprintf(keylog, sizeof(keylog), "%dx%d, k%2d : %c",
+ record->event.key.row,
+ record->event.key.col,
+ keycode,
+ name);
+
+ // update keylogs
+ if (keylogs_idx == sizeof(keylogs) - 1)
+ {
+ keylogs_idx = 0;
+ for (int i = 0; i < sizeof(keylogs) - 1; i++)
+ {
+ keylogs[i] = ' ';
+ }
+ }
+ keylogs[keylogs_idx] = name;
+ keylogs_idx++;
+}
+
+char *read_keylog(void) {
+ return keylog;
+}
+
+char *read_keylogs(void) {
+ return keylogs;
+}
diff --git a/keyboards/crkbd/keymaps/lib/layer_state_reader.c b/keyboards/crkbd/keymaps/lib/layer_state_reader.c
new file mode 100644
index 0000000000..f79720d6f9
--- /dev/null
+++ b/keyboards/crkbd/keymaps/lib/layer_state_reader.c
@@ -0,0 +1,33 @@
+#include "crkbd.h"
+
+#define L_BASE 0
+#define L_LOWER 8
+#define L_RAISE 16
+#define L_ADJUST 65536
+#define L_ADJUST_TRI 65560
+
+char layer_state_str[40];
+
+char *read_layer_state(void)
+{
+ switch (layer_state)
+ {
+ case L_BASE:
+ snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Default");
+ break;
+ case L_RAISE:
+ snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Raise");
+ break;
+ case L_LOWER:
+ snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Lower");
+ break;
+ case L_ADJUST:
+ case L_ADJUST_TRI:
+ snprintf(layer_state_str, sizeof(layer_state_str), "Layer: Adjust");
+ break;
+ default:
+ snprintf(layer_state_str,sizeof(layer_state_str), "Layer: Undef-%ld", layer_state);
+ }
+
+ return layer_state_str;
+}
diff --git a/keyboards/crkbd/keymaps/lib/logo_reader.c b/keyboards/crkbd/keymaps/lib/logo_reader.c
new file mode 100644
index 0000000000..46de17bfe0
--- /dev/null
+++ b/keyboards/crkbd/keymaps/lib/logo_reader.c
@@ -0,0 +1,12 @@
+#include "crkbd.h"
+
+char *read_logo(void)
+{
+ static char logo[]={
+ 0x80,0x81,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x8b,0x8c,0x8d,0x8e,0x8f,0x90,0x91,0x92,0x93,0x94,
+ 0xa0,0xa1,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xab,0xac,0xad,0xae,0xaf,0xb0,0xb1,0xb2,0xb3,0xb4,
+ 0xc0,0xc1,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xcb,0xcc,0xcd,0xce,0xcf,0xd0,0xd1,0xd2,0xd3,0xd4,
+ 0};
+
+ return logo;
+}
diff --git a/keyboards/crkbd/keymaps/lib/mode_icon_reader.c b/keyboards/crkbd/keymaps/lib/mode_icon_reader.c
new file mode 100644
index 0000000000..cb3d8adb12
--- /dev/null
+++ b/keyboards/crkbd/keymaps/lib/mode_icon_reader.c
@@ -0,0 +1,15 @@
+#include "crkbd.h"
+
+char mode_icon[40];
+
+char *read_mode_icon(bool swap)
+{
+ static char logo[][2][3]={{{0x95,0x96,0},{0xb5,0xb6,0}},{{0x97,0x98,0},{0xb7,0xb8,0}}};
+ if(swap == false){
+ snprintf(mode_icon, sizeof(mode_icon), "%s\n%s", logo[0][0], logo[0][1]);
+ }else{
+ snprintf(mode_icon, sizeof(mode_icon), "%s\n%s", logo[1][0], logo[1][1]);
+ }
+
+ return mode_icon;
+}
diff --git a/keyboards/crkbd/keymaps/lib/timelogger.c b/keyboards/crkbd/keymaps/lib/timelogger.c
new file mode 100644
index 0000000000..0e22bafe7f
--- /dev/null
+++ b/keyboards/crkbd/keymaps/lib/timelogger.c
@@ -0,0 +1,17 @@
+#include "crkbd.h"
+
+char timelog[40] = {};
+int last_time = 0;
+int elapsed_time = 0;
+
+void set_timelog(void)
+{
+ elapsed_time = timer_elapsed(last_time);
+ last_time = timer_read();
+ snprintf(timelog, sizeof(timelog), "lt:%5d, et:%5d", last_time, elapsed_time);
+}
+
+char *read_timelog(void)
+{
+ return timelog;
+}