diff options
author | Dean Camera <dean@fourwalledcubicle.com> | 2015-08-01 11:58:30 +1000 |
---|---|---|
committer | Dean Camera <dean@fourwalledcubicle.com> | 2015-08-01 11:58:30 +1000 |
commit | 0626ac1f63cc18faf1649ae05a363dae564ab8d2 (patch) | |
tree | d5658e9121d58e1fec149cabc57ed4845998b5d1 /LUFA/Drivers/USB/Class/Host/CDCClassHost.c | |
parent | 7c9c3d15e0b772a8bf26c9695236b80cb26c71b5 (diff) | |
download | lufa-0626ac1f63cc18faf1649ae05a363dae564ab8d2.tar.gz lufa-0626ac1f63cc18faf1649ae05a363dae564ab8d2.tar.bz2 lufa-0626ac1f63cc18faf1649ae05a363dae564ab8d2.zip |
Add PROGMEM variant data send functions to the CDC host class driver.
Diffstat (limited to 'LUFA/Drivers/USB/Class/Host/CDCClassHost.c')
-rw-r--r-- | LUFA/Drivers/USB/Class/Host/CDCClassHost.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/LUFA/Drivers/USB/Class/Host/CDCClassHost.c b/LUFA/Drivers/USB/Class/Host/CDCClassHost.c index 9d962ef8f..94ec943c3 100644 --- a/LUFA/Drivers/USB/Class/Host/CDCClassHost.c +++ b/LUFA/Drivers/USB/Class/Host/CDCClassHost.c @@ -294,6 +294,24 @@ uint8_t CDC_Host_SendData(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo, return ErrorCode; } +uint8_t CDC_Host_SendData_P(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo, + const void* const Buffer, + const uint16_t Length) +{ + if ((USB_HostState != HOST_STATE_Configured) || !(CDCInterfaceInfo->State.IsActive)) + return PIPE_READYWAIT_DeviceDisconnected; + + uint8_t ErrorCode; + + Pipe_SelectPipe(CDCInterfaceInfo->Config.DataOUTPipe.Address); + + Pipe_Unfreeze(); + ErrorCode = Pipe_Write_PStream_LE(Buffer, Length, NULL); + Pipe_Freeze(); + + return ErrorCode; +} + uint8_t CDC_Host_SendString(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo, const char* const String) { @@ -311,6 +329,23 @@ uint8_t CDC_Host_SendString(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo, return ErrorCode; } +uint8_t CDC_Host_SendString_P(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo, + const char* const String) +{ + if ((USB_HostState != HOST_STATE_Configured) || !(CDCInterfaceInfo->State.IsActive)) + return PIPE_READYWAIT_DeviceDisconnected; + + uint8_t ErrorCode; + + Pipe_SelectPipe(CDCInterfaceInfo->Config.DataOUTPipe.Address); + + Pipe_Unfreeze(); + ErrorCode = Pipe_Write_PStream_LE(String, strlen_P(String), NULL); + Pipe_Freeze(); + + return ErrorCode; +} + uint8_t CDC_Host_SendByte(USB_ClassInfo_CDC_Host_t* const CDCInterfaceInfo, const uint8_t Data) { |