Codes appear to be detected correctly, the break codes are broken.
[tmk_keyboard.git] / tmk_core / protocol / ps2_interrupt.c
index 8114442bac663667f82dfbf78580b4069d381510..0fd3d3600fb8c2a5fe05265150e72253215f6f9d 100644 (file)
@@ -42,6 +42,7 @@ POSSIBILITY OF SUCH DAMAGE.
 #include <stdbool.h>
 #include <avr/interrupt.h>
 #include <util/delay.h>
+#include "pbuff.h"
 #include "ps2.h"
 #include "ps2_io.h"
 #include "print.h"
@@ -57,13 +58,6 @@ POSSIBILITY OF SUCH DAMAGE.
 
 uint8_t ps2_error = PS2_ERR_NONE;
 
-
-static inline uint8_t pbuf_dequeue(void);
-static inline void pbuf_enqueue(uint8_t data);
-static inline bool pbuf_has_data(void);
-static inline void pbuf_clear(void);
-
-
 void ps2_host_init(void)
 {
     idle();
@@ -225,55 +219,3 @@ void ps2_host_set_led(uint8_t led)
     ps2_host_send(0xED);
     ps2_host_send(led);
 }
-
-
-/*--------------------------------------------------------------------
- * Ring buffer to store scan codes from keyboard
- *------------------------------------------------------------------*/
-#define PBUF_SIZE 32
-static uint8_t pbuf[PBUF_SIZE];
-static uint8_t pbuf_head = 0;
-static uint8_t pbuf_tail = 0;
-static inline void pbuf_enqueue(uint8_t data)
-{
-    uint8_t sreg = SREG;
-    cli();
-    uint8_t next = (pbuf_head + 1) % PBUF_SIZE;
-    if (next != pbuf_tail) {
-        pbuf[pbuf_head] = data;
-        pbuf_head = next;
-    } else {
-        print("pbuf: full\n");
-    }
-    SREG = sreg;
-}
-static inline uint8_t pbuf_dequeue(void)
-{
-    uint8_t val = 0;
-
-    uint8_t sreg = SREG;
-    cli();
-    if (pbuf_head != pbuf_tail) {
-        val = pbuf[pbuf_tail];
-        pbuf_tail = (pbuf_tail + 1) % PBUF_SIZE;
-    }
-    SREG = sreg;
-
-    return val;
-}
-static inline bool pbuf_has_data(void)
-{
-    uint8_t sreg = SREG;
-    cli();
-    bool has_data = (pbuf_head != pbuf_tail);
-    SREG = sreg;
-    return has_data;
-}
-static inline void pbuf_clear(void)
-{
-    uint8_t sreg = SREG;
-    cli();
-    pbuf_head = pbuf_tail = 0;
-    SREG = sreg;
-}
-
Imprint / Impressum