camera.h
上传用户:qiulin1960
上传日期:2013-10-16
资源大小:2844k
文件大小:8k
源码类别:

Windows CE

开发平台:

Windows_Unix

  1. #ifndef __CAMERA_H_
  2. #define __CAMERA_H_
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. BOOL CIS_Close(DWORD hOpenContext);
  7. BOOL CIS_Deinit(DWORD hDeviceContext);
  8. DWORD CIS_Init(DWORD dwContext);
  9. DWORD CIS_Open(DWORD hDeviceContext, DWORD AccessCode, DWORD ShareMode);
  10. void CIS_PowerUp(DWORD hDeviceContext);
  11. void CIS_PowerDown(DWORD hDeviceContext);
  12. DWORD CIS_Read(DWORD hOpenContext, LPVOID pBuffer, DWORD Count);
  13. DWORD CIS_Seek(DWORD hOpenContext, long Amount, DWORD Type);
  14. DWORD CIS_Write(DWORD hOpenContext, LPCVOID pSourceBytes, DWORD NumberOfBytes);
  15. BOOL CIS_IOControl(DWORD hOpenContext, 
  16.    DWORD dwCode, 
  17.    PBYTE pBufIn, 
  18.    DWORD dwLenIn, 
  19.    PBYTE pBufOut, 
  20.    DWORD dwLenOut, 
  21.    PDWORD pdwActualOut);
  22. //void CalculateBurstSize(unsigned int hSize,unsigned int *mainBurstSize,unsigned int *remainedBurstSize);
  23. //void CalculatePrescalerRatioShift(unsigned int SrcSize, unsigned int DstSize, unsigned int *ratio,unsigned int *shift);
  24. #ifdef __cplusplus
  25. }
  26. #endif
  27. #define MIN_ALPHA 0
  28. #define MAX_ALPHA 8
  29. #define MIN_HUE 0
  30. #define MAX_HUE 90
  31. #define MIN_BRIGHT -128
  32. #define MAX_BRIGHT 127
  33. #define MIN_CBGAIN 0
  34. #define MAX_CBGAIN 255
  35. #define MIN_CRGAIN 0
  36. #define MAX_CRGAIN 255
  37. #define COARSE_SCALE 3
  38. #define FINE_SCALE 0
  39. #define OVL_NORMAL 1
  40. #define OVL_ALPHA 4
  41. #define OVL_COLKEY 5
  42. typedef struct _CAMINFO
  43. {
  44. WORD nSrcWidth; // original input width
  45. WORD nSrcHeight; // original input height
  46. WORD nSrcBytes; // # of bytes in a pixel.
  47. float fScale; // scaling value for image scaler, Output_Size = fScale * Original_Size
  48. } CAMINFO, *LPCAMINFO;
  49. typedef struct _CAM_GAMMATABLE
  50. {
  51. short gamma_table[1024];
  52. } CAM_GAMMATABLE, *LPCAM_GAMMATABLE;
  53. typedef struct _CAM_WBTABLE
  54. {
  55. WORD WBTable[16];
  56. } CAM_WBTABLE, *LPCAM_WBTABLE;
  57. // show Camera 
  58. // dwLenIn = 1 : Normal overlay
  59. // dwLenIn = 4 : Alphablending 
  60. // dwLenIn = 5 : Colorkey overlay
  61. #define IOCTL_CAM_SHOW CTL_CODE( FILE_DEVICE_VIDEO, 1, METHOD_NEITHER,FILE_ANY_ACCESS)
  62. // hide Camera 
  63. #define IOCTL_CAM_HIDE CTL_CODE( FILE_DEVICE_VIDEO, 2, METHOD_NEITHER,FILE_ANY_ACCESS)
  64. // Set Diplay position 
  65. // dwLenIn = MAKELONG(left, top)
  66. // dwLenOut = MAKELONG(width, height)
  67. #define IOCTL_CAM_SETPOS CTL_CODE( FILE_DEVICE_VIDEO, 3, METHOD_NEITHER,FILE_ANY_ACCESS)
  68. // play 
  69. #define IOCTL_CAM_CONT CTL_CODE( FILE_DEVICE_VIDEO, 4, METHOD_NEITHER,FILE_ANY_ACCESS)
  70. // stop
  71. #define IOCTL_CAM_STOP CTL_CODE( FILE_DEVICE_VIDEO, 5, METHOD_NEITHER,FILE_ANY_ACCESS)
  72. // copy camera image to pBufOut (RGB565 format)
  73. // dwLenIn = 0 : top-down image
  74. // dwLenIn = 1 : bottom-up image
  75. #define IOCTL_CAM_COPY CTL_CODE( FILE_DEVICE_VIDEO, 6, METHOD_OUT_DIRECT,FILE_ANY_ACCESS)
  76. // set colorkey
  77. // dwLenIn = RGB(R-value, G-value, B-value)
  78. #define IOCTL_CAM_SETCOLKEY CTL_CODE( FILE_DEVICE_VIDEO, 7, METHOD_NEITHER,FILE_ANY_ACCESS)
  79. // set alpha value
  80. // dwLenIn = alpha value[0-8]
  81. #define IOCTL_CAM_SETALPHA CTL_CODE( FILE_DEVICE_VIDEO, 8, METHOD_NEITHER,FILE_ANY_ACCESS)
  82. // get camera information
  83. // pBufOut = LPCAMINFO;
  84. #define IOCTL_CAM_GETINFO CTL_CODE( FILE_DEVICE_VIDEO, 9, METHOD_OUT_DIRECT,FILE_ANY_ACCESS)
  85. // set scale for image_scaler
  86. // dwLenIn = scalemode (0:FINE, 3:COARSE)
  87. // pBufIn = (float*)&scale;
  88. #define IOCTL_CAM_SETSCALE CTL_CODE( FILE_DEVICE_VIDEO, 10, METHOD_IN_DIRECT,FILE_ANY_ACCESS)
  89. // set hue value
  90. // dwLenIn = MAKELONG(hue_value[0-90], coord.[0-4]) ; if coord==0 then all coord. set
  91. #define IOCTL_CAM_SETHUE CTL_CODE( FILE_DEVICE_VIDEO, 11, METHOD_NEITHER,FILE_ANY_ACCESS)
  92. // set gamma
  93. // gamma_off : dwLenIn = 0
  94. // gamma_on  : pBufIn = gamma_table; dwLenIn = sizeof(gamma_table=2048); 
  95. #define IOCTL_CAM_SETGAMMA CTL_CODE( FILE_DEVICE_VIDEO, 12, METHOD_IN_DIRECT,FILE_ANY_ACCESS)
  96. // set White balance coordinate
  97. // pBufIn = WBtable;
  98. #define IOCTL_CAM_SETWBCOORD CTL_CODE( FILE_DEVICE_VIDEO, 13, METHOD_IN_DIRECT,FILE_ANY_ACCESS)
  99. // set Auto Exposure accumulation limit
  100. // dwLenIn = MAKELONG(LowerLimit[0-255], UpperLimit[0-255]);
  101. #define IOCTL_CAM_SETAELIMIT CTL_CODE( FILE_DEVICE_VIDEO, 14, METHOD_NEITHER,FILE_ANY_ACCESS)
  102. // set ADC offset value
  103. // dwLenIn = RGB((BYTE)R-offset[-127 - 128], (BYTE)G-offset[-127 - 128], (BYTE)B-offset[-127 - 128]);
  104. #define IOCTL_CAM_SETADCOFS CTL_CODE( FILE_DEVICE_VIDEO, 15, METHOD_NEITHER,FILE_ANY_ACCESS)
  105. // set ADC offset value
  106. // Decimal_X_gain[5.4] = (unsigned char)(fGain[0.0-8.0]*0x20);
  107. // dwLenIn = RGB(Decimal_R_gain, Decimal_G_gain, Decimal_B_gain);
  108. #define IOCTL_CAM_SETWBGAIN CTL_CODE( FILE_DEVICE_VIDEO, 16, METHOD_NEITHER,FILE_ANY_ACCESS)
  109. // set CbGain & CrGain
  110. // Decimal_Cx_gain[7.6] = (unsigned char)(fGain[0.0-2.0]*0x80);
  111. // dwLenIn = MAKELONG(Decimal_Cr_gain, Decimal_Cb_gain);
  112. #define IOCTL_CAM_SETCBCRGAIN CTL_CODE( FILE_DEVICE_VIDEO, 17, METHOD_NEITHER,FILE_ANY_ACCESS)
  113. // set Luminance Enhancement Gain
  114. // Decimal_H_gain[4.3] = (unsigned char)(fHGain[0.0-8.0]*0x10);
  115. // Decimal_V_gain[4.3] = (unsigned char)(fVGain[0.0-8.0]*0x10);
  116. // Decimal_Main_gain[6.5] = (unsigned char)(fMainGain[0.0-4.0]*0x40);
  117. // dwLenIn = MAKELONG(Decimal_H_gain, Decimal_V_gain);
  118. // dwLenOut = Decimal_Main_Gain;
  119. #define IOCTL_CAM_SETLEGAIN CTL_CODE( FILE_DEVICE_VIDEO, 18, METHOD_NEITHER,FILE_ANY_ACCESS)
  120. // set brightness
  121. // dwLenIn = (BYTE)brightness[-127 - 128];
  122. #define IOCTL_CAM_SETBRIGHTNESS CTL_CODE( FILE_DEVICE_VIDEO, 19, METHOD_NEITHER,FILE_ANY_ACCESS)
  123. // set Clip point & color supress 
  124. // dwLenIn = CSlantEn[0-1] << 31 | CSlant_val[0-1,[7.6]decimal] << 16 | Clip2[0-255] << 8 | Clip1[0-255];
  125. #define IOCTL_CAM_SETCLIP CTL_CODE( FILE_DEVICE_VIDEO, 20, METHOD_NEITHER,FILE_ANY_ACCESS)
  126. // set Slice limit
  127. // dwLenIn = slice_limit[0-255];
  128. #define IOCTL_CAM_SETSLICELMT CTL_CODE( FILE_DEVICE_VIDEO, 21, METHOD_NEITHER,FILE_ANY_ACCESS)
  129. // set White balance accumulation Limit
  130. // dwLenIn = MAKELONG(LowerLimit[0-255], UpperLimit[0-255]);
  131. #define IOCTL_CAM_WBACCLMT CTL_CODE( FILE_DEVICE_VIDEO, 22, METHOD_NEITHER,FILE_ANY_ACCESS)
  132. // set Color supress Luma Edge limit
  133. // dwLenIn = MAKELONG(LowerLimit[0-255], UpperLimit[0-255]);
  134. #define IOCTL_CAM_CSEDGELMT CTL_CODE( FILE_DEVICE_VIDEO, 23, METHOD_NEITHER,FILE_ANY_ACCESS)
  135. // Camera V-Sync Interrupt Handler Enable
  136. #define IOCTL_CAM_ENVINT CTL_CODE( FILE_DEVICE_VIDEO, 24, METHOD_NEITHER,FILE_ANY_ACCESS)
  137. // Camera V-Sync Interrupt Handler Disable
  138. #define IOCTL_CAM_DISVINT CTL_CODE( FILE_DEVICE_VIDEO, 25, METHOD_NEITHER,FILE_ANY_ACCESS)
  139. // set Camera
  140. // pBufIn = (LPTSTR)szCameraName;
  141. #define IOCTL_CAM_SETCAMERA CTL_CODE( FILE_DEVICE_VIDEO, 26, METHOD_IN_DIRECT,FILE_ANY_ACCESS)
  142. #define CAM_IOCTL_GETJPEG 0x500
  143. #define CAM_IOCTL_PRV_SETSIZE 0x501
  144. #define CAM_IOCTL_PREVIEW_ON 0x502
  145. #define CAM_IOCTL_PREVIEW_OFF 0x503
  146. #define CAM_IOCTL_PRV_POSITION 0x504
  147. #define CAM_IOCTL_ZOOM_ON 0x505
  148. #define CAM_IOCTL_ZOOM_OFF 0x506
  149. #define CAM_IOCTL_Y_FLIP 0x507
  150. #define CAM_IOCTL_X_FLIP 0x508
  151. #define CAM_IOCTL_MOVIE_START 0x509
  152. #define CAM_IOCTL_MOVIE_STOP 0x50A
  153. #define CAM_IOCTL_GET_LATEST_FRAME 0x50B
  154. #define CAM_IOCTL_POWER_RESUME 0x50C
  155. #define CAM_IOCTL_SET_RESOLUTION 0x50D
  156. #define CAM_IOCTL_GET_RESOLUTION 0x50E
  157. #define CAM_IOCTL_SET_BRIGHTNESS 0x50F
  158. #define CAM_IOCTL_SET_SENSOR 0x510
  159. #define CAM_IOCTL_GET_SENSOR 0x511
  160. #define CAM_IOCTL_SET_ASIC 0x512
  161. #define CAM_IOCTL_GET_ASIC 0x513
  162. #define CAM_IOCTL_LM_PREVIEW 0x514
  163. #define CAM_IOCTL_GET_QFACTOR 0x515
  164. #define CAM_IOCTL_SET_WHITEBAL 0x516
  165. #define CAM_IOCTL_SAMSUNG_CAM 0x520
  166. #define CAM_IOCTL_IMAGE_SIZE 0x521 
  167. #define CAM_IOCTL_SAMSUNG_CAM_PR 0x522
  168. #define CAM_IOCTL_SAMSUNG_PREVIEW_START 0x523
  169. #define CAM_IOCTL_SAMSUNG_PREVIEW_STOP 0x524
  170. #endif /* __CAMERA_H_ */