xref: /haiku/src/add-ons/media/media-add-ons/usb_webcam/addons/uvc/USB_video.h (revision 2222d0559df303a9846a2fad53741f8b20b14d7c)
1 /*
2  * Copyright 2009, Ithamar Adema, <ithamar.adema@team-embedded.nl>.
3  * Distributed under the terms of the MIT License.
4  */
5 
6 #ifndef _USB_VIDEO_H
7 #define _USB_VIDEO_H
8 
9 /* Class/Subclass/Protocol */
10 #define CC_VIDEO			0xE
11 #define SC_UNDEFINED			0x0
12 #define SC_VIDEOCONTROL			0x1
13 #define SC_VIDEOSTREAMING		0x2
14 #define SC_VIDEO_INTERFACE_COLLECTION	0x3
15 #define PC_PROTOCOL_UNDEFINED		0x0
16 
17 #define CS_UNDEFINED			0x20
18 #define CS_DEVICE			0x21
19 #define CS_CONFIGURATION		0x22
20 #define CS_STRING			0x23
21 #define CS_INTERFACE			0x24
22 #define CS_ENDPOINT			0x25
23 
24 /* Video Control Class Descriptors */
25 #define VC_DESCRIPTOR_UNDEFINED		0x0
26 #define VC_HEADER			0x1
27 #define VC_INPUT_TERMINAL		0x2
28 #define VC_OUTPUT_TERMINAL		0x3
29 #define VC_SELECTOR_UNIT		0x4
30 #define VC_PROCESSING_UNIT		0x5
31 #define VC_EXTENSION_UNIT		0x6
32 
33 /* Video Streaming Class Descriptors */
34 #define VS_UNDEFINED			0x00
35 #define VS_INPUT_HEADER			0x01
36 #define VS_OUTPUT_HEADER		0x02
37 #define VS_STILL_IMAGE_FRAME		0x03
38 #define VS_FORMAT_UNCOMPRESSED		0x04
39 #define VS_FRAME_UNCOMPRESSED		0x05
40 #define VS_FORMAT_MJPEG			0x06
41 #define VS_FRAME_MJPEG			0x07
42 #define VS_FORMAT_MPEG2TS		0x0a
43 #define VS_FORMAT_DV			0x0c
44 #define VS_COLORFORMAT			0x0d
45 #define VS_FORMAT_FRAME_BASED		0x10
46 #define VS_FRAME_FRAME_BASED		0x11
47 #define VS_FORMAT_STREAM_BASED		0x12
48 
49 #define EP_UNDEFINED			0x0
50 #define EP_GENERAL			0x1
51 #define EP_ENDPOINT			0x2
52 #define EP_INTERRUPT			0x3
53 
54 #define RC_UNDEFINED			0x00
55 #define SET_CUR				0x01
56 #define GET_CUR				0x81
57 #define GET_MIN				0x82
58 #define GET_MAX				0x83
59 #define GET_RES				0x84
60 #define GET_LEN				0x85
61 #define GET_INFO			0x86
62 #define GET_DEF				0x87
63 
64 #define VC_CONTROL_UNDEFINED		0x0
65 #define VC_VIDEO_POWER_MODE_CONTROL	0x1
66 #define VC_REQUEST_ERROR_CODE_CONTROL	0x2
67 
68 #define TE_CONTROL_UNDEFINED		0x0
69 
70 #define SU_CONTROL_UNDEFINED		0x0
71 #define SU_INPUT_SELECT_CONTROL		0x1
72 
73 #define CT_CONTROL_UNDEFINED		0x0
74 #define CT_SCANNING_MODE_CONTROL	0x1
75 #define CT_AE_MODE_CONTROL		0x2
76 #define CT_AE_PRIORITY_CONTROL		0x3
77 #define CT_EXPOSURE_TIME_ABSOLUTE_CONTROL	0x4
78 #define CT_EXPOSURE_TIME_RELATIVE_CONTROL	0x5
79 #define CT_FOCUS_ABSOLUTE_CONTROL	0x6
80 #define CT_FOCUS_RELATIVE_CONTROL	0x7
81 #define CT_FOCUS_AUTO_CONTROL		0x8
82 #define CT_IRIS_ABSOLUTE_CONTROL	0x9
83 #define CT_IRIS_RELATIVE_CONTROL	0xa
84 #define CT_ZOOM_ABSOLUTE_CONTROL	0xb
85 #define CT_ZOOM_RELATIVE_CONTROL	0xc
86 #define CT_PANTILT_ABSOLUTE_CONTROL	0xd
87 #define CT_PANTILT_RELATIVE_CONTROL	0xe
88 #define CT_ROLL_ABSOLUTE_CONTROL	0xf
89 #define CT_ROLL_RELATIVE_CONTROL	0x10
90 #define CT_PRIVACY_CONTROL		0x11
91 
92 #endif /* _USB_VIDEO_H */
93