Remove keymap read code from project directories
This commit is contained in:
parent
19dca3def8
commit
7b31d1b9d9
@ -48,8 +48,7 @@ TMK_DIR = ../../tmk_core
|
|||||||
TARGET_DIR = .
|
TARGET_DIR = .
|
||||||
|
|
||||||
# project specific files
|
# project specific files
|
||||||
SRC = keymap_common.c \
|
SRC = matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c \
|
led.c \
|
||||||
adb.c
|
adb.c
|
||||||
|
|
||||||
|
@ -48,8 +48,7 @@ TMK_DIR = ../../tmk_core
|
|||||||
TARGET_DIR = .
|
TARGET_DIR = .
|
||||||
|
|
||||||
# project specific files
|
# project specific files
|
||||||
SRC = keymap_common.c \
|
SRC = matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c \
|
led.c \
|
||||||
adb.c
|
adb.c
|
||||||
|
|
||||||
|
@ -48,8 +48,7 @@ TMK_DIR = ../../tmk_core
|
|||||||
TARGET_DIR = .
|
TARGET_DIR = .
|
||||||
|
|
||||||
# project specific files
|
# project specific files
|
||||||
SRC = keymap_common.c \
|
SRC = matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c \
|
led.c \
|
||||||
adb.c
|
adb.c
|
||||||
|
|
||||||
|
@ -40,10 +40,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define LOCKING_RESYNC_ENABLE
|
#define LOCKING_RESYNC_ENABLE
|
||||||
|
|
||||||
|
|
||||||
/* legacy keymap support */
|
|
||||||
#define USE_LEGACY_KEYMAP
|
|
||||||
|
|
||||||
|
|
||||||
/* ADB port setting */
|
/* ADB port setting */
|
||||||
#define ADB_PORT PORTD
|
#define ADB_PORT PORTD
|
||||||
#define ADB_PIN PIND
|
#define ADB_PIN PIND
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011,2012,2013 Jun Wako <wakojun@gmail.com>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include "keymap_common.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
|
|
||||||
}
|
|
@ -19,7 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
#include "action.h"
|
#include "action.h"
|
||||||
#include "action_macro.h"
|
#include "action_macro.h"
|
||||||
@ -29,10 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
|
|
||||||
|
|
||||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
|
|
||||||
extern const action_t fn_actions[];
|
|
||||||
|
|
||||||
|
|
||||||
/* Common layout: ANSI+ISO
|
/* Common layout: ANSI+ISO
|
||||||
* ,---. .---------------. ,---------------. ,---------------. ,-----------. ,---------------.
|
* ,---. .---------------. ,---------------. ,---------------. ,-----------. ,---------------.
|
||||||
* |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |VDn|VUp|Mut|Pwr|
|
* |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau| |VDn|VUp|Mut|Pwr|
|
||||||
|
@ -36,7 +36,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t PROGMEM fn_actions[] = {
|
const action_t PROGMEM fn_actions[] = {
|
||||||
[0] = ACTION_LAYER_TAP_KEY(1, KC_GRV),
|
[0] = ACTION_LAYER_TAP_KEY(1, KC_GRV),
|
||||||
[1] = ACTION_LAYER_TAP_KEY(1, KC_BSLS),
|
[1] = ACTION_LAYER_TAP_KEY(1, KC_BSLS),
|
||||||
};
|
};
|
||||||
|
@ -8,8 +8,7 @@ TMK_DIR = ../../tmk_core
|
|||||||
TARGET_DIR = .
|
TARGET_DIR = .
|
||||||
|
|
||||||
# project specific files
|
# project specific files
|
||||||
SRC = keymap_common.c \
|
SRC = matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c \
|
led.c \
|
||||||
protocol/ibm4704.c
|
protocol/ibm4704.c
|
||||||
|
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011,2012,2013 Jun Wako <wakojun@gmail.com>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include "keymap_common.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
|
|
||||||
}
|
|
@ -19,7 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
#include "action.h"
|
#include "action.h"
|
||||||
#include "action_macro.h"
|
#include "action_macro.h"
|
||||||
@ -29,11 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
|
|
||||||
|
|
||||||
// 32*8(256) byte array which converts PS/2 code into USB code
|
|
||||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
|
|
||||||
extern const action_t fn_actions[];
|
|
||||||
|
|
||||||
|
|
||||||
/* 107-key */
|
/* 107-key */
|
||||||
#define KEYMAP( \
|
#define KEYMAP( \
|
||||||
K46,K64, K00,K18,K19,K1A,K10,K11,K12,K08,K09,K0A,K0F,K1F,K0D,K0C,K0E, K6A,K6B,K6C, K47,K48,K49,K4A, \
|
K46,K64, K00,K18,K19,K1A,K10,K11,K12,K08,K09,K0A,K0F,K1F,K0D,K0C,K0E, K6A,K6B,K6C, K47,K48,K49,K4A, \
|
||||||
|
@ -10,7 +10,6 @@ TARGET_DIR = .
|
|||||||
# keyboard dependent files
|
# keyboard dependent files
|
||||||
SRC = matrix.c \
|
SRC = matrix.c \
|
||||||
led.c \
|
led.c \
|
||||||
keymap_common.c \
|
|
||||||
m0110.c
|
m0110.c
|
||||||
|
|
||||||
# To use own keymap file run make like: make keymap=hasu
|
# To use own keymap file run make like: make keymap=hasu
|
||||||
|
@ -10,7 +10,6 @@ TARGET_DIR = .
|
|||||||
# keyboard dependent files
|
# keyboard dependent files
|
||||||
SRC = matrix.c \
|
SRC = matrix.c \
|
||||||
led.c \
|
led.c \
|
||||||
keymap_common.c \
|
|
||||||
m0110.c
|
m0110.c
|
||||||
|
|
||||||
# To use own keymap file run make like: make keymap=hasu
|
# To use own keymap file run make like: make keymap=hasu
|
||||||
|
@ -10,7 +10,6 @@ TARGET_DIR = .
|
|||||||
# keyboard dependent files
|
# keyboard dependent files
|
||||||
SRC = matrix.c \
|
SRC = matrix.c \
|
||||||
led.c \
|
led.c \
|
||||||
keymap_common.c \
|
|
||||||
m0110.c
|
m0110.c
|
||||||
|
|
||||||
# To use own keymap file run make like: make keymap=hasu
|
# To use own keymap file run make like: make keymap=hasu
|
||||||
|
@ -10,7 +10,6 @@ TARGET_DIR = .
|
|||||||
# keyboard dependent files
|
# keyboard dependent files
|
||||||
SRC = matrix.c \
|
SRC = matrix.c \
|
||||||
led.c \
|
led.c \
|
||||||
keymap_common.c \
|
|
||||||
m0110.c
|
m0110.c
|
||||||
|
|
||||||
# To use own keymap file run make like: make keymap=hasu
|
# To use own keymap file run make like: make keymap=hasu
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011,2012,2014 Jun Wako <wakojun@gmail.com>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "action.h"
|
|
||||||
#include "keycode.h"
|
|
||||||
#include "keymap.h"
|
|
||||||
#include "keymap_common.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn index to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
action_t action;
|
|
||||||
action.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]);
|
|
||||||
return action;
|
|
||||||
}
|
|
@ -15,15 +15,10 @@ You should have received a copy of the GNU General Public License
|
|||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
*/
|
*/
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
|
|
||||||
|
|
||||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
|
|
||||||
extern const action_t fn_actions[];
|
|
||||||
|
|
||||||
|
|
||||||
/* Common layout for M0110 and M0110A
|
/* Common layout for M0110 and M0110A
|
||||||
* This keymap works with both keyboards. As you can see, the M0110A is
|
* This keymap works with both keyboards. As you can see, the M0110A is
|
||||||
* a superset of M0110 keyboard, only one exception is 'Enter'(34) of M0110
|
* a superset of M0110 keyboard, only one exception is 'Enter'(34) of M0110
|
||||||
|
@ -17,7 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
@ -56,7 +55,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
|
|
||||||
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
|
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
|
||||||
static const uint8_t PROGMEM fn_layer[] = {
|
const uint8_t PROGMEM fn_layer[] = {
|
||||||
0, // Fn0
|
0, // Fn0
|
||||||
0, // Fn1
|
0, // Fn1
|
||||||
0, // Fn2
|
0, // Fn2
|
||||||
@ -69,7 +68,7 @@ static const uint8_t PROGMEM fn_layer[] = {
|
|||||||
|
|
||||||
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
|
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
|
||||||
// See layer.c for details.
|
// See layer.c for details.
|
||||||
static const uint8_t PROGMEM fn_keycode[] = {
|
const uint8_t PROGMEM fn_keycode[] = {
|
||||||
KC_NO, // Fn0
|
KC_NO, // Fn0
|
||||||
KC_NO, // Fn1
|
KC_NO, // Fn1
|
||||||
KC_NO, // Fn2
|
KC_NO, // Fn2
|
||||||
@ -81,7 +80,7 @@ static const uint8_t PROGMEM fn_keycode[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* 0: default
|
/* 0: default
|
||||||
* ,---. ,------------------------, ,------------------------. ,---------.
|
* ,---. ,------------------------, ,------------------------. ,---------.
|
||||||
* |Pow| | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10| | F11| F12| ,-----------.
|
* |Pow| | F1 | F2 | F3 | F4 | F5 | | F6 | F7 | F8 | F9 | F10| | F11| F12| ,-----------.
|
||||||
@ -107,19 +106,3 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
LALT,CAPS,LALT, SPC, ERAS, RALT,RGUI,RCTL, PGDN, TAB, LEFT,DOWN,RGHT
|
LALT,CAPS,LALT, SPC, ERAS, RALT,RGUI,RCTL, PGDN, TAB, LEFT,DOWN,RGHT
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(row)][(col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t keymap_fn_layer(uint8_t index)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&fn_layer[index]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t keymap_fn_keycode(uint8_t index)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&fn_keycode[index]);
|
|
||||||
}
|
|
||||||
|
@ -50,7 +50,6 @@ POSSIBILITY OF SUCH DAMAGE.
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
#include "print.h"
|
#include "print.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
@ -59,7 +58,7 @@ POSSIBILITY OF SUCH DAMAGE.
|
|||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
|
|
||||||
// 32*8(256) byte array which converts PS/2 code into USB code
|
// 32*8(256) byte array which converts PS/2 code into USB code
|
||||||
static const action_t PROGMEM fn_actions[] = {
|
const action_t PROGMEM fn_actions[] = {
|
||||||
ACTION_LAYER_MOMENTARY(1), // FN0 - left command key
|
ACTION_LAYER_MOMENTARY(1), // FN0 - left command key
|
||||||
ACTION_LAYER_MOMENTARY(1), // FN1 - right command key
|
ACTION_LAYER_MOMENTARY(1), // FN1 - right command key
|
||||||
ACTION_KEY(KC_BSLS), // FN2 - number pad slash & backslash
|
ACTION_KEY(KC_BSLS), // FN2 - number pad slash & backslash
|
||||||
@ -116,7 +115,7 @@ static const action_t PROGMEM fn_actions[] = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
|
||||||
/* Layer 0: default
|
/* Layer 0: default
|
||||||
* ,-----------------------------------------------------------. ,-----------. ,---------------.
|
* ,-----------------------------------------------------------. ,-----------. ,---------------.
|
||||||
@ -163,15 +162,3 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
|
|
||||||
)
|
)
|
||||||
};
|
};
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
|
|
||||||
}
|
|
||||||
|
@ -17,7 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
#include "action.h"
|
#include "action.h"
|
||||||
#include "action_macro.h"
|
#include "action_macro.h"
|
||||||
@ -72,7 +71,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/*
|
/*
|
||||||
,---------------------------------------------------------------.
|
,---------------------------------------------------------------.
|
||||||
| 60| 61| 62| 63| 64| 65| 66| 67| 68| 69| 6A| 6B| 36| 37| 3F| 3E|
|
| 60| 61| 62| 63| 64| 65| 66| 67| 68| 69| 6A| 6B| 36| 37| 3F| 3E|
|
||||||
@ -114,7 +113,6 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
LGUI, LALT, LCTL, LSFT, SPC, SPC, RALT
|
LGUI, LALT, LCTL, LSFT, SPC, SPC, RALT
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
static const uint8_t PROGMEM overlays[][MATRIX_ROWS][MATRIX_COLS] = {};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Macro definition
|
* Macro definition
|
||||||
@ -163,7 +161,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
|
|||||||
/*
|
/*
|
||||||
* Fn actions
|
* Fn actions
|
||||||
*/
|
*/
|
||||||
static const action_t PROGMEM fn_actions[] = {
|
const action_t PROGMEM fn_actions[] = {
|
||||||
ACTION_LAYER_TAP_TOGGLE(0), // FN0
|
ACTION_LAYER_TAP_TOGGLE(0), // FN0
|
||||||
ACTION_LAYER_TAP_KEY(1, KC_SLASH), // FN1
|
ACTION_LAYER_TAP_KEY(1, KC_SLASH), // FN1
|
||||||
ACTION_LAYER_TAP_KEY(2, KC_SCLN), // FN2
|
ACTION_LAYER_TAP_KEY(2, KC_SCLN), // FN2
|
||||||
@ -172,37 +170,3 @@ static const action_t PROGMEM fn_actions[] = {
|
|||||||
ACTION_MACRO(RBRACKET), // FN5
|
ACTION_MACRO(RBRACKET), // FN5
|
||||||
ACTION_MACRO(DUMMY), // FN6
|
ACTION_MACRO(DUMMY), // FN6
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* No need to edit.
|
|
||||||
*/
|
|
||||||
#define KEYMAPS_SIZE (sizeof(keymaps) / sizeof(keymaps[0]))
|
|
||||||
#define FN_ACTIONS_SIZE (sizeof(fn_actions) / sizeof(fn_actions[0]))
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
if (layer < KEYMAPS_SIZE) {
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
} else {
|
|
||||||
// fall back to layer 0
|
|
||||||
return pgm_read_byte(&keymaps[0][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
action_t action;
|
|
||||||
if (FN_INDEX(keycode) < FN_ACTIONS_SIZE) {
|
|
||||||
action.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]);
|
|
||||||
} else {
|
|
||||||
action.code = ACTION_NO;
|
|
||||||
}
|
|
||||||
return action;
|
|
||||||
}
|
|
||||||
|
@ -11,8 +11,7 @@ TMK_DIR = ../../tmk_core
|
|||||||
TARGET_DIR = .
|
TARGET_DIR = .
|
||||||
|
|
||||||
# project specific files
|
# project specific files
|
||||||
SRC = keymap_common.c \
|
SRC = matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c
|
led.c
|
||||||
|
|
||||||
ifdef KEYMAP
|
ifdef KEYMAP
|
||||||
|
@ -10,7 +10,6 @@ OBJDIR = ./build
|
|||||||
OBJECTS = \
|
OBJECTS = \
|
||||||
$(OBJDIR)/protocol/ps2_busywait.o \
|
$(OBJDIR)/protocol/ps2_busywait.o \
|
||||||
$(OBJDIR)/protocol/ps2_io_mbed.o \
|
$(OBJDIR)/protocol/ps2_io_mbed.o \
|
||||||
$(OBJDIR)/./keymap_common.o \
|
|
||||||
$(OBJDIR)/./matrix.o \
|
$(OBJDIR)/./matrix.o \
|
||||||
$(OBJDIR)/./led.o \
|
$(OBJDIR)/./led.o \
|
||||||
$(OBJDIR)/./main.o
|
$(OBJDIR)/./main.o
|
||||||
|
@ -8,8 +8,7 @@ TMK_DIR = ../../tmk_core
|
|||||||
TARGET_DIR = .
|
TARGET_DIR = .
|
||||||
|
|
||||||
# keyboard dependent files
|
# keyboard dependent files
|
||||||
SRC = keymap_common.c \
|
SRC = matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c
|
led.c
|
||||||
|
|
||||||
ifdef KEYMAP
|
ifdef KEYMAP
|
||||||
|
@ -12,8 +12,7 @@ TMK_DIR = ../../tmk_core
|
|||||||
TARGET_DIR = .
|
TARGET_DIR = .
|
||||||
|
|
||||||
# project specific files
|
# project specific files
|
||||||
SRC = keymap_common.c \
|
SRC = matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c
|
led.c
|
||||||
|
|
||||||
ifdef KEYMAP
|
ifdef KEYMAP
|
||||||
|
@ -12,8 +12,7 @@ TMK_DIR = ../../tmk_core
|
|||||||
TARGET_DIR = .
|
TARGET_DIR = .
|
||||||
|
|
||||||
# project specific files
|
# project specific files
|
||||||
SRC = keymap_common.c \
|
SRC = matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c
|
led.c
|
||||||
|
|
||||||
ifdef KEYMAP
|
ifdef KEYMAP
|
||||||
|
@ -8,8 +8,7 @@ TMK_DIR = ../../tmk_core
|
|||||||
TARGET_DIR = .
|
TARGET_DIR = .
|
||||||
|
|
||||||
# keyboard dependent files
|
# keyboard dependent files
|
||||||
SRC = keymap_common.c \
|
SRC = matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c
|
led.c
|
||||||
|
|
||||||
ifdef KEYMAP
|
ifdef KEYMAP
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011,2012,2013 Jun Wako <wakojun@gmail.com>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include "keymap_common.h"
|
|
||||||
#include "progmem.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
|
|
||||||
}
|
|
@ -28,11 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
|
|
||||||
|
|
||||||
// 32*8(256) byte array which converts PS/2 code into USB code
|
|
||||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
|
|
||||||
extern const action_t fn_actions[];
|
|
||||||
|
|
||||||
|
|
||||||
/* All keys */
|
/* All keys */
|
||||||
#define KEYMAP_ALL( \
|
#define KEYMAP_ALL( \
|
||||||
K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07, KFC,K7E,KFE, \
|
K76,K05,K06,K04,K0C,K03,K0B,K83,K0A,K01,K09,K78,K07, KFC,K7E,KFE, \
|
||||||
|
@ -17,7 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
@ -87,7 +86,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
|
|
||||||
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
|
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
|
||||||
static const uint8_t PROGMEM fn_layer[] = {
|
const uint8_t PROGMEM fn_layer[] = {
|
||||||
2, // Fn0
|
2, // Fn0
|
||||||
3, // Fn1
|
3, // Fn1
|
||||||
4, // Fn2
|
4, // Fn2
|
||||||
@ -100,7 +99,7 @@ static const uint8_t PROGMEM fn_layer[] = {
|
|||||||
|
|
||||||
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
|
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
|
||||||
// See layer.c for details.
|
// See layer.c for details.
|
||||||
static const uint8_t PROGMEM fn_keycode[] = {
|
const uint8_t PROGMEM fn_keycode[] = {
|
||||||
KC_NO, // Fn0
|
KC_NO, // Fn0
|
||||||
KC_SCLN, // Fn1
|
KC_SCLN, // Fn1
|
||||||
KC_SLSH, // Fn2
|
KC_SLSH, // Fn2
|
||||||
@ -112,7 +111,7 @@ static const uint8_t PROGMEM fn_keycode[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/*
|
/*
|
||||||
KEYMAP(
|
KEYMAP(
|
||||||
HELP, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10,F11,F12, PSCR,SLCK,PAUS, MUTE,VOLD,VOLU,PWR,
|
HELP, F1, F2, F3, F4, F5, F6, F7, F8, F9, F10,F11,F12, PSCR,SLCK,PAUS, MUTE,VOLD,VOLU,PWR,
|
||||||
@ -174,19 +173,3 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
CAPS,LALT,LGUI, BTN1, RGUI,RALT,NO, LEFT,DOWN,RGHT
|
CAPS,LALT,LGUI, BTN1, RGUI,RALT,NO, LEFT,DOWN,RGHT
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(row)][(col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t keymap_fn_layer(uint8_t index)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&fn_layer[index]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t keymap_fn_keycode(uint8_t index)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&fn_keycode[index]);
|
|
||||||
}
|
|
||||||
|
@ -17,7 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
@ -155,19 +154,3 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(row)][(col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t keymap_fn_layer(uint8_t index)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&fn_layer[index]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t keymap_fn_keycode(uint8_t index)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&fn_keycode[index]);
|
|
||||||
}
|
|
||||||
|
@ -17,7 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
#include "print.h"
|
#include "print.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
@ -102,7 +101,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
|
// Assign Fn key(0-7) to a layer to which switch with the Fn key pressed.
|
||||||
static const uint8_t PROGMEM fn_layer[] = {
|
const uint8_t PROGMEM fn_layer[] = {
|
||||||
0, // Fn0
|
0, // Fn0
|
||||||
0, // Fn1
|
0, // Fn1
|
||||||
0, // Fn2
|
0, // Fn2
|
||||||
@ -115,7 +114,7 @@ static const uint8_t PROGMEM fn_layer[] = {
|
|||||||
|
|
||||||
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
|
// Assign Fn key(0-7) to a keycode sent when release Fn key without use of the layer.
|
||||||
// See layer.c for details.
|
// See layer.c for details.
|
||||||
static const uint8_t PROGMEM fn_keycode[] = {
|
const uint8_t PROGMEM fn_keycode[] = {
|
||||||
KC_NO, // Fn0
|
KC_NO, // Fn0
|
||||||
KC_NO, // Fn1
|
KC_NO, // Fn1
|
||||||
KC_NO, // Fn2
|
KC_NO, // Fn2
|
||||||
@ -127,7 +126,7 @@ static const uint8_t PROGMEM fn_keycode[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* 0: default
|
/* 0: default
|
||||||
* ,---. ,---------------. ,---------------. ,---------------. ,-----------.
|
* ,---. ,---------------. ,---------------. ,---------------. ,-----------.
|
||||||
* |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
|
* |Esc| |F1 |F2 |F3 |F4 | |F5 |F6 |F7 |F8 | |F9 |F10|F11|F12| |PrS|ScL|Pau|
|
||||||
@ -198,19 +197,3 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
uint8_t keymap_get_keycode(uint8_t layer, uint8_t row, uint8_t col)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(row)][(col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t keymap_fn_layer(uint8_t index)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&fn_layer[index]);
|
|
||||||
}
|
|
||||||
|
|
||||||
uint8_t keymap_fn_keycode(uint8_t index)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&fn_keycode[index]);
|
|
||||||
}
|
|
||||||
|
@ -108,9 +108,7 @@ OPT_DEFS += -DBOOTLOADER_SIZE=4096
|
|||||||
#OPT_DEFS += -DNO_ACTION_LAYER
|
#OPT_DEFS += -DNO_ACTION_LAYER
|
||||||
#OPT_DEFS += -DNO_ACTION_MACRO
|
#OPT_DEFS += -DNO_ACTION_MACRO
|
||||||
|
|
||||||
SRC = \
|
SRC = usb_usb.cpp \
|
||||||
keymap_common.c \
|
|
||||||
usb_usb.cpp \
|
|
||||||
main.cpp
|
main.cpp
|
||||||
|
|
||||||
ifdef KEYMAP
|
ifdef KEYMAP
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2014 Jun Wako <wakojun@gmail.com>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include "keymap_common.h"
|
|
||||||
#include "progmem.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
|
|
||||||
}
|
|
@ -28,10 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
|
|
||||||
|
|
||||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
|
|
||||||
extern const action_t fn_actions[];
|
|
||||||
|
|
||||||
|
|
||||||
/* ,---------------. ,---------------. ,---------------.
|
/* ,---------------. ,---------------. ,---------------.
|
||||||
* |F13|F14|F15|F16| |F17|F18|F19|F20| |F21|F22|F23|F24|
|
* |F13|F14|F15|F16| |F17|F18|F19|F20| |F21|F22|F23|F24|
|
||||||
* ,---. |---------------| |---------------| |---------------| ,-----------. ,---------------. ,-------.
|
* ,---. |---------------| |---------------| |---------------| ,-----------. ,---------------. ,-------.
|
||||||
|
@ -17,7 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
#include "action.h"
|
#include "action.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
@ -72,7 +71,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const uint16_t fn_actions[] PROGMEM = {
|
const action_t fn_actions[] PROGMEM = {
|
||||||
[0] = ACTION_FUNCTION(0), // toggle all LEDs
|
[0] = ACTION_FUNCTION(0), // toggle all LEDs
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -92,7 +91,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
/* X68000 Keyboard Scan codes
|
/* X68000 Keyboard Scan codes
|
||||||
,---. ,---. ,-------------------, ,-------------------. ,-----------. ,---------------.
|
,---. ,---. ,-------------------, ,-------------------. ,-----------. ,---------------.
|
||||||
| 61| | 62| | 63| 64| 65| 66| 67| | 68| 69| 6A| 6B| 6C| | 5A| 5B| 5C| | 5D| 52| 53| 54|
|
| 61| | 62| | 63| 64| 65| 66| 67| | 68| 69| 6A| 6B| 6C| | 5A| 5B| 5C| | 5D| 52| 53| 54|
|
||||||
@ -128,16 +127,3 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
LGUI,LALT,MHEN, SPC, HENK,KANA,APP, ZKHK, F14, F15, P0, PCMM,PDOT
|
LGUI,LALT,MHEN, SPC, HENK,KANA,APP, ZKHK, F14, F15, P0, PCMM,PDOT
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
|
|
||||||
}
|
|
||||||
|
@ -11,8 +11,7 @@ TMK_DIR = ../../tmk_core
|
|||||||
TARGET_DIR = .
|
TARGET_DIR = .
|
||||||
|
|
||||||
# project specific files
|
# project specific files
|
||||||
SRC = keymap_common.c \
|
SRC = matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c
|
led.c
|
||||||
|
|
||||||
ifdef KEYMAP
|
ifdef KEYMAP
|
||||||
|
@ -1,31 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011,2012,2013 Jun Wako <wakojun@gmail.com>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include "keymap_common.h"
|
|
||||||
#include "progmem.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
|
|
||||||
}
|
|
@ -28,10 +28,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
|
|
||||||
|
|
||||||
// 32*8(256) byte array which converts PS/2 code into USB code
|
|
||||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
|
|
||||||
extern const uint16_t fn_actions[];
|
|
||||||
|
|
||||||
/* All keys */
|
/* All keys */
|
||||||
#define KEYMAP_ALL( \
|
#define KEYMAP_ALL( \
|
||||||
K00, K02,K03,K04,K05,K06,K07,K08,K09,K0A,K0B,K0C,K0D, K0E,K0F,K0G, \
|
K00, K02,K03,K04,K05,K06,K07,K08,K09,K0A,K0B,K0C,K0D, K0E,K0F,K0G, \
|
||||||
|
@ -30,5 +30,5 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t PROGMEM fn_actions[] = {
|
const action_t PROGMEM fn_actions[] = {
|
||||||
};
|
};
|
||||||
|
@ -28,5 +28,5 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t PROGMEM fn_actions[] = {
|
const action_t PROGMEM fn_actions[] = {
|
||||||
};
|
};
|
||||||
|
@ -54,7 +54,7 @@ const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
),
|
),
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint16_t PROGMEM fn_actions[] = {
|
const action_t PROGMEM fn_actions[] = {
|
||||||
[0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE),
|
[0] = ACTION_LAYER_TAP_KEY(1, KC_SPACE),
|
||||||
[1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde
|
[1] = ACTION_MODS_KEY(MOD_LSFT, KC_GRV), // tilde
|
||||||
};
|
};
|
||||||
|
@ -120,7 +120,6 @@ ifdef ACTIONMAP_ENABLE
|
|||||||
KEYMAP_FILE = actionmap
|
KEYMAP_FILE = actionmap
|
||||||
else
|
else
|
||||||
KEYMAP_FILE = keymap
|
KEYMAP_FILE = keymap
|
||||||
SRC := keymap_common.c $(SRC)
|
|
||||||
endif
|
endif
|
||||||
ifdef KEYMAP
|
ifdef KEYMAP
|
||||||
SRC := $(KEYMAP_FILE)_$(KEYMAP).c $(SRC)
|
SRC := $(KEYMAP_FILE)_$(KEYMAP).c $(SRC)
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "actionmap.h"
|
#include "actionmap.h"
|
||||||
#include "action_code.h"
|
#include "action_code.h"
|
||||||
#include "actionmap_common.h"
|
#include "actionmap_common.h"
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "actionmap.h"
|
#include "actionmap.h"
|
||||||
#include "action_code.h"
|
#include "action_code.h"
|
||||||
#include "actionmap_common.h"
|
#include "actionmap_common.h"
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include "keymap_common.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
|
|
||||||
}
|
|
@ -19,7 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
#include "action.h"
|
#include "action.h"
|
||||||
#include "action_macro.h"
|
#include "action_macro.h"
|
||||||
@ -30,10 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
|
|
||||||
|
|
||||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
|
|
||||||
extern const action_t fn_actions[];
|
|
||||||
|
|
||||||
|
|
||||||
/* Alps64 keymap definition macro */
|
/* Alps64 keymap definition macro */
|
||||||
#define KEYMAP( \
|
#define KEYMAP( \
|
||||||
K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K26, K27, \
|
K36, K37, K46, K47, K56, K57, K66, K67, K76, K77, K06, K07, K17, K26, K27, \
|
||||||
|
@ -48,8 +48,7 @@ TMK_DIR = ../../tmk_core
|
|||||||
TARGET_DIR = .
|
TARGET_DIR = .
|
||||||
|
|
||||||
# project specific files
|
# project specific files
|
||||||
SRC = keymap_common.c \
|
SRC = matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c
|
led.c
|
||||||
|
|
||||||
ifdef KEYMAP
|
ifdef KEYMAP
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include "keymap_common.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
|
|
||||||
}
|
|
@ -19,7 +19,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
#include "action.h"
|
#include "action.h"
|
||||||
#include "action_macro.h"
|
#include "action_macro.h"
|
||||||
@ -30,10 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
|
|
||||||
|
|
||||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
|
|
||||||
extern const action_t fn_actions[];
|
|
||||||
|
|
||||||
|
|
||||||
/* GH60 keymap definition macro
|
/* GH60 keymap definition macro
|
||||||
* K2C, K31 and K3C are extra keys for ISO
|
* K2C, K31 and K3C are extra keys for ISO
|
||||||
*/
|
*/
|
||||||
|
@ -49,8 +49,7 @@ TARGET_DIR = .
|
|||||||
|
|
||||||
|
|
||||||
# List C source files here. (C dependencies are automatically generated.)
|
# List C source files here. (C dependencies are automatically generated.)
|
||||||
SRC += keymap_common.c \
|
SRC += matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c
|
led.c
|
||||||
|
|
||||||
CONFIG_H = config.h
|
CONFIG_H = config.h
|
||||||
|
@ -13,8 +13,7 @@ TMK_DIR = ../../tmk_core
|
|||||||
TARGET_DIR = .
|
TARGET_DIR = .
|
||||||
|
|
||||||
# keyboard dependent files
|
# keyboard dependent files
|
||||||
SRC = keymap_common.c \
|
SRC = matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c
|
led.c
|
||||||
|
|
||||||
ifdef KEYMAP
|
ifdef KEYMAP
|
||||||
|
@ -49,8 +49,7 @@ TARGET_DIR = .
|
|||||||
|
|
||||||
|
|
||||||
# List C source files here. (C dependencies are automatically generated.)
|
# List C source files here. (C dependencies are automatically generated.)
|
||||||
SRC += keymap_common.c \
|
SRC += matrix.c \
|
||||||
matrix.c \
|
|
||||||
led.c
|
led.c
|
||||||
|
|
||||||
CONFIG_H = config_rn42.h
|
CONFIG_H = config_rn42.h
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include <stdint.h>
|
|
||||||
#include "action.h"
|
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keymap_common.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
|
|
||||||
}
|
|
@ -32,10 +32,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
|
|
||||||
|
|
||||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
|
|
||||||
extern const action_t fn_actions[];
|
|
||||||
|
|
||||||
|
|
||||||
#define KEYMAP( \
|
#define KEYMAP( \
|
||||||
K31, K30, K00, K10, K11, K20, K21, K40, K41, K60, K61, K70, K71, K50, K51, \
|
K31, K30, K00, K10, K11, K20, K21, K40, K41, K60, K61, K70, K71, K50, K51, \
|
||||||
K32, K01, K02, K13, K12, K23, K22, K42, K43, K62, K63, K73, K72, K52, \
|
K32, K01, K02, K13, K12, K23, K22, K42, K43, K62, K63, K73, K72, K52, \
|
||||||
|
@ -9,7 +9,6 @@ OBJDIR = ./build
|
|||||||
|
|
||||||
OBJECTS = \
|
OBJECTS = \
|
||||||
$(OBJDIR)/matrix.o \
|
$(OBJDIR)/matrix.o \
|
||||||
$(OBJDIR)/keymap_common.o \
|
|
||||||
$(OBJDIR)/led.o \
|
$(OBJDIR)/led.o \
|
||||||
$(OBJDIR)/main.o
|
$(OBJDIR)/main.o
|
||||||
|
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include "keymap_common.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
return (action_t){ .code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]) };
|
|
||||||
}
|
|
@ -29,10 +29,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
|
|
||||||
|
|
||||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
|
|
||||||
extern const action_t fn_actions[];
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef INFINITY_PROTOTYPE
|
#ifdef INFINITY_PROTOTYPE
|
||||||
|
|
||||||
/* Infinity prototype */
|
/* Infinity prototype */
|
||||||
|
@ -9,7 +9,6 @@ TARGET_DIR = .
|
|||||||
|
|
||||||
# project specific files
|
# project specific files
|
||||||
SRC = matrix.c \
|
SRC = matrix.c \
|
||||||
keymap_common.c \
|
|
||||||
led.c
|
led.c
|
||||||
|
|
||||||
ifdef KEYMAP
|
ifdef KEYMAP
|
||||||
|
@ -1,30 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2012,2013 Jun Wako <wakojun@gmail.com>
|
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
|
||||||
it under the terms of the GNU General Public License as published by
|
|
||||||
the Free Software Foundation, either version 2 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include "keymap_common.h"
|
|
||||||
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
return keymaps[(layer)][(key.row)][(key.col)];
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
return (action_t){ .code = fn_actions[FN_INDEX(keycode)] };
|
|
||||||
}
|
|
@ -30,10 +30,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "keymap.h"
|
#include "keymap.h"
|
||||||
|
|
||||||
|
|
||||||
extern const uint8_t keymaps[][MATRIX_ROWS][MATRIX_COLS];
|
|
||||||
extern const action_t fn_actions[];
|
|
||||||
|
|
||||||
|
|
||||||
#ifdef INFINITY_PROTOTYPE
|
#ifdef INFINITY_PROTOTYPE
|
||||||
|
|
||||||
/* Infinity prototype */
|
/* Infinity prototype */
|
||||||
|
@ -16,7 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
*/
|
*/
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <avr/pgmspace.h>
|
|
||||||
#include "keycode.h"
|
#include "keycode.h"
|
||||||
#include "action.h"
|
#include "action.h"
|
||||||
#include "action_macro.h"
|
#include "action_macro.h"
|
||||||
@ -36,31 +35,3 @@ static const uint8_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
|||||||
*/
|
*/
|
||||||
static const action_t PROGMEM fn_actions[] = {
|
static const action_t PROGMEM fn_actions[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#define KEYMAPS_SIZE (sizeof(keymaps) / sizeof(keymaps[0]))
|
|
||||||
#define FN_ACTIONS_SIZE (sizeof(fn_actions) / sizeof(fn_actions[0]))
|
|
||||||
|
|
||||||
/* translates key to keycode */
|
|
||||||
uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|
||||||
{
|
|
||||||
if (layer < KEYMAPS_SIZE) {
|
|
||||||
return pgm_read_byte(&keymaps[(layer)][(key.row)][(key.col)]);
|
|
||||||
} else {
|
|
||||||
// fall back to layer 0
|
|
||||||
return pgm_read_byte(&keymaps[0][(key.row)][(key.col)]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* translates Fn keycode to action */
|
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
|
||||||
{
|
|
||||||
action_t action;
|
|
||||||
if (FN_INDEX(keycode) < FN_ACTIONS_SIZE) {
|
|
||||||
action.code = pgm_read_word(&fn_actions[FN_INDEX(keycode)]);
|
|
||||||
} else {
|
|
||||||
action = (action_t)ACTION_NO;
|
|
||||||
}
|
|
||||||
return action;
|
|
||||||
}
|
|
||||||
|
@ -40,5 +40,5 @@ uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|||||||
/* translates Fn keycode to action */
|
/* translates Fn keycode to action */
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
action_t keymap_fn_to_action(uint8_t keycode)
|
||||||
{
|
{
|
||||||
return (action_t){ .code = fn_actions[FN_INDEX(keycode)] };
|
return fn_actions[FN_INDEX(keycode)];
|
||||||
}
|
}
|
||||||
|
@ -40,5 +40,5 @@ uint8_t keymap_key_to_keycode(uint8_t layer, keypos_t key)
|
|||||||
/* translates Fn keycode to action */
|
/* translates Fn keycode to action */
|
||||||
action_t keymap_fn_to_action(uint8_t keycode)
|
action_t keymap_fn_to_action(uint8_t keycode)
|
||||||
{
|
{
|
||||||
return (action_t){ .code = fn_actions[FN_INDEX(keycode)] };
|
return fn_actions[FN_INDEX(keycode)];
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user