ergodox-firmware/src/main.h

50 lines
1.7 KiB
C
Raw Normal View History

/* ----------------------------------------------------------------------------
* main() : functions and data that may be useful externally
* ----------------------------------------------------------------------------
* Copyright (c) 2012 Ben Blazak <benblazak.dev@gmail.com>
* Released under The MIT License (MIT) (see "license.md")
* Project located at <https://github.com/benblazak/ergodox-firmware>
* ------------------------------------------------------------------------- */
2016-06-11 22:19:48 +02:00
#pragma once
2016-02-04 10:22:40 +01:00
#include <stdbool.h>
#include <stdint.h>
2016-06-11 22:19:48 +02:00
#include <util/delay.h>
2016-06-11 23:15:38 +02:00
#include "./lib/keyfunctions.h"
2016-06-11 22:19:48 +02:00
#include "./keyboard/controller.h"
#include "./keyboard/layout.h"
2016-02-04 10:22:40 +01:00
// --------------------------------------------------------------------
typedef enum StickyState
{
eStickyNone,
eStickyOnceDown,
eStickyOnceUp,
eStickyLock
} StickyState;
extern bool (*main_kb_is_pressed)[KB_ROWS][KB_COLUMNS];
extern bool (*main_kb_was_pressed)[KB_ROWS][KB_COLUMNS];
extern uint8_t main_layers_pressed[KB_ROWS][KB_COLUMNS];
extern uint8_t main_arg_layer;
extern uint8_t main_arg_layer_offset;
extern uint8_t main_arg_row;
extern uint8_t main_arg_col;
extern bool main_arg_is_pressed;
extern bool main_arg_was_pressed;
extern bool main_arg_any_non_trans_key_pressed;
extern bool main_arg_trans_key_pressed;
// --------------------------------------------------------------------
void main_exec_key (void);
uint8_t main_layers_top_layer (void);
uint8_t main_layers_top_sticky (void);
2016-02-06 15:31:54 +01:00
uint8_t main_layers_sticky (uint8_t layer);
2016-02-04 10:22:40 +01:00
void main_layers_enable (uint8_t layer, uint8_t sticky);
void main_layers_disable (uint8_t layer);
void main_layers_disable_top (void);