Minor updates to the Magstripe and MissileLauncher projects to fix bugs and improve...
[pub/USBasp.git] / Projects / Magstripe / Magstripe.c
index 95c81f3..1151735 100644 (file)
@@ -130,6 +130,7 @@ void ReadMagstripeData(void)
                        bool ClockPinLevel     = ((Magstripe_LCL & TrackInfo[Track].ClockMask) != 0);\r
                        bool ClockLevelChanged = (((Magstripe_LCL ^ Magstripe_Prev) & TrackInfo[Track].ClockMask) != 0);\r
                \r
+                       /* Sample on rising clock edges */\r
                        if (ClockPinLevel && ClockLevelChanged)\r
                          BitBuffer_StoreNextBit(&TrackDataBuffers[Track], DataPinLevel);\r
                }\r
@@ -171,15 +172,15 @@ uint16_t CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const H
        static bool IsKeyReleaseReport;\r
        static bool IsNewlineReport;\r
 \r
-       BitBuffer_t*               Buffer         = NULL;\r
        USB_KeyboardReport_Data_t* KeyboardReport = (USB_KeyboardReport_Data_t*)ReportData;\r
+       BitBuffer_t*               Buffer         = NULL;\r
        \r
-       /* Key reports must be interleaved with 0 Key Code reports to release the keys, or repeated keys will be ignored */\r
+       /* Key reports must be interleaved with key release reports, or repeated keys will be ignored */\r
        IsKeyReleaseReport = !IsKeyReleaseReport;       \r
 \r
        if (IsKeyReleaseReport)\r
        {\r
-               KeyboardReport->KeyCode = 0;\r
+               KeyboardReport->KeyCode = KEY_NONE;\r
        }\r
        else if (IsNewlineReport)\r
        {\r
@@ -188,6 +189,7 @@ uint16_t CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const H
        }\r
        else\r
        {\r
+               /* Read out tracks in ascending order - when each track buffer is empty, progress to next buffer */\r
                if (TrackDataBuffers[0].Elements)\r
                  Buffer = &TrackDataBuffers[0];\r
                else if (TrackDataBuffers[1].Elements)\r
@@ -199,7 +201,7 @@ uint16_t CALLBACK_HID_Device_CreateHIDReport(USB_ClassInfo_HID_Device_t* const H
 \r
                KeyboardReport->KeyCode = BitBuffer_GetNextBit(Buffer) ? KEY_1 : KEY_0;\r
                \r
-               /* If buffer now empty, next report must be a newline to seperate track data */\r
+               /* If current track buffer now empty, next report must be a newline to seperate track data */\r
                if (!(Buffer->Elements))\r
                  IsNewlineReport = true;\r
        }\r