00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef V4L2_DYNA_CTRLS_H
00023 #define V4L2_DYNA_CTRLS_H
00024
00025 #include <sys/types.h>
00026 #include <linux/videodev2.h>
00027
00028
00029
00030
00031 #define UVC_CTRL_DATA_TYPE_RAW 0
00032 #define UVC_CTRL_DATA_TYPE_SIGNED 1
00033 #define UVC_CTRL_DATA_TYPE_UNSIGNED 2
00034 #define UVC_CTRL_DATA_TYPE_BOOLEAN 3
00035 #define UVC_CTRL_DATA_TYPE_ENUM 4
00036 #define UVC_CTRL_DATA_TYPE_BITMASK 5
00037
00038 #define V4L2_CID_BASE_EXTCTR 0x0A046D01
00039 #define V4L2_CID_BASE_LOGITECH V4L2_CID_BASE_EXTCTR
00040
00041
00042 #define V4L2_CID_PANTILT_RESET_LOGITECH V4L2_CID_BASE_LOGITECH+2
00043 #define V4L2_CID_FOCUS_LOGITECH V4L2_CID_BASE_LOGITECH+3
00044 #define V4L2_CID_LED1_MODE_LOGITECH V4L2_CID_BASE_LOGITECH+4
00045 #define V4L2_CID_LED1_FREQUENCY_LOGITECH V4L2_CID_BASE_LOGITECH+5
00046 #define V4L2_CID_DISABLE_PROCESSING_LOGITECH V4L2_CID_BASE_LOGITECH+0x70
00047 #define V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH V4L2_CID_BASE_LOGITECH+0x71
00048 #define V4L2_CID_LAST_EXTCTR V4L2_CID_RAW_BITS_PER_PIXEL_LOGITECH
00049
00050 #define UVC_GUID_LOGITECH_VIDEO_PIPE {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x50}
00051 #define UVC_GUID_LOGITECH_MOTOR_CONTROL {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x56}
00052 #define UVC_GUID_LOGITECH_USER_HW_CONTROL {0x82, 0x06, 0x61, 0x63, 0x70, 0x50, 0xab, 0x49, 0xb8, 0xcc, 0xb3, 0x85, 0x5e, 0x8d, 0x22, 0x1f}
00053
00054 #define XU_HW_CONTROL_LED1 1
00055 #define XU_MOTORCONTROL_PANTILT_RELATIVE 1
00056 #define XU_MOTORCONTROL_PANTILT_RESET 2
00057 #define XU_MOTORCONTROL_FOCUS 3
00058 #define XU_COLOR_PROCESSING_DISABLE 5
00059 #define XU_RAW_DATA_BITS_PER_PIXEL 8
00060
00061 #define UVC_CONTROL_SET_CUR (1 << 0)
00062 #define UVC_CONTROL_GET_CUR (1 << 1)
00063 #define UVC_CONTROL_GET_MIN (1 << 2)
00064 #define UVC_CONTROL_GET_MAX (1 << 3)
00065 #define UVC_CONTROL_GET_RES (1 << 4)
00066 #define UVC_CONTROL_GET_DEF (1 << 5)
00067
00068 #define UVC_CONTROL_RESTORE (1 << 6)
00069
00070 #define UVC_CONTROL_AUTO_UPDATE (1 << 7)
00071
00072 #define UVC_CONTROL_GET_RANGE (UVC_CONTROL_GET_CUR | UVC_CONTROL_GET_MIN | \
00073 UVC_CONTROL_GET_MAX | UVC_CONTROL_GET_RES | \
00074 UVC_CONTROL_GET_DEF)
00075
00076
00077 struct uvc_xu_control_info
00078 {
00079 __u8 entity[16];
00080 __u8 index;
00081 __u8 selector;
00082 __u16 size;
00083 __u32 flags;
00084 };
00085
00086 struct uvc_xu_control_mapping
00087 {
00088 __u32 id;
00089 __u8 name[32];
00090 __u8 entity[16];
00091 __u8 selector;
00092
00093 __u8 size;
00094 __u8 offset;
00095 enum v4l2_ctrl_type v4l2_type;
00096 __u32 data_type;
00097 };
00098
00099 struct uvc_xu_control
00100 {
00101 __u8 unit;
00102 __u8 selector;
00103 __u16 size;
00104
00105 __u8 *data;
00106 };
00107
00108 #define UVCIOC_CTRL_ADD _IOW ('U', 1, struct uvc_xu_control_info)
00109 #define UVCIOC_CTRL_MAP _IOWR ('U', 2, struct uvc_xu_control_mapping)
00110 #define UVCIOC_CTRL_GET _IOWR ('U', 3, struct uvc_xu_control)
00111 #define UVCIOC_CTRL_SET _IOW ('U', 4, struct uvc_xu_control)
00112
00113 #endif