You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
qmk_firmware/keyboards/duck/eagle_viper/v2/v2.c

66 lines
2.0 KiB

Duck Eagle/Viper V2 support (#2216) * Preliminary support for Duck Eagle/Viper V2 60% board. This is a copy of the octagon/v2 with things changed to reach a compiling state * Get a 60% keymap compiling, this might not be what the eagle/viper really supports * Update readme to point to correct GeekHack link * Get keymap working on a Duck Eagle * Add code submitted by profanum429 - Add HHKB style top row to v2.h - Modify read_rows function to take into accout the caps lock firmware key - Modify default keymap to match the new v2.h - Adjust readmes * Fix bug related to col 0 not working * Add keymap for mechmerlin * Add profanum429's viper hhkb layout * Add visual representation for mechmerlin layout Add navigation keys to keymap * Add a better visual representation to the mechmerlin keymap * Add profanum429's Viper layout! * Updated profanum429 keymap to match a full HHKB Enabled media keys in rules.mk * Revert "Updated profanum429 keymap to match a full HHKB" This reverts commit ed914160d7e27e6412d2c7c5c1c4fa0a04838667. * Fix default keymap for Eagle * Enable extra keys for audio control support * Modified timings in indicator_leds to accomodate the WS2811S chips on the Eagle/Viper2 PCBs at 800kHz with a 16mHz clock Modified the backlight settings to not interfere with the default RGB underglow code from QMK Modified the order of the LEDs in the LED status bar at the top of the Eagle/Viper2 PCBs (3,2,1,6,5,4,8,7 order) * Cleaned up indicator code to remove unused functions as the RGB underglow uses the default driver provided by QMK Commented out backlighting code in v2.c * update readmes to reflect profanum's awesome contributions and fix typo in make instructions * Remove custom RGB logic and just rely on QMK RGB underglow. We'll leave the backlighting in place for now
7 years ago
/* Copyright 2017 MechMerlin <mechmerlin@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 "v2.h"
#include "indicator_leds.h"
enum BACKLIGHT_AREAS {
BACKLIGHT_ALPHAS = 0b00000010,
BACKLIGHT_MODNUM = 0b00001000
Duck Eagle/Viper V2 support (#2216) * Preliminary support for Duck Eagle/Viper V2 60% board. This is a copy of the octagon/v2 with things changed to reach a compiling state * Get a 60% keymap compiling, this might not be what the eagle/viper really supports * Update readme to point to correct GeekHack link * Get keymap working on a Duck Eagle * Add code submitted by profanum429 - Add HHKB style top row to v2.h - Modify read_rows function to take into accout the caps lock firmware key - Modify default keymap to match the new v2.h - Adjust readmes * Fix bug related to col 0 not working * Add keymap for mechmerlin * Add profanum429's viper hhkb layout * Add visual representation for mechmerlin layout Add navigation keys to keymap * Add a better visual representation to the mechmerlin keymap * Add profanum429's Viper layout! * Updated profanum429 keymap to match a full HHKB Enabled media keys in rules.mk * Revert "Updated profanum429 keymap to match a full HHKB" This reverts commit ed914160d7e27e6412d2c7c5c1c4fa0a04838667. * Fix default keymap for Eagle * Enable extra keys for audio control support * Modified timings in indicator_leds to accomodate the WS2811S chips on the Eagle/Viper2 PCBs at 800kHz with a 16mHz clock Modified the backlight settings to not interfere with the default RGB underglow code from QMK Modified the order of the LEDs in the LED status bar at the top of the Eagle/Viper2 PCBs (3,2,1,6,5,4,8,7 order) * Cleaned up indicator code to remove unused functions as the RGB underglow uses the default driver provided by QMK Commented out backlighting code in v2.c * update readmes to reflect profanum's awesome contributions and fix typo in make instructions * Remove custom RGB logic and just rely on QMK RGB underglow. We'll leave the backlighting in place for now
7 years ago
};
void backlight_set(uint8_t level) {
switch(level) {
case 0:
PORTB |= BACKLIGHT_ALPHAS;
PORTB |= BACKLIGHT_MODNUM;
break;
case 1:
PORTB &= ~BACKLIGHT_ALPHAS;
PORTB |= BACKLIGHT_MODNUM;
break;
case 2:
PORTB |= BACKLIGHT_ALPHAS;
PORTB &= ~BACKLIGHT_MODNUM;
break;
case 3:
PORTB &= ~BACKLIGHT_ALPHAS;
PORTB &= ~BACKLIGHT_MODNUM;
break;
}
Duck Eagle/Viper V2 support (#2216) * Preliminary support for Duck Eagle/Viper V2 60% board. This is a copy of the octagon/v2 with things changed to reach a compiling state * Get a 60% keymap compiling, this might not be what the eagle/viper really supports * Update readme to point to correct GeekHack link * Get keymap working on a Duck Eagle * Add code submitted by profanum429 - Add HHKB style top row to v2.h - Modify read_rows function to take into accout the caps lock firmware key - Modify default keymap to match the new v2.h - Adjust readmes * Fix bug related to col 0 not working * Add keymap for mechmerlin * Add profanum429's viper hhkb layout * Add visual representation for mechmerlin layout Add navigation keys to keymap * Add a better visual representation to the mechmerlin keymap * Add profanum429's Viper layout! * Updated profanum429 keymap to match a full HHKB Enabled media keys in rules.mk * Revert "Updated profanum429 keymap to match a full HHKB" This reverts commit ed914160d7e27e6412d2c7c5c1c4fa0a04838667. * Fix default keymap for Eagle * Enable extra keys for audio control support * Modified timings in indicator_leds to accomodate the WS2811S chips on the Eagle/Viper2 PCBs at 800kHz with a 16mHz clock Modified the backlight settings to not interfere with the default RGB underglow code from QMK Modified the order of the LEDs in the LED status bar at the top of the Eagle/Viper2 PCBs (3,2,1,6,5,4,8,7 order) * Cleaned up indicator code to remove unused functions as the RGB underglow uses the default driver provided by QMK Commented out backlighting code in v2.c * update readmes to reflect profanum's awesome contributions and fix typo in make instructions * Remove custom RGB logic and just rely on QMK RGB underglow. We'll leave the backlighting in place for now
7 years ago
}
// Port from backlight_update_state
void led_set_kb(uint8_t usb_led) {
bool status[8] = {
host_keyboard_leds() & (1<<USB_LED_SCROLL_LOCK), /* LED 3 */
host_keyboard_leds() & (1<<USB_LED_CAPS_LOCK), /* LED 2 */
host_keyboard_leds() & (1<<USB_LED_NUM_LOCK), /* LED 1 */
layer_state & (1<<2), /* LED 6 */
layer_state & (1<<1), /* LED 5 */
layer_state & (1<<0) ? 0: 1, /* LED 4 */
layer_state & (1<<5), /* LED 8 */
layer_state & (1<<4) /* LED 7 */
};
indicator_leds_set(status);
}
bool process_record_kb(uint16_t keycode, keyrecord_t *record) {
return process_record_user(keycode, record);
}