#include QMK_KEYBOARD_H
#include "analog.h"
#include "qmk_midi.h"
enum layer_names {
_BASE,
_FN,
_MEDIA
};
enum custom_keycodes {
QMKBEST = SAFE_RANGE,
QMKURL
};
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
[_BASE] = LAYOUT(
TO(_FN),
KC_1, KC_2, KC_3,
KC_4, KC_5, KC_6, KC_0
),
[_FN] = LAYOUT(
TO(_MEDIA),
RGB_TOG, RGB_MOD, RGB_VAI,
QMKURL, RGB_RMOD, RGB_VAD, QMKBEST
),
[_MEDIA] = LAYOUT(
TO(_BASE),
KC_VOLD, KC_VOLU, KC_F24,
KC_MRWD, KC_MFFD, KC_F23, KC_MPLY
)
};
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
switch (keycode) {
case QMKBEST:
if (record->event.pressed) {
SEND_STRING("QMK is the best thing ever!");
} else {
}
break;
case QMKURL:
if (record->event.pressed) {
SEND_STRING("https://qmk.fm/\n");
} else {
}
break;
}
return true;
}
uint8_t divisor = 0;
void slider(void) {
if (divisor++) { return;
}
midi_send_cc(&midi_device, 2, 0x3E, 0x7F - (analogReadPin(SLIDER_PIN) >> 3));
}
void matrix_scan_user(void) {
slider();
}