Commit of new class abstraction APIs for all device demos other than the MIDI demo...
[pub/USBasp.git] / Projects / Magstripe / Magstripe.h
index c700bca..b0e47d5 100644 (file)
        /* Includes: */\r
                #include <avr/io.h>\r
                #include <avr/wdt.h>\r
-               #include <avr/interrupt.h>\r
                #include <avr/power.h>\r
-               #include <stdbool.h>\r
-               #include <string.h>\r
 \r
                #include "Descriptors.h"\r
-\r
                #include "Lib/MagstripeHW.h"\r
                #include "Lib/CircularBitBuffer.h"\r
 \r
-               #include <LUFA/Version.h>                    // Library Version Information\r
-               #include <LUFA/Drivers/USB/USB.h>            // USB Functionality\r
-               #include <LUFA/Scheduler/Scheduler.h>        // Simple scheduler for task management\r
-\r
-               \r
-       /* Task Definitions: */\r
-               /** Task definition for the keyboard and magnetic card reading task. */\r
-               TASK(USB_Keyboard_Report);\r
-               \r
-               TASK(Magstripe_Read);\r
+               #include <LUFA/Version.h>\r
+               #include <LUFA/Drivers/USB/USB.h>\r
+               #include <LUFA/Drivers/USB/Class/Device/HID.h>\r
 \r
        /* Macros: */\r
-               /** HID Class Specific Request to get the current HID report from the device. */\r
-               #define REQ_GetReport      0x01\r
-\r
-               /** HID Class Specific Request to get the current device idle count. */\r
-               #define REQ_GetIdle        0x02\r
-\r
-               /** HID Class Specific Request to set the current HID report to the device. */\r
-               #define REQ_SetReport      0x09\r
-\r
-               /** HID Class Specific Request to set the device's idle count. */\r
-               #define REQ_SetIdle        0x0A\r
-\r
-               /** HID Class Specific Request to get the current HID report protocol mode. */\r
-               #define REQ_GetProtocol    0x03\r
-\r
-               /** HID Class Specific Request to set the current HID report protocol mode. */\r
-               #define REQ_SetProtocol    0x0B\r
-               \r
                /** HID keyboard keycode to indicate that the "1" key is currently pressed. */\r
                #define KEY_1              30\r
 \r
                } USB_KeyboardReport_Data_t;\r
        \r
        /* Function Prototypes: */\r
-               void EVENT_USB_Connect(void);\r
-               void EVENT_USB_Disconnect(void);\r
+               void SetupHardware(void);\r
+               void ReadMagstripeData(void);\r
+               \r
                void EVENT_USB_ConfigurationChanged(void);\r
                void EVENT_USB_UnhandledControlPacket(void);\r
-       \r
-               bool GetNextReport(USB_KeyboardReport_Data_t* ReportData);\r
+               void EVENT_USB_StartOfFrame(void);\r
+\r
+               uint16_t CALLBACK_USB_HID_CreateNextHIDReport(USB_ClassInfo_HID_t* HIDInterfaceInfo, void* ReportData);\r
+               void     CALLBACK_USB_HID_ProcessReceivedHIDReport(USB_ClassInfo_HID_t* HIDInterfaceInfo,\r
+                                                                  void* ReportData, uint16_t ReportSize);\r
                \r
 #endif\r