LPCOpen Platform
LPCOpen Platform for NXP LPC Microcontrollers
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
StillImageClassCommon.h
Go to the documentation of this file.
1
/*
2
* @brief Common definitions and declarations for the library USB Still Image Class driver
3
*
4
* @note
5
* Copyright(C) NXP Semiconductors, 2012
6
* Copyright(C) Dean Camera, 2011, 2012
7
* All rights reserved.
8
*
9
* @par
10
* Software that is described herein is for illustrative purposes only
11
* which provides customers with programming information regarding the
12
* LPC products. This software is supplied "AS IS" without any warranties of
13
* any kind, and NXP Semiconductors and its licensor disclaim any and
14
* all warranties, express or implied, including all implied warranties of
15
* merchantability, fitness for a particular purpose and non-infringement of
16
* intellectual property rights. NXP Semiconductors assumes no responsibility
17
* or liability for the use of the software, conveys no license or rights under any
18
* patent, copyright, mask work right, or any other intellectual property rights in
19
* or to any products. NXP Semiconductors reserves the right to make changes
20
* in the software without notification. NXP Semiconductors also makes no
21
* representation or warranty that such application will be suitable for the
22
* specified use without further testing or modification.
23
*
24
* @par
25
* Permission to use, copy, modify, and distribute this software and its
26
* documentation is hereby granted, under NXP Semiconductors' and its
27
* licensor's relevant copyrights in the software, without fee, provided that it
28
* is used in conjunction with NXP Semiconductors microcontrollers. This
29
* copyright, permission, and disclaimer notice must appear in all copies of
30
* this code.
31
*/
32
43
#ifndef _SI_CLASS_COMMON_H_
44
#define _SI_CLASS_COMMON_H_
45
46
/* Includes: */
47
#include "../../Core/StdDescriptors.h"
48
49
/* Enable C linkage for C++ Compilers: */
50
#if defined(__cplusplus)
51
extern
"C"
{
52
#endif
53
54
/* Preprocessor Checks: */
55
#if !defined(__INCLUDE_FROM_SI_DRIVER)
56
#error Do not include this file directly. Include LPCUSBlib/Drivers/USB.h instead.
57
#endif
58
59
/* Macros: */
66
#define UNICODE_STRING_LENGTH(Chars) ((Chars) << 1)
67
73
#define PIMA_COMMAND_SIZE(Params) ((sizeof(PIMA_Container_t) - 12) + ((Params) * sizeof(uint32_t)))
74
80
#define PIMA_DATA_SIZE(DataLen) ((sizeof(PIMA_Container_t) - 12) + (DataLen))
81
82
/* Enums: */
84
enum
PIMA_Container_Types_t
85
{
86
PIMA_CONTAINER_Undefined
= 0,
87
PIMA_CONTAINER_CommandBlock
= 1,
88
PIMA_CONTAINER_DataBlock
= 2,
89
PIMA_CONTAINER_ResponseBlock
= 3,
90
PIMA_CONTAINER_EventBlock
= 4,
91
};
92
93
/* Enums: */
97
enum
SI_Descriptor_ClassSubclassProtocol_t
98
{
99
SI_CSCP_StillImageClass
= 0x06,
102
SI_CSCP_StillImageSubclass
= 0x01,
105
SI_CSCP_BulkOnlyProtocol
= 0x01,
108
};
109
111
enum
PIMA_ResponseCodes_t
112
{
113
PIMA_RESPONSE_OK
= 1,
114
PIMA_RESPONSE_GeneralError
= 2,
117
PIMA_RESPONSE_SessionNotOpen
= 3,
120
PIMA_RESPONSE_InvalidTransaction
= 4,
121
PIMA_RESPONSE_OperationNotSupported
= 5,
124
PIMA_RESPONSE_ParameterNotSupported
= 6,
127
};
128
129
/* Type Defines: */
137
typedef
struct
138
{
139
uint32_t
DataLength
;
140
uint16_t
Type
;
141
uint16_t
Code
;
142
uint32_t
TransactionID
;
143
uint32_t
Params[3];
144
}
ATTR_PACKED
PIMA_Container_t
;
145
146
/* Disable C linkage for C++ Compilers: */
147
#if defined(__cplusplus)
148
}
149
#endif
150
151
#endif
152
software
LPCUSBLib
Drivers
USB
Class
Common
StillImageClassCommon.h
Generated on Fri Nov 16 2012 13:36:45 for LPCOpen Platform by
1.8.2