diff options
Diffstat (limited to 'Demos/Host/LowLevel/StillImageHost/Lib')
3 files changed, 50 insertions, 47 deletions
diff --git a/Demos/Host/LowLevel/StillImageHost/Lib/PIMACodes.h b/Demos/Host/LowLevel/StillImageHost/Lib/PIMACodes.h index 7bd8d4fe8..692b1fae8 100644 --- a/Demos/Host/LowLevel/StillImageHost/Lib/PIMACodes.h +++ b/Demos/Host/LowLevel/StillImageHost/Lib/PIMACodes.h @@ -1,7 +1,7 @@ /* LUFA Library Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ @@ -9,13 +9,13 @@ /* Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -40,7 +40,7 @@ #define PIMA_OPERATION_GETDEVICEINFO 0x1001 #define PIMA_OPERATION_OPENSESSION 0x1002 #define PIMA_OPERATION_CLOSESESSION 0x1003 - + #define PIMA_RESPONSE_OK 0x2001 #define PIMA_RESPONSE_GENERALERROR 0x2002 #define PIMA_RESPONSE_SESSIONNOTOPEN 0x2003 @@ -49,3 +49,4 @@ #define PIMA_RESPONSE_PARAMETERNOTSUPPORTED 0x2006 #endif + diff --git a/Demos/Host/LowLevel/StillImageHost/Lib/StillImageCommands.c b/Demos/Host/LowLevel/StillImageHost/Lib/StillImageCommands.c index 861f55b5d..9d6828e32 100644 --- a/Demos/Host/LowLevel/StillImageHost/Lib/StillImageCommands.c +++ b/Demos/Host/LowLevel/StillImageHost/Lib/StillImageCommands.c @@ -1,7 +1,7 @@ /* LUFA Library Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ @@ -9,13 +9,13 @@ /* Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -56,7 +56,7 @@ void SImage_SendBlockHeader(void) /* Write the PIMA block to the data OUT pipe */ Pipe_Write_Stream_LE(&PIMA_SendBlock, PIMA_COMMAND_SIZE(0)); - + /* If the block type is a command, send its parameters (if any) */ if (PIMA_SendBlock.Type == CType_CommandBlock) { @@ -69,11 +69,11 @@ void SImage_SendBlockHeader(void) /* Write the PIMA parameters to the data OUT pipe */ Pipe_Write_Stream_LE(&PIMA_SendBlock.Params, ParamBytes); } - + /* Send the PIMA command block to the attached device */ Pipe_ClearOUT(); } - + /* Freeze pipe after use */ Pipe_Freeze(); } @@ -89,16 +89,16 @@ uint8_t SImage_ReceiveEventHeader(void) /* Unfreeze the events pipe */ Pipe_SelectPipe(SIMAGE_EVENTS_PIPE); Pipe_Unfreeze(); - + /* Read in the event data into the global structure */ ErrorCode = Pipe_Read_Stream_LE(&PIMA_EventBlock, sizeof(PIMA_EventBlock)); - + /* Clear the pipe after read complete to prepare for next event */ Pipe_ClearIN(); - + /* Freeze the event pipe again after use */ Pipe_Freeze(); - + return ErrorCode; } @@ -114,7 +114,7 @@ uint8_t SImage_ReceiveBlockHeader(void) /* Unfreeze the data IN pipe */ Pipe_SelectPipe(SIMAGE_DATA_IN_PIPE); Pipe_Unfreeze(); - + /* Wait until data received on the IN pipe */ while (!(Pipe_IsINReceived())) { @@ -131,7 +131,7 @@ uint8_t SImage_ReceiveBlockHeader(void) if (!(TimeoutMSRem)) return PIPE_RWSTREAM_Timeout; } - + Pipe_Freeze(); Pipe_SelectPipe(SIMAGE_DATA_OUT_PIPE); Pipe_Unfreeze(); @@ -159,15 +159,15 @@ uint8_t SImage_ReceiveBlockHeader(void) /* Return error code */ return PIPE_RWSTREAM_PipeStalled; } - + /* Check to see if the device was disconnected, if so exit function */ if (USB_HostState == HOST_STATE_Unattached) return PIPE_RWSTREAM_DeviceDisconnected; } - + /* Load in the response from the attached device */ Pipe_Read_Stream_LE(&PIMA_ReceivedBlock, PIMA_COMMAND_SIZE(0)); - + /* Check if the returned block type is a response block */ if (PIMA_ReceivedBlock.Type == CType_ResponseBlock) { @@ -180,14 +180,14 @@ uint8_t SImage_ReceiveBlockHeader(void) /* Read the PIMA parameters from the data IN pipe */ Pipe_Read_Stream_LE(&PIMA_ReceivedBlock.Params, ParamBytes); } - + /* Clear pipe bank after use */ Pipe_ClearIN(); } - + /* Freeze the IN pipe after use */ Pipe_Freeze(); - + return PIPE_RWSTREAM_NoError; } @@ -206,7 +206,7 @@ uint8_t SImage_SendData(void* const Buffer, /* Unfreeze the data OUT pipe */ Pipe_SelectPipe(SIMAGE_DATA_OUT_PIPE); Pipe_Unfreeze(); - + /* Write the data contents to the pipe */ ErrorCode = Pipe_Write_Stream_LE(Buffer, Bytes); @@ -215,7 +215,7 @@ uint8_t SImage_SendData(void* const Buffer, /* Freeze the pipe again after use */ Pipe_Freeze(); - + return ErrorCode; } @@ -240,7 +240,7 @@ uint8_t SImage_ReadData(void* const Buffer, /* Freeze the pipe again after use */ Pipe_Freeze(); - + return ErrorCode; } @@ -255,13 +255,14 @@ bool SImage_IsEventReceived(void) /* Unfreeze the Event pipe */ Pipe_SelectPipe(SIMAGE_EVENTS_PIPE); Pipe_Unfreeze(); - + /* If the pipe contains data, an event has been received */ if (Pipe_BytesInPipe()) IsEventReceived = true; - + /* Freeze the pipe after use */ Pipe_Freeze(); - + return IsEventReceived; } + diff --git a/Demos/Host/LowLevel/StillImageHost/Lib/StillImageCommands.h b/Demos/Host/LowLevel/StillImageHost/Lib/StillImageCommands.h index f2bb18953..2ab36c2ba 100644 --- a/Demos/Host/LowLevel/StillImageHost/Lib/StillImageCommands.h +++ b/Demos/Host/LowLevel/StillImageHost/Lib/StillImageCommands.h @@ -1,7 +1,7 @@ /* LUFA Library Copyright (C) Dean Camera, 2010. - + dean [at] fourwalledcubicle [dot] com www.fourwalledcubicle.com */ @@ -9,13 +9,13 @@ /* Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) - Permission to use, copy, modify, distribute, and sell this + Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted - without fee, provided that the above copyright notice appear in + without fee, provided that the above copyright notice appear in all copies and that both that the copyright notice and this - permission notice and warranty disclaimer appear in supporting - documentation, and that the name of the author not be used in - advertising or publicity pertaining to distribution of the + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of the author not be used in + advertising or publicity pertaining to distribution of the software without specific, written prior permission. The author disclaim all warranties with regard to this @@ -32,17 +32,17 @@ * * Header file for StillImageCommands.c. */ - + #ifndef _STILL_IMAGE_COMMANDS_H_ #define _STILL_IMAGE_COMMANDS_H_ /* Includes: */ #include <LUFA/Drivers/USB/USB.h> - + #include "PIMACodes.h" #include "../StillImageHost.h" - /* Macros: */ + /* Macros: */ /** Length in bytes of a given Unicode string's character length. * * \param[in] chars Total number of Unicode characters in the string @@ -51,7 +51,7 @@ /** Timeout period between the issuing of a command to a device, and the reception of the first packet. */ #define COMMAND_DATA_TIMEOUT_MS 10000 - + /** Used in the DataLength field of a PIMA container, to give the total container size in bytes for * a command container. * @@ -79,7 +79,7 @@ uint32_t TransactionID; /**< Unique container ID to link blocks together */ uint32_t Params[3]; /**< Block parameters to be issued along with the block code (command blocks only) */ } PIMA_Container_t; - + /* Enums: */ /** Enum for the possible PIMA contains types. */ enum PIMA_Container_Types_t @@ -90,12 +90,12 @@ CType_ResponseBlock = 3, /**< Response container type */ CType_EventBlock = 4, /**< Event Block container type */ }; - + /* External Variables: */ extern PIMA_Container_t PIMA_SendBlock; extern PIMA_Container_t PIMA_ReceivedBlock; extern PIMA_Container_t PIMA_EventBlock; - + /* Function Prototypes: */ void SImage_SendBlockHeader(void); uint8_t SImage_ReceiveBlockHeader(void); @@ -107,3 +107,4 @@ bool SImage_IsEventReceived(void); #endif + |