X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/8ba51f090f7cafb36e1108cc58e68f5d71bc13c0..5930f47bf4b9b4490daf80d44595ff14ee7ce165:/LUFA/Drivers/USB/Class/Host/Printer.c?ds=sidebyside diff --git a/LUFA/Drivers/USB/Class/Host/Printer.c b/LUFA/Drivers/USB/Class/Host/Printer.c index bc8fba85f..d85ac15cf 100644 --- a/LUFA/Drivers/USB/Class/Host/Printer.c +++ b/LUFA/Drivers/USB/Class/Host/Printer.c @@ -35,7 +35,7 @@ #include "Printer.h" uint8_t PRNT_Host_ConfigurePipes(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo, uint16_t ConfigDescriptorSize, - uint8_t* DeviceConfigDescriptor) + void* DeviceConfigDescriptor) { uint8_t FoundEndpoints = 0; @@ -69,7 +69,7 @@ uint8_t PRNT_Host_ConfigurePipes(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceI { Pipe_ConfigurePipe(PRNTInterfaceInfo->Config.DataINPipeNumber, EP_TYPE_BULK, PIPE_TOKEN_IN, EndpointData->EndpointAddress, EndpointData->EndpointSize, - PIPE_BANK_DOUBLE); + PRNTInterfaceInfo->Config.DataINPipeDoubleBank ? PIPE_BANK_DOUBLE : PIPE_BANK_SINGLE); PRNTInterfaceInfo->State.DataINPipeSize = EndpointData->EndpointSize; FoundEndpoints |= PRNT_FOUND_DATAPIPE_IN; @@ -78,7 +78,7 @@ uint8_t PRNT_Host_ConfigurePipes(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceI { Pipe_ConfigurePipe(PRNTInterfaceInfo->Config.DataOUTPipeNumber, EP_TYPE_BULK, PIPE_TOKEN_OUT, EndpointData->EndpointAddress, EndpointData->EndpointSize, - PIPE_BANK_DOUBLE); + PRNTInterfaceInfo->Config.DataOUTPipeDoubleBank ? PIPE_BANK_DOUBLE : PIPE_BANK_SINGLE); PRNTInterfaceInfo->State.DataOUTPipeSize = EndpointData->EndpointSize; FoundEndpoints |= PRNT_FOUND_DATAPIPE_OUT; @@ -187,6 +187,9 @@ uint8_t PRNT_Host_SendData(USB_ClassInfo_PRNT_Host_t* const PRNTInterfaceInfo, v { uint8_t ErrorCode; + if ((USB_HostState != HOST_STATE_Configured) || !(PRNTInterfaceInfo->State.IsActive)) + return PIPE_RWSTREAM_DeviceDisconnected; + Pipe_SelectPipe(PRNTInterfaceInfo->Config.DataOUTPipeNumber); Pipe_Unfreeze();