Added new USB_DeviceState variable to keep track of the current Device mode USB state.
[pub/USBasp.git] / Demos / Host / Incomplete / BluetoothHost / Lib / BluetoothHCICommands.c
index ddd159e..54291bf 100644 (file)
@@ -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_DeviceState == DEVICE_STATE_Unattached)\r
+                                         return;\r
+                               }\r
+\r
                                Bluetooth_DiscardRemainingHCIEventParameters();\r
                        } while (HCIEventHeader.EventCode != EVENT_COMMAND_COMPLETE);\r
 \r