~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to include/linux/uvcvideo.h

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef __LINUX_UVCVIDEO_H_
 
2
#define __LINUX_UVCVIDEO_H_
 
3
 
 
4
#include <linux/ioctl.h>
 
5
#include <linux/types.h>
 
6
 
 
7
/*
 
8
 * Dynamic controls
 
9
 */
 
10
 
 
11
/* Data types for UVC control data */
 
12
#define UVC_CTRL_DATA_TYPE_RAW          0
 
13
#define UVC_CTRL_DATA_TYPE_SIGNED       1
 
14
#define UVC_CTRL_DATA_TYPE_UNSIGNED     2
 
15
#define UVC_CTRL_DATA_TYPE_BOOLEAN      3
 
16
#define UVC_CTRL_DATA_TYPE_ENUM         4
 
17
#define UVC_CTRL_DATA_TYPE_BITMASK      5
 
18
 
 
19
/* Control flags */
 
20
#define UVC_CTRL_FLAG_SET_CUR           (1 << 0)
 
21
#define UVC_CTRL_FLAG_GET_CUR           (1 << 1)
 
22
#define UVC_CTRL_FLAG_GET_MIN           (1 << 2)
 
23
#define UVC_CTRL_FLAG_GET_MAX           (1 << 3)
 
24
#define UVC_CTRL_FLAG_GET_RES           (1 << 4)
 
25
#define UVC_CTRL_FLAG_GET_DEF           (1 << 5)
 
26
/* Control should be saved at suspend and restored at resume. */
 
27
#define UVC_CTRL_FLAG_RESTORE           (1 << 6)
 
28
/* Control can be updated by the camera. */
 
29
#define UVC_CTRL_FLAG_AUTO_UPDATE       (1 << 7)
 
30
 
 
31
#define UVC_CTRL_FLAG_GET_RANGE \
 
32
        (UVC_CTRL_FLAG_GET_CUR | UVC_CTRL_FLAG_GET_MIN | \
 
33
         UVC_CTRL_FLAG_GET_MAX | UVC_CTRL_FLAG_GET_RES | \
 
34
         UVC_CTRL_FLAG_GET_DEF)
 
35
 
 
36
struct uvc_menu_info {
 
37
        __u32 value;
 
38
        __u8 name[32];
 
39
};
 
40
 
 
41
struct uvc_xu_control_mapping {
 
42
        __u32 id;
 
43
        __u8 name[32];
 
44
        __u8 entity[16];
 
45
        __u8 selector;
 
46
 
 
47
        __u8 size;
 
48
        __u8 offset;
 
49
        __u32 v4l2_type;
 
50
        __u32 data_type;
 
51
 
 
52
        struct uvc_menu_info __user *menu_info;
 
53
        __u32 menu_count;
 
54
 
 
55
        __u32 reserved[4];
 
56
};
 
57
 
 
58
struct uvc_xu_control_query {
 
59
        __u8 unit;
 
60
        __u8 selector;
 
61
        __u8 query;
 
62
        __u16 size;
 
63
        __u8 __user *data;
 
64
};
 
65
 
 
66
#define UVCIOC_CTRL_MAP         _IOWR('u', 0x20, struct uvc_xu_control_mapping)
 
67
#define UVCIOC_CTRL_QUERY       _IOWR('u', 0x21, struct uvc_xu_control_query)
 
68
 
 
69
#endif