aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--keyboards/draculad/keymaps/pimoroni/config.h8
-rw-r--r--keyboards/draculad/keymaps/pimoroni/keymap.c43
-rw-r--r--keyboards/draculad/keymaps/pimoroni/rules.mk5
3 files changed, 32 insertions, 24 deletions
diff --git a/keyboards/draculad/keymaps/pimoroni/config.h b/keyboards/draculad/keymaps/pimoroni/config.h
index c5f9df6f9..378b9b892 100644
--- a/keyboards/draculad/keymaps/pimoroni/config.h
+++ b/keyboards/draculad/keymaps/pimoroni/config.h
@@ -15,11 +15,13 @@ You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>. 15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#define POINTING_DEVICE_ROTATION_90
19
18//comment that out if your trackball is on the left side 20//comment that out if your trackball is on the left side
19#define TRACKBALL_RIGHT 21#define TRACKBALL_RIGHT
20 22
21#ifdef TRACKBALL_RIGHT 23#ifdef TRACKBALL_RIGHT
22 #define PIMORONI_TRACKBALL_INVERT_X 24 #define POINTING_DEVICE_INVERT_X
23 #define PIMORONI_TRACKBALL_INVERT_Y 25 #define POINTING_DEVICE_INVERT_Y
24#endif 26#endif
25 27
diff --git a/keyboards/draculad/keymaps/pimoroni/keymap.c b/keyboards/draculad/keymaps/pimoroni/keymap.c
index b70184dbc..5c20c69af 100644
--- a/keyboards/draculad/keymaps/pimoroni/keymap.c
+++ b/keyboards/draculad/keymaps/pimoroni/keymap.c
@@ -16,8 +16,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17 17
18#include QMK_KEYBOARD_H 18#include QMK_KEYBOARD_H
19#include "drivers/sensors/pimoroni_trackball.h"
20#include "pointing_device.h"
21 19
22 20
23enum layer_number { 21enum layer_number {
@@ -29,13 +27,13 @@ enum layer_number {
29}; 27};
30 28
31enum custom_keycodes { 29enum custom_keycodes {
32 BALL_HUI,//cycles hue 30 BALL_HUI = SAFE_RANGE, //cycles hue
33 BALL_WHT,//cycles white 31 BALL_WHT, //cycles white
34 BALL_DEC,//decreased color 32 BALL_DEC, //decreased color
35 BALL_SCR,//scrolls 33 BALL_SCR, //scrolls
36 BALL_NCL,//left click 34 BALL_NCL, //left click
37 BALL_RCL,//right click 35 BALL_RCL, //right click
38 BALL_MCL,//middle click 36 BALL_MCL, //middle click
39}; 37};
40 38
41const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { 39const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
@@ -78,8 +76,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
78 76
79 77
80#ifdef OLED_ENABLE 78#ifdef OLED_ENABLE
81
82
83oled_rotation_t oled_init_user(oled_rotation_t rotation) { 79oled_rotation_t oled_init_user(oled_rotation_t rotation) {
84 80
85 if (is_keyboard_master()) { 81 if (is_keyboard_master()) {
@@ -209,13 +205,23 @@ bool oled_task_user(void) {
209 return false; 205 return false;
210} 206}
211 207
212#endif 208#endif //OLED_ENABLE
213 209
214uint8_t white = 0; 210uint8_t white = 0;
215uint8_t red = 255; 211uint8_t red = 255;
216uint8_t green = 0; 212uint8_t green = 0;
217uint8_t blue = 0; 213uint8_t blue = 0;
218 214
215bool set_scrolling = false;
216report_mouse_t pointing_device_task_user(report_mouse_t mouse_report) {
217 if (set_scrolling) {
218 mouse_report.h = mouse_report.x;
219 mouse_report.v = mouse_report.y;
220 mouse_report.x = mouse_report.y = 0;
221 }
222 return mouse_report;
223}
224
219void ball_increase_hue(void){ 225void ball_increase_hue(void){
220 if(red!=255&&green!=255&&blue!=255){ 226 if(red!=255&&green!=255&&blue!=255){
221 red =255; 227 red =255;
@@ -233,7 +239,7 @@ void ball_increase_hue(void){
233 } else if(green ==0&&blue>0&&red==255){ 239 } else if(green ==0&&blue>0&&red==255){
234 blue -=15; 240 blue -=15;
235 } 241 }
236 trackball_set_rgbw(red,green,blue,white); 242 pimoroni_trackball_set_rgbw(red,green,blue,white);
237} 243}
238 244
239void decrease_color(void){ 245void decrease_color(void){
@@ -246,7 +252,7 @@ void decrease_color(void){
246 if (blue>0){ 252 if (blue>0){
247 blue-=15; 253 blue-=15;
248 } 254 }
249 trackball_set_rgbw(red,green,blue,white); 255 pimoroni_trackball_set_rgbw(red,green,blue,white);
250} 256}
251 257
252void cycle_white(void){ 258void cycle_white(void){
@@ -255,7 +261,7 @@ void cycle_white(void){
255 } else{ 261 } else{
256 white=0; 262 white=0;
257 } 263 }
258 trackball_set_rgbw(red,green,blue,white); 264 pimoroni_trackball_set_rgbw(red,green,blue,white);
259} 265}
260 266
261bool process_record_user(uint16_t keycode, keyrecord_t *record){ 267bool process_record_user(uint16_t keycode, keyrecord_t *record){
@@ -280,9 +286,9 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record){
280 286
281 case BALL_SCR: 287 case BALL_SCR:
282 if(record->event.pressed){ 288 if(record->event.pressed){
283 trackball_set_scrolling(true); 289 set_scrolling = true;
284 } else{ 290 } else{
285 trackball_set_scrolling(false); 291 set_scrolling = false;
286 } 292 }
287 break; 293 break;
288 294
@@ -298,6 +304,7 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record){
298 } 304 }
299 return true; 305 return true;
300} 306}
307
301#ifdef ENCODER_ENABLE 308#ifdef ENCODER_ENABLE
302bool encoder_update_user(uint8_t index, bool clockwise) { 309bool encoder_update_user(uint8_t index, bool clockwise) {
303 if (index == 0) { 310 if (index == 0) {
@@ -325,4 +332,4 @@ bool encoder_update_user(uint8_t index, bool clockwise) {
325 // the missing ones are encoder 1 on the right side and encoder 3 on the left side 332 // the missing ones are encoder 1 on the right side and encoder 3 on the left side
326 return true; 333 return true;
327} 334}
328#endif 335#endif // ENCODER_ENABLE
diff --git a/keyboards/draculad/keymaps/pimoroni/rules.mk b/keyboards/draculad/keymaps/pimoroni/rules.mk
index 704aad070..66d3bf0e4 100644
--- a/keyboards/draculad/keymaps/pimoroni/rules.mk
+++ b/keyboards/draculad/keymaps/pimoroni/rules.mk
@@ -1,7 +1,6 @@
1# only uncomment on the side you have your trackball on 1# only uncomment on the side you have your trackball on
2POINTING_DEVICE_ENABLE = yes 2POINTING_DEVICE_ENABLE = yes
3SRC += drivers/sensors/pimoroni_trackball.c 3POINTING_DEVICE_DRIVER = pimoroni_trackball
4QUANTUM_LIB_SRC += i2c_master.c
5OLED_ENABLE = yes 4OLED_ENABLE = yes
6OLED_DRIVER = SSD1306 5OLED_DRIVER = SSD1306
7MOUSEKEY_ENABLE = no 6MOUSEKEY_ENABLE = yes