Parent directory

process_tri_layer.c

1241 bytes
 1// Copyright 2023 QMK
 2// SPDX-License-Identifier: GPL-2.0-or-later
 3
 4#include "process_tri_layer.h"
 5#include "tri_layer.h"
 6#include "action_layer.h"
 7
 8bool process_tri_layer(uint16_t keycode, keyrecord_t *record) {
 9    switch (keycode) {
10        case QK_TRI_LAYER_LOWER:
11            if (record->event.pressed) {
12                layer_on(get_tri_layer_lower_layer());
13                update_tri_layer(get_tri_layer_lower_layer(), get_tri_layer_upper_layer(), get_tri_layer_adjust_layer());
14            } else {
15                layer_off(get_tri_layer_lower_layer());
16                update_tri_layer(get_tri_layer_lower_layer(), get_tri_layer_upper_layer(), get_tri_layer_adjust_layer());
17            }
18            return false;
19        case QK_TRI_LAYER_UPPER:
20            if (record->event.pressed) {
21                layer_on(get_tri_layer_upper_layer());
22                update_tri_layer(get_tri_layer_lower_layer(), get_tri_layer_upper_layer(), get_tri_layer_adjust_layer());
23            } else {
24                layer_off(get_tri_layer_upper_layer());
25                update_tri_layer(get_tri_layer_lower_layer(), get_tri_layer_upper_layer(), get_tri_layer_adjust_layer());
26            }
27            return false;
28    }
29    return true;
30}