vicam.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:2k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. /*
  2.  *
  3.  * Vista Imaging ViCAM / 3Com HomeConnect Usermode Driver
  4.  * Christopher L Cheney (C) 2001
  5.  * 
  6.  */
  7. #ifndef __LINUX_VICAM_H
  8. #define __LINUX_VICAM_H
  9. #ifdef CONFIG_USB_DEBUG
  10. static int debug = 1;
  11. #else
  12. static int debug;
  13. #endif
  14. /* Use our own dbg macro */
  15. #undef dbg
  16. #define dbg(format, arg...) do { if (debug) printk(KERN_DEBUG __FILE__ ": " format "n" , ## arg); } while (0)
  17. #define VICAM_NUMFRAMES 30
  18. #define VICAM_NUMSBUF 1
  19. /* USB REQUEST NUMBERS */
  20. #define VICAM_REQ_VENDOR 0xff
  21. #define VICAM_REQ_CAMERA_POWER 0x50
  22. #define VICAM_REQ_CAPTURE 0x51
  23. #define VICAM_REQ_LED_CONTROL 0x55
  24. #define VICAM_REQ_GET_SOMETHIN 0x56
  25.  
  26. /* not required but lets you know camera is on */
  27. /* camera must be on to turn on led */
  28. /* 0x01 always on  0x03 on when picture taken (flashes) */
  29. struct picture_parm
  30. {
  31. int width;
  32. int height;
  33. int brightness;
  34. int hue;
  35. int colour;
  36. int contrast;
  37. int whiteness;
  38. int depth;
  39. int palette;
  40. };
  41. struct vicam_scratch {
  42.         unsigned char *data;
  43.         volatile int state;
  44.         int offset;
  45.         int length;
  46. };
  47. /* Structure to hold all of our device specific stuff */
  48. struct usb_vicam
  49. {
  50. struct video_device vdev;
  51. struct usb_device *udev;
  52. int open_count; /* number of times this port has been opened */
  53. struct semaphore sem; /* locks this structure */
  54. wait_queue_head_t wait; /* Processes waiting */ 
  55. int streaming;
  56. /* v4l stuff */
  57. char *camera_name;
  58. char *fbuf;
  59. urb_t *urb[VICAM_NUMSBUF];
  60. int sizes;
  61. int *width;
  62. int *height;
  63. int maxframesize;
  64. struct picture_parm win;
  65. struct proc_dir_entry *proc_entry;      /* /proc/se401/videoX */
  66. struct urb readurb;
  67. };
  68. #endif