/*\r
Copyright 2009 Denver Gingerich (denver [at] ossguy [dot] com)\r
Based on code by Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
- \r
+\r
Permission to use, copy, modify, and distribute this software\r
and its documentation for any purpose and without fee is hereby\r
granted, provided that the above copyright notice appear in all\r
*\r
* Header file for Keyboard.c.\r
*/\r
- \r
+\r
#ifndef _KEYBOARD_H_\r
#define _KEYBOARD_H_\r
\r
#include "Descriptors.h"\r
\r
#include <LUFA/Version.h> // Library Version Information\r
+ #include <LUFA/Scheduler/Scheduler.h> // Simple scheduler for task management\r
#include <LUFA/Common/ButtLoadTag.h> // PROGMEM tags readable by the ButtLoad project\r
#include <LUFA/Drivers/USB/USB.h> // USB Functionality\r
#include <LUFA/Drivers/Board/Joystick.h> // Joystick driver\r
#include <LUFA/Drivers/Board/LEDs.h> // LEDs driver\r
- #include <LUFA/Scheduler/Scheduler.h> // Simple scheduler for task management\r
- \r
- /* Task Definitions: */\r
- TASK(USB_Keyboard_Report);\r
\r
/* Macros: */\r
/** HID Class specific request to get the next HID report from the device. */\r
/** HID Class specific request to set the current HID protocol in use, either report or boot. */\r
#define REQ_SetProtocol 0x0B\r
\r
+ /* Task Definitions: */\r
+ TASK(USB_Keyboard_Report);\r
+\r
/* Type Defines: */\r
/** Type define for the keyboard HID report structure, for creating and sending HID reports to the host PC.\r
* This mirrors the layout described to the host in the HID report descriptor, in Descriptors.c.\r
/** Indicates that this module will catch the USB_Disconnect event when thrown by the library. */\r
HANDLES_EVENT(USB_Disconnect);\r
\r
+ /** Indicates that this module will catch the USB_Reset event when thrown by the library. */\r
+ HANDLES_EVENT(USB_Reset);\r
+\r
/** Indicates that this module will catch the USB_ConfigurationChanged event when thrown by the library. */\r
HANDLES_EVENT(USB_ConfigurationChanged);\r
\r
HANDLES_EVENT(USB_UnhandledControlPacket);\r
\r
/* Function Prototypes: */\r
- bool GetNextReport(USB_KeyboardReport_Data_t* ReportData);\r
+ bool CreateKeyboardReport(USB_KeyboardReport_Data_t* ReportData);\r
void ProcessLEDReport(uint8_t LEDReport);\r
+ static inline void SendNextReport(void);\r
+ static inline void ReceiveNextReport(void);\r
void UpdateStatus(uint8_t CurrentStatus);\r
\r
#endif\r