Add new Incomplete device subdirectory for work-in-progress demos. Add incomplete...
[pub/lufa.git] / Demos / Device / Incomplete / Sideshow / SideshowCommands.h
diff --git a/Demos/Device/Incomplete/Sideshow/SideshowCommands.h b/Demos/Device/Incomplete/Sideshow/SideshowCommands.h
new file mode 100644 (file)
index 0000000..197bc95
--- /dev/null
@@ -0,0 +1,165 @@
+/*\r
+             LUFA Library\r
+     Copyright (C) Dean Camera, 2009.\r
+              \r
+  dean [at] fourwalledcubicle [dot] com\r
+      www.fourwalledcubicle.com\r
+*/\r
+\r
+/*\r
+  Copyright 2009  Dean Camera (dean [at] fourwalledcubicle [dot] com)\r
+\r
+  Permission to use, copy, modify, and distribute this software\r
+  and its documentation for any purpose and without fee is hereby\r
+  granted, provided that the above copyright notice appear in all\r
+  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