]> git.donarmstrong.com Git - qmk_firmware.git/blob - users/mtdjr/mtdjr.c
adds timeout to avr i2c
[qmk_firmware.git] / users / mtdjr / mtdjr.c
1 #include "mtdjr.h"
2
3 #ifdef SOLENOID_ENABLE
4   #include "solenoid.h"
5
6   void solenoid_buzz_on(void);
7   void solenoid_buzz_off(void);
8   void solenoid_dwell_minus(void);
9   void solenoid_dwell_plus(void);
10   void solenoid_toggle(void);
11   void solenoid_stop(void);
12   void solenoid_fire(void);
13   void solenoid_check(void);
14   void solenoid_setup(void);
15   void matrix_init_user(void);
16   void matrix_scan_user(void);
17 #endif
18
19 bool process_record_user(uint16_t keycode, keyrecord_t *record) {
20   #ifdef SOLENOID_ENABLE
21     if (record->event.pressed) {
22       solenoid_fire();
23     }
24   #endif
25   switch (keycode) {
26     case QWERTY:
27       if (record->event.pressed) {
28         set_single_persistent_default_layer(_QWERTY);
29       }
30       return false;
31       break;
32     case LOWER:
33       if (record->event.pressed) {
34         layer_on(_LOWER);
35         update_tri_layer(_LOWER, _RAISE, _ADJUST);
36       } else {
37         layer_off(_LOWER);
38         update_tri_layer(_LOWER, _RAISE, _ADJUST);
39       }
40       return false;
41       break;
42     case RAISE:
43       if (record->event.pressed) {
44         layer_on(_RAISE);
45         update_tri_layer(_LOWER, _RAISE, _ADJUST);
46       } else {
47         layer_off(_RAISE);
48         update_tri_layer(_LOWER, _RAISE, _ADJUST);
49       }
50       return false;
51       break;
52     case ADJUST:
53       if (record->event.pressed) {
54         layer_on(_ADJUST);
55         update_tri_layer(_LOWER, _RAISE, _ADJUST);
56       } else {
57         layer_off(_ADJUST);
58         update_tri_layer(_LOWER, _RAISE, _ADJUST);
59       }
60       return false;
61       break;
62     case SOLENOID_TOG:
63       #ifdef SOLENOID_ENABLE
64         if (record->event.pressed) {
65           solenoid_toggle();
66         }
67       #endif
68       break;
69     case SOLENOID_DWELL_MINUS:
70       #ifdef SOLENOID_ENABLE
71         if (record->event.pressed) {
72           solenoid_dwell_minus();
73         }
74         #endif
75       break;
76     case SOLENOID_DWELL_PLUS:
77       #ifdef SOLENOID_ENABLE
78         if (record->event.pressed) {
79           solenoid_dwell_plus();
80         }
81         #endif
82       break;
83     case SOLENOID_BUZZ_ON:
84       #ifdef SOLENOID_ENABLE
85         if (record->event.pressed) {
86           solenoid_buzz_on();
87         }
88         #endif
89       break;
90     case SOLENOID_BUZZ_OFF:
91       #ifdef SOLENOID_ENABLE
92         if (record->event.pressed) {
93           solenoid_buzz_off();
94         }
95         #endif
96       break;
97   }
98   return true;
99 };
100
101
102 //Tap Dance Definitions
103 qk_tap_dance_action_t tap_dance_actions[] = {
104   [TD_ESC]  = ACTION_TAP_DANCE_DOUBLE(KC_GRV, KC_ESC),
105   [TD_ALTLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_RALT, LGUI(KC_L)),
106   [TD_ENDLOCK] = ACTION_TAP_DANCE_DOUBLE(KC_END, LGUI(KC_L)),
107   //[TD_PRNT] = ACTION_TAP_DANCE_DOUBLE(PRINT, PRINT_SEL)
108 };
109
110 const macro_t *action_get_macro(keyrecord_t *record, uint8_t id, uint8_t opt) {
111   if (record->event.pressed) {
112       switch(id) {
113           case 0:
114               SEND_STRING("sudo su -\n");
115               return false; break;
116           case 1:
117               SEND_STRING("puppet apply /etc/puppetlabs/code/environments/production/manifests/site.pp\n");
118               return false; break;
119           case 2:
120               SEND_STRING("ps -ef | grep ");
121               return false; break;
122           case 3: // control + insert
123               return MACRO(D(LCTL), T(INS), U(LCTL), END);
124               break;
125           case 4: // shift + insert
126               return MACRO(D(LSFT), T(INS), U(LSFT), END);
127               break;
128           case 5: // control + alt + delete
129               return MACRO(D(LCTL), D(RALT), T(DEL), U(LCTL), U(LALT), END);
130               break;
131           case 6: // lgui + L
132               return MACRO(D(LGUI), T(L), U(LGUI), END);
133               break;
134       }
135   }
136   return MACRO_NONE;
137 };