Use an early-abort in the USB_DeviceTask() function rather than wrapping the entire...
[pub/USBasp.git] / Demos / Device / Incomplete / Sideshow / Lib / SideshowCommands.h
index e609175..4f4b5c1 100644 (file)
-/*\r
-             LUFA Library\r
-     Copyright (C) Dean Camera, 2010.\r
-              \r
-  dean [at] fourwalledcubicle [dot] com\r
-      www.fourwalledcubicle.com\r
-*/\r
-\r
-/*\r
-  Copyright 2010  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
-\r
-  Permission to use, copy, modify, distribute, and sell this \r
-  software and its documentation for any purpose is hereby granted\r
-  without fee, provided that the above copyright notice appear in \r
-  all copies and that both that the copyright notice and this\r
-  permission notice and warranty disclaimer appear in supporting \r
-  documentation, and that the name of the author not be used in \r
-  advertising or publicity pertaining to distribution of the \r
-  software without specific, written prior permission.\r
-\r
-  The author disclaim all warranties with regard to this\r
-  software, including all implied warranties of merchantability\r
-  and fitness.  In no event shall the author be liable for any\r
-  special, indirect or consequential damages or any damages\r
-  whatsoever resulting from loss of use, data or profits, whether\r
-  in an action of contract, negligence or other tortious action,\r
-  arising out of or in connection with the use or performance of\r
-  this software.\r
-*/\r
-\r
-#ifndef _SIDESHOW_COMMANDS_H_\r
-#define _SIDESHOW_COMMANDS_H_\r
-\r
-       /* Includes: */\r
-               #include <avr/io.h>\r
-               #include <stdbool.h>\r
-               #include <string.h>\r
-       \r
-               #include "Sideshow.h"\r
-               #include "SideshowCommon.h"\r
-               #include "SideshowApplications.h"\r
-               #include "SideshowContent.h"\r
-\r
-       /* Enumerations: */\r
-               enum SideShow_PropertyKey_Types_t\r
-               {\r
-                       VT_EMPTY             = 0,\r
-                       VT_NULL              = 1,\r
-                       VT_I2                = 2,\r
-                       VT_I4                = 3,\r
-                       VT_R4                = 4,\r
-                       VT_R8                = 5,\r
-                       VT_CY                = 6,\r
-                       VT_DATE              = 7,\r
-                       VT_BSTR              = 8,\r
-                       VT_DISPATCH          = 9,\r
-                       VT_ERROR             = 10,\r
-                       VT_BOOL              = 11,\r
-                       VT_VARIANT           = 12,\r
-                       VT_UNKNOWN           = 13,\r
-                       VT_UI1               = 17,\r
-                       VT_UI2               = 18,\r
-                       VT_UI4               = 19,\r
-                       VT_LPWSTR            = 31,\r
-               };\r
-               \r
-               enum SideShow_ScreenTypeText_t\r
-               {\r
-                       ScreenBitmap         = 0,\r
-                       ScreenText           = 1,\r
-               };\r
-               \r
-               enum SideShow_ColorTypes_t\r
-               {\r
-                       ColorDisplay         = 0,\r
-                       GrayscaleDisplay     = 1,\r
-                       BlackAndWhiteDisplay = 2,               \r
-               };\r
-\r
-               enum SideShow_DeviceTypes_t\r
-               { \r
-                       GenericDevice = 0, \r
-                       CameraDevice = 1, \r
-                       MediaPlayerDevice = 2, \r
-                       PhoneDevice = 3,\r
-                       VideoDevice = 4,\r
-                       PIMDevice = 5,\r
-                       AudioRecorderDevice = 6\r
-               };\r
-\r
-       /* Type Defines: */\r
-               typedef struct\r
-               {\r
-                       GUID_t   PropertyGUID;\r
-                       uint32_t PropertyID;\r
-               } SideShow_PropertyKey_t;\r
-               \r
-               typedef struct\r
-               {\r
-                       uint32_t DataType;\r
-                       \r
-                       union\r
-                       {\r
-                               void*    DataPointer;\r
-                               uint8_t  Data8;\r
-                               uint16_t Data16;\r
-                               uint32_t Data32;\r
-                       } Data;\r
-               } SideShow_PropertyData_t;\r
-               \r
-       /* Macros: */\r
-               #define SIDESHOW_CMD_PING                     0x001\r
-               #define SIDESHOW_CMD_SET_CURRENT_USER         0x100\r
-               #define SIDESHOW_CMD_GET_CURRENT_USER         0x101\r
-               #define SIDESHOW_CMD_GET_CAPABILITIES         0x103             \r
-               #define SIDESHOW_CMD_GET_APPLICATION_ORDER    0x104\r
-               #define SIDESHOW_CMD_ADD_APPLICATION          0x10D\r
-               #define SIDESHOW_CMD_DELETE_APPLICATION       0x10E\r
-               #define SIDESHOW_CMD_DELETE_ALL_APPLICATIONS  0x10F\r
-               #define SIDESHOW_CMD_ADD_CONTENT              0x114\r
-               #define SIDESHOW_CMD_DELETE_CONTENT           0x115\r
-               #define SIDESHOW_CMD_DELETE_ALL_CONTENT       0x116\r
-               #define SIDESHOW_CMD_GET_SUPPORTED_ENDPOINTS  0x117\r
-               #define SIDESHOW_CMD_GET_DEVICE_NAME          0x500\r
-               #define SIDESHOW_CMD_GET_MANUFACTURER         0x501\r
-               #define SIDESHOW_CMD_SYNC                     0x502\r
-\r
-               #define PROPERTY_SIDESHOW_DEVICEID            1\r
-               #define PROPERTY_SIDESHOW_SCREENTYPE          2\r
-               #define PROPERTY_SIDESHOW_SCREENWIDTH         3\r
-               #define PROPERTY_SIDESHOW_SCREENHEIGHT        4\r
-               #define PROPERTY_SIDESHOW_COLORDEPTH          5\r
-               #define PROPERTY_SIDESHOW_COLORTYPE           6\r
-               #define PROPERTY_SIDESHOW_DATACACHE           7\r
-               #define PROPERTY_SIDESHOW_SUPPORTEDLANGS      8\r
-               #define PROPERTY_SIDESHOW_CURRENTLANG         9\r
-               #define PROPERTY_SIDESHOW_SUPPORTEDTHEMES     10\r
-               #define PROPERTY_SIDESHOW_IMAGEFORMAT         14\r
-               #define PROPERTY_SIDESHOW_CLIENTWIDTH         15\r
-               #define PROPERTY_SIDESHOW_CLIENTHEIGHT        16\r
-               #define PROPERTY_SIDESHOW_DEVICEICON          17\r
-               \r
-               #define PROPERTY_DEVICE_DEVICETYPE            15\r
-                               \r
-       /* Function Prototypes: */\r
-               void Sideshow_ProcessCommandPacket(void);\r
-               \r
-               #if defined(INCLUDE_FROM_SIDESHOWCOMMANDS_H)\r
-                       static void SideShow_Ping(SideShow_PacketHeader_t* PacketHeader);\r
-                       static void SideShow_Sync(SideShow_PacketHeader_t* PacketHeader);\r
-                       static void SideShow_GetCurrentUser(SideShow_PacketHeader_t* PacketHeader);\r
-                       static void SideShow_SetCurrentUser(SideShow_PacketHeader_t* PacketHeader);\r
-                       static void SideShow_GetCapabilities(SideShow_PacketHeader_t* PacketHeader);\r
-                       static void SideShow_GetString(SideShow_PacketHeader_t* PacketHeader, void* UnicodeStruct);\r
-                       static void SideShow_GetApplicationOrder(SideShow_PacketHeader_t* PacketHeader);\r
-                       static void SideShow_GetSupportedEndpoints(SideShow_PacketHeader_t* PacketHeader);\r
-                       static void SideShow_AddApplication(SideShow_PacketHeader_t* PacketHeader);\r
-                       static void SideShow_DeleteApplication(SideShow_PacketHeader_t* PacketHeader);\r
-                       static void SideShow_DeleteAllApplications(SideShow_PacketHeader_t* PacketHeader);\r
-                       static void SideShow_AddContent(SideShow_PacketHeader_t* PacketHeader);\r
-                       static void SideShow_DeleteContent(SideShow_PacketHeader_t* PacketHeader);\r
-                       static void SideShow_DeleteAllContent(SideShow_PacketHeader_t* PacketHeader);\r
-               #endif\r
-\r
-#endif\r
+/*
+             LUFA Library
+     Copyright (C) Dean Camera, 2012.
+
+  dean [at] fourwalledcubicle [dot] com
+           www.lufa-lib.org
+*/
+
+/*
+  Copyright 2012  Dean Camera (dean [at] fourwalledcubicle [dot] com)
+
+  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
+  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
+  software without specific, written prior permission.
+
+  The author disclaim all warranties with regard to this
+  software, including all implied warranties of merchantability
+  and fitness.  In no event shall the author be liable for any
+  special, indirect or consequential damages or any damages
+  whatsoever resulting from loss of use, data or profits, whether
+  in an action of contract, negligence or other tortious action,
+  arising out of or in connection with the use or performance of
+  this software.
+*/
+
+#ifndef _SIDESHOW_COMMANDS_H_
+#define _SIDESHOW_COMMANDS_H_
+
+       /* Includes: */
+               #include <avr/io.h>
+               #include <stdbool.h>
+               #include <string.h>
+
+               #include "../Sideshow.h"
+               #include "SideshowCommon.h"
+               #include "SideshowApplications.h"
+               #include "SideshowContent.h"
+
+       /* Enumerations: */
+               enum SideShow_PropertyKey_Types_t
+               {
+                       VT_EMPTY             = 0,
+                       VT_NULL              = 1,
+                       VT_I2                = 2,
+                       VT_I4                = 3,
+                       VT_R4                = 4,
+                       VT_R8                = 5,
+                       VT_CY                = 6,
+                       VT_DATE              = 7,
+                       VT_BSTR              = 8,
+                       VT_DISPATCH          = 9,
+                       VT_ERROR             = 10,
+                       VT_BOOL              = 11,
+                       VT_VARIANT           = 12,
+                       VT_UNKNOWN           = 13,
+                       VT_UI1               = 17,
+                       VT_UI2               = 18,
+                       VT_UI4               = 19,
+                       VT_LPWSTR            = 31,
+               };
+
+               enum SideShow_ScreenTypeText_t
+               {
+                       ScreenBitmap         = 0,
+                       ScreenText           = 1,
+               };
+
+               enum SideShow_ColorTypes_t
+               {
+                       ColorDisplay         = 0,
+                       GrayscaleDisplay     = 1,
+                       BlackAndWhiteDisplay = 2,
+               };
+
+               enum SideShow_DeviceTypes_t
+               {
+                       GenericDevice = 0,
+                       CameraDevice = 1,
+                       MediaPlayerDevice = 2,
+                       PhoneDevice = 3,
+                       VideoDevice = 4,
+                       PIMDevice = 5,
+                       AudioRecorderDevice = 6
+               };
+
+       /* Type Defines: */
+               typedef struct
+               {
+                       GUID_t   PropertyGUID;
+                       uint32_t PropertyID;
+               } SideShow_PropertyKey_t;
+
+               typedef struct
+               {
+                       uint32_t DataType;
+
+                       union
+                       {
+                               void*    DataPointer;
+                               uint8_t  Data8;
+                               uint16_t Data16;
+                               uint32_t Data32;
+                       } Data;
+               } SideShow_PropertyData_t;
+
+       /* Macros: */
+               #define SIDESHOW_CMD_PING                     0x001
+               #define SIDESHOW_CMD_SET_CURRENT_USER         0x100
+               #define SIDESHOW_CMD_GET_CURRENT_USER         0x101
+               #define SIDESHOW_CMD_GET_CAPABILITIES         0x103
+               #define SIDESHOW_CMD_GET_APPLICATION_ORDER    0x104
+               #define SIDESHOW_CMD_ADD_APPLICATION          0x10D
+               #define SIDESHOW_CMD_DELETE_APPLICATION       0x10E
+               #define SIDESHOW_CMD_DELETE_ALL_APPLICATIONS  0x10F
+               #define SIDESHOW_CMD_ADD_CONTENT              0x114
+               #define SIDESHOW_CMD_DELETE_CONTENT           0x115
+               #define SIDESHOW_CMD_DELETE_ALL_CONTENT       0x116
+               #define SIDESHOW_CMD_GET_SUPPORTED_ENDPOINTS  0x117
+               #define SIDESHOW_CMD_GET_DEVICE_NAME          0x500
+               #define SIDESHOW_CMD_GET_MANUFACTURER         0x501
+               #define SIDESHOW_CMD_SYNC                     0x502
+
+               #define PROPERTY_SIDESHOW_DEVICEID            1
+               #define PROPERTY_SIDESHOW_SCREENTYPE          2
+               #define PROPERTY_SIDESHOW_SCREENWIDTH         3
+               #define PROPERTY_SIDESHOW_SCREENHEIGHT        4
+               #define PROPERTY_SIDESHOW_COLORDEPTH          5
+               #define PROPERTY_SIDESHOW_COLORTYPE           6
+               #define PROPERTY_SIDESHOW_DATACACHE           7
+               #define PROPERTY_SIDESHOW_SUPPORTEDLANGS      8
+               #define PROPERTY_SIDESHOW_CURRENTLANG         9
+               #define PROPERTY_SIDESHOW_SUPPORTEDTHEMES     10
+               #define PROPERTY_SIDESHOW_IMAGEFORMAT         14
+               #define PROPERTY_SIDESHOW_CLIENTWIDTH         15
+               #define PROPERTY_SIDESHOW_CLIENTHEIGHT        16
+               #define PROPERTY_SIDESHOW_DEVICEICON          17
+
+               #define PROPERTY_DEVICE_DEVICETYPE            15
+
+       /* Function Prototypes: */
+               void Sideshow_ProcessCommandPacket(void);
+
+               #if defined(INCLUDE_FROM_SIDESHOWCOMMANDS_H)
+                       static void SideShow_Ping(SideShow_PacketHeader_t* const PacketHeader);
+                       static void SideShow_Sync(SideShow_PacketHeader_t* const PacketHeader);
+                       static void SideShow_GetCurrentUser(SideShow_PacketHeader_t* const PacketHeader);
+                       static void SideShow_SetCurrentUser(SideShow_PacketHeader_t* const PacketHeader);
+                       static void SideShow_GetCapabilities(SideShow_PacketHeader_t* const PacketHeader);
+                       static void SideShow_GetString(SideShow_PacketHeader_t* const PacketHeader,
+                                                      void* const UnicodeStruct);
+                       static void SideShow_GetApplicationOrder(SideShow_PacketHeader_t* const PacketHeader);
+                       static void SideShow_GetSupportedEndpoints(SideShow_PacketHeader_t* const PacketHeader);
+                       static void SideShow_AddApplication(SideShow_PacketHeader_t* const PacketHeader);
+                       static void SideShow_DeleteApplication(SideShow_PacketHeader_t* const PacketHeader);
+                       static void SideShow_DeleteAllApplications(SideShow_PacketHeader_t* const PacketHeader);
+                       static void SideShow_AddContent(SideShow_PacketHeader_t* const PacketHeader);
+                       static void SideShow_DeleteContent(SideShow_PacketHeader_t* const PacketHeader);
+                       static void SideShow_DeleteAllContent(SideShow_PacketHeader_t* const PacketHeader);
+               #endif
+
+#endif
+