Reduced guard bit time in the AVRISP project PDI/TPI protocols to reduce the time...
[pub/USBasp.git] / Demos / Host / Incomplete / BluetoothHost / Lib / BluetoothHCICommands.c
index ddd159e..b4720e5 100644 (file)
@@ -9,13 +9,13 @@
 /*\r
   Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\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
-  copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting\r
-  documentation, and that the name of the author not be used in\r
-  advertising or publicity pertaining to distribution of the\r
+  Permission to use, copy, modify, distribute, and sell this \r
+  software and its documentation for any purpose is hereby granted\r
+  without fee, provided that the above copyright notice appear in \r
+  all copies and that both that the copyright notice and this\r
+  permission notice and warranty disclaimer appear in supporting \r
+  documentation, and that the name of the author not be used in \r
+  advertising or publicity pertaining to distribution of the \r
   software without specific, written prior permission.\r
 \r
   The author disclaim all warranties with regard to this\r
@@ -42,11 +42,11 @@ static uint8_t Bluetooth_SendHCICommand(void* Parameters, uint8_t ParamLength)
 \r
        USB_ControlRequest = (USB_Request_Header_t)\r
                {\r
-                       bmRequestType: (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_DEVICE),\r
-                       bRequest:      0,\r
-                       wValue:        0,\r
-                       wIndex:        0,\r
-                       wLength:       sizeof(CommandBuffer)\r
+                       .bmRequestType = (REQDIR_HOSTTODEVICE | REQTYPE_CLASS | REQREC_DEVICE),\r
+                       .bRequest      = 0,\r
+                       .wValue        = 0,\r
+                       .wIndex        = 0,\r
+                       .wLength       = sizeof(CommandBuffer)\r
                };\r
                \r
        memset(CommandBuffer, 0x00, sizeof(CommandBuffer));\r
@@ -114,7 +114,12 @@ void Bluetooth_ProcessHCICommands(void)
 \r
                        do\r
                        {\r
-                               while (!(Bluetooth_GetNextHCIEventHeader()));\r
+                               while (!(Bluetooth_GetNextHCIEventHeader()))\r
+                               {\r
+                                       if (USB_HostState == HOST_STATE_Unattached)\r
+                                         return;\r
+                               }\r
+               \r
                                Bluetooth_DiscardRemainingHCIEventParameters();\r
                        } while (HCIEventHeader.EventCode != EVENT_COMMAND_COMPLETE);\r
 \r
@@ -133,7 +138,12 @@ void Bluetooth_ProcessHCICommands(void)
 \r
                        do\r
                        {\r
-                               while (!(Bluetooth_GetNextHCIEventHeader()));\r
+                               while (!(Bluetooth_GetNextHCIEventHeader()))\r
+                               {\r
+                                       if (USB_HostState == HOST_STATE_Unattached)\r
+                                         return;\r
+                               }\r
+\r
                                Bluetooth_DiscardRemainingHCIEventParameters();\r
                        } while (HCIEventHeader.EventCode != EVENT_COMMAND_COMPLETE);\r
 \r
@@ -155,7 +165,12 @@ void Bluetooth_ProcessHCICommands(void)
                                                                                            EventMask[3], EventMask[2], EventMask[1], EventMask[0]);\r
                        do\r
                        {\r
-                               while (!(Bluetooth_GetNextHCIEventHeader()));\r
+                               while (!(Bluetooth_GetNextHCIEventHeader()))\r
+                               {\r
+                                       if (USB_HostState == HOST_STATE_Unattached)\r
+                                         return;\r
+                               }\r
+\r
                                Bluetooth_DiscardRemainingHCIEventParameters();\r
                        } while (HCIEventHeader.EventCode != EVENT_COMMAND_COMPLETE);\r
                \r
@@ -176,7 +191,12 @@ void Bluetooth_ProcessHCICommands(void)
                        \r
                        do\r
                        {\r
-                               while (!(Bluetooth_GetNextHCIEventHeader()));\r
+                               while (!(Bluetooth_GetNextHCIEventHeader()))\r
+                               {\r
+                                       if (USB_HostState == HOST_STATE_Unattached)\r
+                                         return;\r
+                               }\r
+\r
                                Bluetooth_DiscardRemainingHCIEventParameters();\r
                        } while (HCIEventHeader.EventCode != EVENT_COMMAND_COMPLETE);\r
                        \r
@@ -195,7 +215,12 @@ void Bluetooth_ProcessHCICommands(void)
 \r
                        do\r
                        {\r
-                               while (!(Bluetooth_GetNextHCIEventHeader()));\r
+                               while (!(Bluetooth_GetNextHCIEventHeader()))\r
+                               {\r
+                                       if (USB_HostState == HOST_STATE_Unattached)\r
+                                         return;\r
+                               }\r
+\r
                                Bluetooth_DiscardRemainingHCIEventParameters();\r
                        } while (HCIEventHeader.EventCode != EVENT_COMMAND_COMPLETE);\r
 \r
@@ -215,7 +240,12 @@ void Bluetooth_ProcessHCICommands(void)
 \r
                        do\r
                        {\r
-                               while (!(Bluetooth_GetNextHCIEventHeader()));\r
+                               while (!(Bluetooth_GetNextHCIEventHeader()))\r
+                               {\r
+                                       if (USB_HostState == HOST_STATE_Unattached)\r
+                                         return;\r
+                               }\r
+\r
                                Bluetooth_DiscardRemainingHCIEventParameters();\r
                        } while (HCIEventHeader.EventCode != EVENT_COMMAND_COMPLETE);\r
 \r
@@ -366,7 +396,12 @@ void Bluetooth_ProcessHCICommands(void)
                \r
                        do\r
                        {\r
-                               while (!(Bluetooth_GetNextHCIEventHeader()));\r
+                               while (!(Bluetooth_GetNextHCIEventHeader()))\r
+                               {                               \r
+                                       if (USB_HostState == HOST_STATE_Unattached)\r
+                                         return;\r
+                               }\r
+\r
                                Bluetooth_DiscardRemainingHCIEventParameters();\r
                        } while (HCIEventHeader.EventCode != EVENT_COMMAND_COMPLETE);\r
 \r