128 lines
3.2 KiB
C
128 lines
3.2 KiB
C
// Copyright 2022 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#include "micro.h"
|
|
|
|
#if defined(ENCODER_ENABLE)
|
|
bool encoder_update_kb(uint8_t index, bool clockwise) {
|
|
if (!encoder_update_user(index, clockwise)) {
|
|
return false;
|
|
}
|
|
if (index == 0) {
|
|
if (clockwise) {
|
|
tap_code_delay(KC_VOLU, 10);
|
|
} else {
|
|
tap_code_delay(KC_VOLD, 10);
|
|
}
|
|
} else if (index == 1) {
|
|
if (clockwise) {
|
|
tap_code_delay(MS_WHLU, 10);
|
|
} else {
|
|
tap_code_delay(MS_WHLD, 10);
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
#endif
|
|
|
|
void work_louder_micro_led_1_on(void) {
|
|
gpio_set_pin_output(WORK_LOUDER_LED_PIN_1);
|
|
gpio_write_pin(WORK_LOUDER_LED_PIN_1, true);
|
|
}
|
|
void work_louder_micro_led_2_on(void) {
|
|
gpio_set_pin_output(WORK_LOUDER_LED_PIN_2);
|
|
gpio_write_pin(WORK_LOUDER_LED_PIN_2, true);
|
|
}
|
|
void work_louder_micro_led_3_on(void) {
|
|
gpio_set_pin_output(WORK_LOUDER_LED_PIN_3);
|
|
gpio_write_pin(WORK_LOUDER_LED_PIN_3, true);
|
|
}
|
|
|
|
void work_louder_micro_led_1_off(void) {
|
|
gpio_set_pin_input(WORK_LOUDER_LED_PIN_1);
|
|
gpio_write_pin(WORK_LOUDER_LED_PIN_1, false);
|
|
}
|
|
void work_louder_micro_led_2_off(void) {
|
|
gpio_set_pin_input(WORK_LOUDER_LED_PIN_2);
|
|
gpio_write_pin(WORK_LOUDER_LED_PIN_2, false);
|
|
}
|
|
void work_louder_micro_led_3_off(void) {
|
|
gpio_set_pin_input(WORK_LOUDER_LED_PIN_3);
|
|
gpio_write_pin(WORK_LOUDER_LED_PIN_3, false);
|
|
}
|
|
|
|
void work_louder_micro_led_all_on(void) {
|
|
work_louder_micro_led_1_on();
|
|
work_louder_micro_led_2_on();
|
|
work_louder_micro_led_3_on();
|
|
}
|
|
|
|
void work_louder_micro_led_all_off(void) {
|
|
work_louder_micro_led_1_off();
|
|
work_louder_micro_led_2_off();
|
|
work_louder_micro_led_3_off();
|
|
}
|
|
|
|
void work_louder_micro_led_1_set(uint8_t n) {
|
|
#if WORK_LOUDER_LED_PIN_1 == B6
|
|
OCR1B = n;
|
|
#else
|
|
n ? work_louder_micro_led_1_on() : work_louder_micro_led_1_off();
|
|
#endif
|
|
}
|
|
void work_louder_micro_led_2_set(uint8_t n) {
|
|
#if WORK_LOUDER_LED_PIN_2 == B7
|
|
OCR1C = n;
|
|
#else
|
|
n ? work_louder_micro_led_2_on() : work_louder_micro_led_2_off();
|
|
#endif
|
|
}
|
|
void work_louder_micro_led_3_set(uint8_t n) {
|
|
#if WORK_LOUDER_LED_PIN_3 == B5
|
|
OCR1A = n;
|
|
#else
|
|
n ? work_louder_micro_led_3_on() : work_louder_micro_led_3_off();
|
|
#endif
|
|
}
|
|
|
|
void work_louder_micro_led_all_set(uint8_t n) {
|
|
work_louder_micro_led_1_set(n);
|
|
work_louder_micro_led_2_set(n);
|
|
work_louder_micro_led_3_set(n);
|
|
}
|
|
|
|
void keyboard_post_init_kb(void) {
|
|
TCCR1A = 0b10101001; // set and configure fast PWM
|
|
TCCR1B = 0b00001001; // set and configure fast PWM
|
|
|
|
keyboard_post_init_user();
|
|
}
|
|
|
|
void work_louder_led_init_animation(void) {
|
|
work_louder_micro_led_all_off();
|
|
|
|
wait_ms(500);
|
|
work_louder_micro_led_1_on();
|
|
wait_ms(100);
|
|
work_louder_micro_led_2_on();
|
|
wait_ms(100);
|
|
work_louder_micro_led_3_on();
|
|
wait_ms(100);
|
|
work_louder_micro_led_1_off();
|
|
wait_ms(100);
|
|
work_louder_micro_led_2_off();
|
|
wait_ms(100);
|
|
work_louder_micro_led_3_off();
|
|
wait_ms(200);
|
|
}
|
|
|
|
|
|
void suspend_power_down_kb(void) {
|
|
suspend_power_down_user();
|
|
work_louder_micro_led_all_off();
|
|
}
|
|
|
|
void suspend_wakeup_init_kb(void) {
|
|
work_louder_led_init_animation();
|
|
suspend_wakeup_init_user();
|
|
}
|