17 #define XU_GET UVC_CONTROL_GET_CUR 18 #define XU_SET UVC_CONTROL_SET_CUR 20 #define V4L2_XU_ID_BASE 0x0A046D01 24 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_RAW},
27 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_RAW},
30 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_UNSIGNED},
32 V4L2_CTRL_TYPE_MENU, UVC_CTRL_DATA_TYPE_BITMASK},
34 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_UNSIGNED},
36 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_UNSIGNED},
38 V4L2_CTRL_TYPE_BOOLEAN, UVC_CTRL_DATA_TYPE_BOOLEAN},
40 V4L2_CTRL_TYPE_MENU, UVC_CTRL_DATA_TYPE_BITMASK},
42 V4L2_CTRL_TYPE_BOOLEAN, UVC_CTRL_DATA_TYPE_BOOLEAN},
44 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_SIGNED},
46 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_SIGNED},
49 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_RAW},
52 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_RAW},
55 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_UNSIGNED},
57 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_UNSIGNED},
59 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_UNSIGNED},
61 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_UNSIGNED},
63 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_RAW},
65 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_RAW},
67 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_RAW},
69 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_RAW},
71 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_RAW},
73 V4L2_CTRL_TYPE_INTEGER, UVC_CTRL_DATA_TYPE_RAW},
109 NULL, 0, {0, 0, 0, 0}};
111 printf(
"********XU registration************\n");
114 memcpy(map.name, xu_control_tbl[i].
name, 32);
115 map.selector = xu_control_tbl[i].
selector;
116 if (xu_control_tbl[i].size == 0xFF)
117 map.size = xu_control_tbl[i].
size;
119 map.size = xu_control_tbl[i].
size * 8;
120 map.offset = xu_control_tbl[i].
offset;
121 map.v4l2_type = xu_control_tbl[i].
v4l2_type;
122 map.data_type = xu_control_tbl[i].
data_type;
124 switch (xu_control_tbl[i].selector) {
134 map.menu_info = NULL;
138 if ((value = ioctl(vd, UVCIOC_CTRL_MAP, &map)) < 0){
140 printf(
"XU mapping error: %s, %s\n", xu_control_tbl[i].name, strerror(errno));
142 printf(
"XU mapping succeeded: %s\n", xu_control_tbl[i].name);
uvc_menu_info xu_menu_button_table[]
int set_XU_control(int vd)
uvc_menu_info xu_menu_flip_table[]
#define XU_CAPTURE_FPS_CONTROL
#define XU_ZOOM_ABSOLUTE_CONTROL
#define XU_PAN_ABSOLUTE_CONTROL
enum v4l2_ctrl_type v4l2_type
#define XU_FIRMWARE_VERSION_CONTROL
#define XU_JPEG_QUALITY_CONTROL
#define XU_TILT_ABSOLUTE_CONTROL
#define XU_ANALOG_VIDEO_STANDARD_CONTROL
#define XU_GAIN_ABSOLUTE_CONTROL
#define XU_AUTO_PAN_SPEED_CONTROL
#define XU_SERIAL_ID_CONTROL
#define XU_SMALL_HEMISPHERE_CONTROL
uvc_xu_tbl_info xu_control_tbl[]
#define XU_ROLL_ABSOLUTE_CONTROL
#define XU_LOCATION_ABSOLUTE_CONTROL
#define XU_FLASH_PARAMETER_CONTROL
#define XU_MEDIAN_FILTER_CONTROL
#define XU_LENS_TYPE_CONTROL
#define UVC_GUID_UVC_EXTENSION
#define XU_INFO_DISPLAY_CONTROL
#define XU_ACTUAL_FPS_CONTROL
#define XU_PENDING_PTZR_CONTROL
#define XU_FLIP_SCREEN_CONTROL
#define XU_PUSH_BUTTON_CONTROL