qmk_firmware/keyboards/duck/eagle_viper/v2/v2.c

65 lines
1.8 KiB
C
Raw Normal View History

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
2018-01-03 17:17:09 +00:00
/* 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 "quantum.h"
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
2018-01-03 17:17:09 +00:00
#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
2018-01-03 17:17:09 +00:00
};
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
2018-01-03 17:17:09 +00:00
}
bool led_update_kb(led_t led_state) {
bool res = led_update_user(led_state);
if(res) {
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
2018-01-03 17:17:09 +00:00
bool status[8] = {
led_state.scroll_lock, /* LED 3 */
led_state.caps_lock, /* LED 2 */
led_state.num_lock, /* LED 1 */
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
2018-01-03 17:17:09 +00:00
layer_state & (1<<2), /* LED 6 */
layer_state & (1<<1), /* LED 5 */
layer_state & (1<<0) ? 0: 1, /* LED 4 */
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
2018-01-03 17:17:09 +00:00
layer_state & (1<<5), /* LED 8 */
layer_state & (1<<4) /* LED 7 */
};
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
2018-01-03 17:17:09 +00:00
indicator_leds_set(status);
}
return res;
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
2018-01-03 17:17:09 +00:00
}