Make HID device class driver reselect the correct endpoint after the user callbacks...
[pub/USBasp.git] / Demos / Host / ClassDriver / StillImageHost / StillImageHost.c
index deb8a55..d8146af 100644 (file)
@@ -50,9 +50,8 @@ USB_ClassInfo_SI_Host_t DigitalCamera_SI_Interface =
                        },\r
        };\r
 \r
-       \r
 /** Main program entry point. This routine configures the hardware required by the application, then\r
- *  starts the scheduler to run the application tasks.\r
+ *  enters a loop to run the application tasks in sequence.\r
  */\r
 int main(void)\r
 {\r
@@ -102,7 +101,38 @@ int main(void)
                                USB_HostState = HOST_STATE_Configured;\r
                                break;\r
                        case HOST_STATE_Configured:\r
-                       \r
+                               printf("Opening Session...\r\n");\r
+                               \r
+                               if (SImage_Host_OpenSession(&DigitalCamera_SI_Interface) != PIPE_RWSTREAM_NoError)\r
+                               {\r
+                                       printf("Could not open PIMA session.\r\n");\r
+                                       USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
+                                       break;\r
+                               }\r
+\r
+                               printf("Turning off Device...\r\n");\r
+\r
+                               SImage_Host_SendCommand(&DigitalCamera_SI_Interface, 0x1013, 0, NULL);\r
+                               if (SImage_Host_ReceiveResponse(&DigitalCamera_SI_Interface))\r
+                               {\r
+                                       printf("Could not turn off device.\r\n");\r
+                                       USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
+                                       break;                                  \r
+                               }\r
+\r
+                               printf("Device Off.\r\n");\r
+\r
+                               printf("Closing Session...\r\n");\r
+\r
+                               if (SImage_Host_CloseSession(&DigitalCamera_SI_Interface) != PIPE_RWSTREAM_NoError)\r
+                               {\r
+                                       printf("Could not close PIMA session.\r\n");\r
+                                       USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
+                                       break;\r
+                               }\r
+                               \r
+                               LEDs_SetAllLEDs(LEDMASK_USB_READY);\r
+                               USB_HostState = HOST_STATE_WaitForDeviceRemoval;\r
                                break;\r
                }\r
        \r