forked from mirrors/qmk_userspace
		
	Minor fixes in keyboard.c.
This commit is contained in:
		
					parent
					
						
							
								28b5f69ce5
							
						
					
				
			
			
				commit
				
					
						d8dddf9f25
					
				
			
		
					 2 changed files with 10 additions and 14 deletions
				
			
		| 
						 | 
					@ -26,6 +26,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
#include "command.h"
 | 
					#include "command.h"
 | 
				
			||||||
#include "util.h"
 | 
					#include "util.h"
 | 
				
			||||||
#include "sendchar.h"
 | 
					#include "sendchar.h"
 | 
				
			||||||
 | 
					#include "bootloader.h"
 | 
				
			||||||
#ifdef MOUSEKEY_ENABLE
 | 
					#ifdef MOUSEKEY_ENABLE
 | 
				
			||||||
#include "mousekey.h"
 | 
					#include "mousekey.h"
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					@ -68,21 +69,21 @@ void keyboard_task(void)
 | 
				
			||||||
    matrix_row_t matrix_change = 0;
 | 
					    matrix_row_t matrix_change = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    matrix_scan();
 | 
					    matrix_scan();
 | 
				
			||||||
    for (int r = 0; r < MATRIX_ROWS; r++) {
 | 
					    for (uint8_t r = 0; r < MATRIX_ROWS; r++) {
 | 
				
			||||||
        matrix_row = matrix_get_row(r);
 | 
					        matrix_row = matrix_get_row(r);
 | 
				
			||||||
        matrix_change = matrix_row ^ matrix_prev[r];
 | 
					        matrix_change = matrix_row ^ matrix_prev[r];
 | 
				
			||||||
        if (matrix_change) {
 | 
					        if (matrix_change) {
 | 
				
			||||||
            if (debug_matrix) matrix_print();
 | 
					            if (debug_matrix) matrix_print();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            for (int c = 0; c < MATRIX_COLS; c++) {
 | 
					            for (uint8_t c = 0; c < MATRIX_COLS; c++) {
 | 
				
			||||||
                if (matrix_change & (1<<c)) {
 | 
					                if (matrix_change & ((matrix_row_t)1<<c)) {
 | 
				
			||||||
                    action_exec((keyevent_t){
 | 
					                    action_exec((keyevent_t){
 | 
				
			||||||
                        .key.pos  = (keypos_t){ .row = r, .col = c },
 | 
					                        .key.pos  = (keypos_t){ .row = r, .col = c },
 | 
				
			||||||
                        .pressed = (matrix_row & (1<<c)),
 | 
					                        .pressed = (matrix_row & (1<<c)),
 | 
				
			||||||
                        .time = (timer_read() | 1) /* NOTE: 0 means no event */
 | 
					                        .time = (timer_read() | 1) /* NOTE: 0 means no event */
 | 
				
			||||||
                    });
 | 
					                    });
 | 
				
			||||||
                    // record a processed key
 | 
					                    // record a processed key
 | 
				
			||||||
                    matrix_prev[r] ^= (1<<c);
 | 
					                    matrix_prev[r] ^= ((matrix_row_t)1<<c);
 | 
				
			||||||
                    // process a key per task call
 | 
					                    // process a key per task call
 | 
				
			||||||
                    goto MATRIX_LOOP_END;
 | 
					                    goto MATRIX_LOOP_END;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
| 
						 | 
					@ -90,12 +91,7 @@ void keyboard_task(void)
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    // call with not real event to update state of aciton
 | 
					    // call with not real event to update state of aciton
 | 
				
			||||||
    // TODO: use NOEVENT macro
 | 
					    action_exec(NOEVENT);
 | 
				
			||||||
    action_exec((keyevent_t) {
 | 
					 | 
				
			||||||
        .key.pos = (keypos_t){ .row = 255, .col = 255 }, // assume this key doesn't exist
 | 
					 | 
				
			||||||
        .pressed = false,
 | 
					 | 
				
			||||||
        .time = 0,
 | 
					 | 
				
			||||||
    });
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
MATRIX_LOOP_END:
 | 
					MATRIX_LOOP_END:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,7 +45,7 @@ typedef struct {
 | 
				
			||||||
#define KEYEQ(keya, keyb)       (keya.raw == keyb.raw)
 | 
					#define KEYEQ(keya, keyb)       (keya.raw == keyb.raw)
 | 
				
			||||||
#define IS_NOEVENT(event)       (event.time == 0)
 | 
					#define IS_NOEVENT(event)       (event.time == 0)
 | 
				
			||||||
#define NOEVENT                 (keyevent_t){           \
 | 
					#define NOEVENT                 (keyevent_t){           \
 | 
				
			||||||
    .key = (keypos_t){ .row = 255, .col = 255 },    \
 | 
					    .key.pos = (keypos_t){ .row = 255, .col = 255 },    \
 | 
				
			||||||
    .pressed = false,                                   \
 | 
					    .pressed = false,                                   \
 | 
				
			||||||
    .time = 0                                           \
 | 
					    .time = 0                                           \
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue