Initial exploration of mod tap action.

This commit is contained in:
Pete Johanson 2020-05-22 22:47:03 -04:00
parent ed5532bf94
commit 53aadc4f93
13 changed files with 126 additions and 35 deletions

View file

@ -3,4 +3,5 @@
#include <zmk/keys.h>
int zmk_endpoints_init();
int zmk_endpoints_send_report();
int zmk_endpoints_send_key_event(struct zmk_key_event key_event);

View file

@ -97,12 +97,14 @@ static const u8_t zmk_hid_report_desc[] = {
struct zmk_hid_report
{
u8_t modifiers;
zmk_mod_flags modifiers;
u8_t keys[13];
} __packed;
int zmk_hid_register_mod(zmk_mod modifier);
int zmk_hid_unregister_mod(zmk_mod modifier);
int zmk_hid_register_mods(zmk_mod_flags modifiers);
int zmk_hid_unregister_mods(zmk_mod_flags modifiers);
int zmk_hid_press_key(zmk_key key);
int zmk_hid_release_key(zmk_key key);

View file

@ -3,11 +3,15 @@
#include <zephyr.h>
#include <dt-bindings/zmk/keys.h>
typedef u64_t zmk_key;
typedef u32_t zmk_key;
typedef u8_t zmk_action;
typedef u8_t zmk_mod;
typedef u8_t zmk_mod_flags;
struct zmk_key_event
{
u32_t column;
u32_t row;
zmk_key key;
bool pressed;
};

View file

@ -1,6 +1,6 @@
#pragma once
#define ZMK_MOCK_IS_PRESS(v) (v & (0x01 << 31))
#define ZMK_MOCK_IS_PRESS(v) ((v & (0x01 << 31)) != 0)
#define ZMK_MOCK_PRESS(row, col, msec) (row + (col << 8) + (msec << 16) + (0x01 << 31))
#define ZMK_MOCK_RELEASE(row, col, msec) (row + (col << 8) + (msec << 16))
#define ZMK_MOCK_ROW(v) (v & 0xFF)