[Keyboard] Bug fixes and improvements to PloopyCo devices (#10573)
Co-authored-by: Ryan <fauxpark@gmail.com>miryoku-merge-master
parent
555b1640b2
commit
33074bcbad
@ -1 +1 @@
|
|||||||
# The default keymap for Ploopyco Trackball
|
# The default keymap for PloopyCo Mouse
|
||||||
|
|||||||
@ -0,0 +1,62 @@
|
|||||||
|
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
||||||
|
* Copyright 2019 Sunjun Kim
|
||||||
|
* Copyright 2020 Ploopy Corporation
|
||||||
|
*
|
||||||
|
* 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 QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// used for tracking the state
|
||||||
|
bool is_drag_scroll = false;
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
DRAG_SCROLL = PLOOPY_SAFE_RANGE,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT(/* Base */
|
||||||
|
C(KC_C), KC_BTN1, KC_BTN3, KC_BTN2, C(KC_V), KC_BTN4, KC_BTN5, DPI_CONFIG)
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case DRAG_SCROLL:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
// this toggles the state each time you tap it
|
||||||
|
is_drag_scroll ^= 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// The real magic is here.
|
||||||
|
// This function is called to translate the processed sensor movement
|
||||||
|
// from the mouse sensor and translates it into x and y movement for
|
||||||
|
// the mouse report. Normally. So if "drag scroll" is toggled on,
|
||||||
|
// moving the ball scrolls instead. You could remove the x or y here
|
||||||
|
// to only scroll in one direction, if you wanted, as well. In fact,
|
||||||
|
// there is no reason that you need to send this to the mouse report.
|
||||||
|
// You could have it register a key, instead.
|
||||||
|
void process_mouse_user(report_mouse_t* mouse_report, int16_t x, int16_t y) {
|
||||||
|
if (is_drag_scroll) {
|
||||||
|
mouse_report->h = x;
|
||||||
|
mouse_report->v = y;
|
||||||
|
} else {
|
||||||
|
mouse_report->x = x;
|
||||||
|
mouse_report->y = y;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
# The Drag Scroll keymap for PloopyCo Mouse
|
||||||
|
|
||||||
|
This is a sample keymap showing off what you can do with the custom callback drivers.
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
||||||
|
* Copyright 2019 Sunjun Kim
|
||||||
|
* Copyright 2020 Ploopy Corporation
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
|
||||||
@ -0,0 +1,66 @@
|
|||||||
|
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
||||||
|
* Copyright 2019 Sunjun Kim
|
||||||
|
* Copyright 2020 Ploopy Corporation
|
||||||
|
*
|
||||||
|
* 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 QMK_KEYBOARD_H
|
||||||
|
|
||||||
|
// used for tracking the state
|
||||||
|
bool is_drag_scroll = false;
|
||||||
|
|
||||||
|
enum custom_keycodes {
|
||||||
|
DRAG_SCROLL = PLOOPY_SAFE_RANGE,
|
||||||
|
};
|
||||||
|
|
||||||
|
bool process_record_user(uint16_t keycode, keyrecord_t *record) {
|
||||||
|
switch (keycode) {
|
||||||
|
case DRAG_SCROLL:
|
||||||
|
if (record->event.pressed) {
|
||||||
|
// this toggles the state each time you tap it
|
||||||
|
is_drag_scroll ^= 1;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// The real magic is here.
|
||||||
|
// This function is called to translate the processed sensor movement
|
||||||
|
// from the mouse sensor and translates it into x and y movement for
|
||||||
|
// the mouse report. Normally. So if "drag scroll" is toggled on,
|
||||||
|
// moving the ball scrolls instead. You could remove the x or y here
|
||||||
|
// to only scroll in one direction, if you wanted, as well. In fact,
|
||||||
|
// there is no reason that you need to send this to the mouse report.
|
||||||
|
// You could have it register a key, instead.
|
||||||
|
void process_mouse_user(report_mouse_t* mouse_report, int16_t x, int16_t y) {
|
||||||
|
if (is_drag_scroll) {
|
||||||
|
mouse_report->h = x;
|
||||||
|
mouse_report->v = y;
|
||||||
|
} else {
|
||||||
|
mouse_report->x = x;
|
||||||
|
mouse_report->y = y;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
|
||||||
|
[0] = LAYOUT( /* Base */
|
||||||
|
KC_BTN1, KC_BTN3, KC_BTN2,
|
||||||
|
KC_BTN4, LT(1, KC_BTN5)
|
||||||
|
),
|
||||||
|
[1] = LAYOUT(
|
||||||
|
DRAG_SCROLL, _______, _______,
|
||||||
|
_______, _______
|
||||||
|
)
|
||||||
|
};
|
||||||
@ -0,0 +1,3 @@
|
|||||||
|
# The Drag Scroll keymap for Ploopyco Trackball
|
||||||
|
|
||||||
|
This is a sample keymap showing off what you can do with the custom callback drivers.
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
||||||
|
* Copyright 2019 Sunjun Kim
|
||||||
|
* Copyright 2020 Ploopy Corporation
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#define DYNAMIC_KEYMAP_LAYER_COUNT 8
|
||||||
@ -0,0 +1,42 @@
|
|||||||
|
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
||||||
|
* Copyright 2019 Sunjun Kim
|
||||||
|
* Copyright 2020 Ploopy Corporation
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define DIRECT_PINS \
|
||||||
|
{ \
|
||||||
|
{ D4, D2, E6, B5, D7 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
// These pins are not broken out, and cannot be used normally.
|
||||||
|
// They are set as output and pulled high, by default
|
||||||
|
#define UNUSED_PINS \
|
||||||
|
{ D1, D3, B4, B6, B7, D6, C7, F6, F5, F3, F7 }
|
||||||
|
|
||||||
|
// If board has a debug LED, you can enable it by defining this
|
||||||
|
#define DEBUG_LED_PIN F7
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
||||||
|
* Copyright 2019 Sunjun Kim
|
||||||
|
* Copyright 2020 Ploopy Corporation
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "trackball.h"
|
||||||
@ -0,0 +1,47 @@
|
|||||||
|
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
||||||
|
* Copyright 2019 Sunjun Kim
|
||||||
|
* Copyright 2020 Ploopy Corporation
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Keyboard Matrix Assignments
|
||||||
|
*
|
||||||
|
* Change this to how you wired your keyboard
|
||||||
|
* COLS: AVR pins used for columns, left to right
|
||||||
|
* ROWS: AVR pins used for rows, top to bottom
|
||||||
|
* DIODE_DIRECTION: COL2ROW = COL = Anode (+), ROW = Cathode (-, marked on diode)
|
||||||
|
* ROW2COL = ROW = Anode (+), COL = Cathode (-, marked on diode)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
#define DIRECT_PINS \
|
||||||
|
{ \
|
||||||
|
{ D4, D2, E6, B6, D7 } \
|
||||||
|
}
|
||||||
|
|
||||||
|
// These pins are not broken out, and cannot be used normally.
|
||||||
|
// They are set as output and pulled high, by default
|
||||||
|
#define UNUSED_PINS \
|
||||||
|
{ D1, D3, B4, B7, D6, C7, F6, F5, F3, F7 }
|
||||||
|
|
||||||
|
// If board has a debug LED, you can enable it by defining this
|
||||||
|
#define RGB_DI_PIN B5
|
||||||
|
#define RGBLED_NUM 3
|
||||||
|
#define RGBLIGHT_LIMIT_VAL 40
|
||||||
|
#define RGBLIGHT_EFFECT_BREATHING
|
||||||
|
#define RGBLIGHT_EFFECT_RAINBOW_MOOD
|
||||||
|
#define RGBLIGHT_EFFECT_RAINBOW_SWIRL
|
||||||
@ -0,0 +1,21 @@
|
|||||||
|
/* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
|
||||||
|
* Copyright 2019 Sunjun Kim
|
||||||
|
* Copyright 2020 Ploopy Corporation
|
||||||
|
*
|
||||||
|
* 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/>.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include "trackball.h"
|
||||||
Loading…
Reference in New Issue