00001 #ifndef __KSJ_API_OBSOLETE_H__
00002 #define __KSJ_API_OBSOLETE_H__
00003 
00004 // #pragma message("Include KSJApiObsolete.h") 
00005 
00006 
00007 #ifdef KSJAPI_EXPORTS
00008     #define KSJ_API __declspec(dllexport)
00009 #elif defined KSJAPI_STATIC
00010     #define KSJ_API
00011 #else
00012     #define KSJ_API __declspec(dllimport)
00013 #endif
00014 
00015 // 为了保持对老客户调用的兼容性,这个文件中的函数是以前版本定义的,但在新版本中仍然保留,但我们已经不推荐使用的函数。
00016 // 其中有一些函数可以由其他函数替代,也有些函数已经不再支持。
00017 #ifdef __cplusplus
00018 extern "C"{
00019 #endif
00020 
00021 
00035     KSJ_API  int __stdcall KSJ_BadPixelCorrectionSetThreshold(int nIndex, unsigned char btLow, unsigned char btHigh);
00036 
00048     KSJ_API  int __stdcall KSJ_BadPixelCorrectionGetThreshold(int nIndex, unsigned char *pbtLow, unsigned char *pbtHigh);
00049 
00051     enum KSJ_THRESHOLD
00052     {
00053         KSJ_THRESHOLD_LOW,  
00054         KSJ_THRESHOLD_HIGH  
00055     };
00056 
00071     KSJ_API  int __stdcall KSJ_BadPixelCorrectionSet(int nIndex, bool bEnable, KSJ_THRESHOLD Threshold);
00072 
00084     KSJ_API  int __stdcall KSJ_BadPixelCorrectionGet(int nIndex, bool *pbEnable, KSJ_THRESHOLD *pThreshold);
00085 
00087     typedef enum
00088     {
00089         KSJ_ALL_HUES,     
00090         KSJ_RED_HUES,     
00091         KSJ_YELLOW_HUES,  
00092         KSJ_GREEN_HUES,   
00093         KSJ_CYAN_HUES,    
00094         KSJ_BLUE_HUES,    
00095         KSJ_MAGENTA_HUES  
00096     } KSJHueRange;
00097 
00112     KSJ_API  int __stdcall KSJ_HueSaturationSet(int nIndex, KSJHueRange HueRange, int nHue, int nSaturation, int nLightness);
00113 
00127     KSJ_API  int __stdcall KSJ_HueSaturationGet(int nIndex, KSJHueRange HueRange, int *pnHue, int *pnSaturation, int *pnLightness);
00128 
00139     KSJ_API  int __stdcall KSJ_HueSaturationSetEnable(int nIndex, bool bEnable);
00140 
00151     KSJ_API  int __stdcall KSJ_HueSaturationGetEnable(int nIndex, bool *pbEnable);
00152 
00153 
00154 
00164     KSJ_API  int __stdcall KSJ_CaptureSetRecover(int nIndex, bool bRecover);
00165 
00175     KSJ_API  int __stdcall KSJ_CaptureGetRecover(int nIndex, bool *pbRecover);
00176 
00187     KSJ_API  int __stdcall KSJ_CaptureSetTimeOutEx(int nIndex, unsigned long dwTimeOut, bool bRecover);
00188 
00199     KSJ_API  int __stdcall KSJ_CaptureGetTimeOutEx(int nIndex, unsigned long *pdwTimeOut, bool *pbRecover);
00200 
00213     typedef void(__stdcall *KSJ_AWBCALLBACK)(bool bSuccess, int nValueR, int nValueG, int nValueB, void *lpContext);
00214 
00225     KSJ_API  int __stdcall KSJ_AWBSetCallback(int nIndex, KSJ_AWBCALLBACK fpAWBCallback, void *lpContext);
00226 
00240     KSJ_API  int __stdcall KSJ_AWBStart(int nIndex, bool bStart, int nMaxCount, int nRTarget, int nGTarget, int nBTarget);
00241 
00242 
00244     KSJ_API  int __stdcall KSJ_GammaOn(int nIndex, bool bOn);    
00245 
00246 
00247     // 设置固定帧速(通过设置sensor寄存器,使sensor输出固定帧率),只有MUC36C/M(MGYY)和MU3E130C/M(CGYY)支持
00248     // V4.0.86.12版本开始,bEnable参数无效,通过用户设置KSJ_TRIGGER_FIXFRAMERATE模式来决定是否使能。
00249     KSJ_API  int __stdcall KSJ_SetFixedFrameRate(int nIndex, bool bEnable, float fFrameRate);
00250     KSJ_API  int __stdcall KSJ_GetFixedFrameRate(int nIndex, bool *pbEnable, float *pfFrameRate);
00251 
00252     // 闪光灯信号输出到实际相机输出的延时设置(暂不支持)
00253     KSJ_API  int __stdcall KSJ_StrobeDelaySet(int nIndex, unsigned short wDelay);
00254     KSJ_API  int __stdcall KSJ_StrobeDelayGet(int nIndex, unsigned short *pwDelay);
00255     KSJ_API  int __stdcall KSJ_StrobeDelayGetRange(int nIndex, unsigned short *wMin, unsigned short *wMax);
00256 
00257 
00258     // 设置图像传感器的工作方式(暂不支持)
00259     enum KSJ_SENSORMODE { KSJ_SM_TRIGGER_MODE, KSJ_SM_FREERUN_MODE, KSJ_SM_GRR_MODE };
00260     KSJ_API  int __stdcall KSJ_SensorModeSet(int nIndex, KSJ_SENSORMODE SensorMode);
00261     KSJ_API  int __stdcall KSJ_SensorModeGet(int nIndex, KSJ_SENSORMODE *SensorMode);
00262 
00264     typedef void(__stdcall *KSJ_CCCALLBACK)(bool bSuccess, int nRShift, int nGShift, int nBShift, void *lpContext);
00265 
00266     // 如下函数为软件颜色校正
00267     KSJ_API  int __stdcall KSJ_ColorCorrectSetCallback( int nIndex, KSJ_CCCALLBACK fpCCCallback, void *lpContext );
00268 
00269     enum KSJ_COLORCORRECT { KSJ_CC_NONE, KSJ_CC_SHIFTRGB, KSJ_CC_EQRGB, KSJ_CC_EQALL, KSJ_CC_WB };
00270     KSJ_API  int __stdcall KSJ_ColorCorrectSet  ( int nIndex, KSJ_COLORCORRECT ColorCorrect, int nRTarget, int nGTarget, int nBTarget );
00271     KSJ_API  int __stdcall KSJ_ColorCorrectGet  ( int nIndex, KSJ_COLORCORRECT *pColorCorrect );
00272     KSJ_API  int __stdcall KSJ_ColorCorrectGetEx( int nIndex, KSJ_COLORCORRECT *pColorCorrect, int *pnRTarget, int *pnGTarget, int *pnBTarget );
00273 
00274     KSJ_API  int __stdcall KSJ_ColorCorrectTableSave( int nIndex, const TCHAR *pszFileName );
00275     KSJ_API  int __stdcall KSJ_ColorCorrectTableLoad( int nIndex, const TCHAR *pszFileName );
00276     KSJ_API  int __stdcall KSJ_IsColorCorrectTableLoad( int nIndex, bool *bLoad );
00277 
00278     // KSJ_IR 红外灯, KSJ_UV 紫外灯,KSJ_VI 可见光灯
00279     enum KSJ_LED { KSJ_IR = 0, KSJ_UV, KSJ_VI };
00280     // KSJ_ON 灯亮,KSJ_OFF 灯关
00281     enum KSJ_LEDSTATUS { KSJ_OFF = 0, KSJ_ON };
00282 
00283     // 设置灯的状态
00284     KSJ_API  int __stdcall KSJ_LedSetStatus( int nIndex, KSJ_LED Led, KSJ_LEDSTATUS LedStatus );
00285     KSJ_API  int __stdcall KSJ_LedGetStatus( int nIndex, KSJ_LED Led, KSJ_LEDSTATUS *pLedStatus );
00286 
00287 
00288     enum KSJ_FLASHMODE//闪光灯模式(暂不支持)
00289     {
00290         KSJ_FM_TROW,
00291         KSJ_FM_SIMULTANEOUSEXPOSURE,
00292         KSJ_FM_SHUTTERWIDTH
00293     };
00294     KSJ_API  int __stdcall KSJ_FlashSetMode(int nIndex, KSJ_FLASHMODE FlashMode);//设置闪光灯模式(暂不支持)
00295     KSJ_API  int __stdcall KSJ_FlashGetMode(int nIndex, KSJ_FLASHMODE *pFlashMode);//获取闪光灯模式(暂不支持)
00296 
00307     KSJ_API  int __stdcall KSJ_AESetCallback(int nIndex, KSJ_AECALLBACK pfAECallback, void *lpContext);
00308 
00320     KSJ_API  int __stdcall KSJ_AEStart(int nIndex, bool bStart, int nMaxCount, int nTarget);
00321 
00335     KSJ_API  int __stdcall KSJ_AFSetRegion(int nIndex, int nX, int nY, int nW, int nH);
00336 
00346     KSJ_API  int __stdcall KSJ_AFShowRegion(int nIndex, bool bShow);
00347 
00361     KSJ_API  int __stdcall KSJ_AFGetRegion(int nIndex, int *pnX, int *pnY, int *pnW, int *pnH, bool *pbShow);
00362 
00372     typedef void(__stdcall *KSJ_AFCALLBACK)(int nValue, void *lpContext);
00373 
00384     KSJ_API  int __stdcall KSJ_AFSetCallback(int nIndex, KSJ_AFCALLBACK fpAFCallback, void *lpContext);
00385 
00395     KSJ_API  int __stdcall KSJ_AFStart(int nIndex, bool bStart);
00396 
00408     KSJ_API  int __stdcall KSJ_AECSetEnable ( int nIndex, bool bEnable  );
00409 
00419     KSJ_API  int __stdcall KSJ_AECGetEnable ( int nIndex, bool *pbEnable  );
00420 
00431     KSJ_API  int __stdcall KSJ_AECSetRange ( int nIndex, unsigned short usMin,  unsigned short usMax  );
00432 
00443     KSJ_API  int __stdcall KSJ_AECGetRange(int nIndex, unsigned short *pusMin, unsigned short *pusMax);
00444 
00454     KSJ_API  int __stdcall KSJ_AECGetCur(int nIndex, unsigned short *usCur);
00455 
00465     KSJ_API  int __stdcall KSJ_AGCSetEnable(int nIndex, bool bEnable);
00466 
00476     KSJ_API  int __stdcall KSJ_AGCGetEnable(int nIndex, bool *pbEnable);
00477 
00488     KSJ_API  int __stdcall KSJ_AGCSetRange(int nIndex, unsigned short usMin, unsigned short usMax);
00489 
00500     KSJ_API  int __stdcall KSJ_AGCGetRange(int nIndex, unsigned short *pusMin, unsigned short *pusMax);
00501 
00511     KSJ_API  int __stdcall KSJ_AGCGetCur(int nIndex, unsigned short *pusCur);
00512 
00522     KSJ_API  int __stdcall KSJ_GammaLutFileDownload(int nIndex, const TCHAR *pszKtbFile );
00523 
00534     KSJ_API  int __stdcall KSJ_GammaLutDataDownload(int nIndex, unsigned short *pData, int nWords );
00535 
00545     KSJ_API  int __stdcall KSJ_GammaLutSetEnable(int nIndex, bool bEnable   );
00546 
00556     KSJ_API  int __stdcall KSJ_GammaLutGetEnable(int nIndex, bool *pbEnable);
00557 
00558 
00559     enum KSJ_WATERMARKMODE 
00560     { 
00561         KSJ_WMM_TIMESTAMP, 
00562         KSJ_WMM_DISTINGUISH_EXTERNAL_TRIGGER, 
00563         KSJ_WMM_ANALYSIS_EXTERNAL_TRIGGER 
00564     };
00565 
00575     KSJ_API  int __stdcall KSJ_WaterMarkSetMode(int nIndex, KSJ_WATERMARKMODE WaterMarkMode);
00576 
00586     KSJ_API  int __stdcall KSJ_WaterMarkGetMode(int nIndex, KSJ_WATERMARKMODE *pWaterMarkMode);
00587 
00598     KSJ_API  int __stdcall KSJ_GetErrorInfo(IN int nErrorNo, OUT TCHAR pszErrorInfo[256]);
00599 
00610     KSJ_API  int __stdcall KSJ_PreviewGetFrameRate(int nIndex, float *fFrameRate);
00611 
00621     KSJ_API  int __stdcall KSJ_PreviewGetPausedData(int nIndex, unsigned char *pData);
00622 
00633     KSJ_API  int __stdcall KSJ_PreviewPause(int nIndex, bool bPause);
00634 
00647     KSJ_API  int __stdcall KSJ_PreviewGetPausedDataEx(int nIndex, unsigned char *pData, int *pnWidth, int *pnHeight, int *pnBitCount);
00648 
00650     enum KSJ_PREVIEWMODE// 枚举类型视频预览模式
00651     {
00652         PM_RAWDATA, 
00653         PM_RGBDATA  
00654     };
00655 
00666     KSJ_API  int __stdcall KSJ_PreviewGetDefaultMode(int nIndex, KSJ_PREVIEWMODE *pPreviewMode);
00667 
00678     KSJ_API  int __stdcall KSJ_PreviewSetMode(int nIndex, KSJ_PREVIEWMODE PreviewMode);
00679 
00690     KSJ_API  int __stdcall KSJ_PreviewGetMode(int nIndex, KSJ_PREVIEWMODE *pPreviewMode);
00691 
00701     KSJ_API  int __stdcall KSJ_PreviewSetCalibration(int nIndex, bool bEnable);
00702 
00712     KSJ_API  int __stdcall KSJ_PreviewGetCalibration(int nIndex, bool *pbEnable);
00713 
00723     KSJ_API  int __stdcall KSJ_CaptureSetCalibration(int nIndex, bool bEnable);
00724 
00734     KSJ_API  int __stdcall KSJ_CaptureGetCalibration(int nIndex, bool *pbEnable);
00735 
00736     enum KSJ_SNAPBUTTONSTATUS 
00737     {
00738         KSJ_UP,     
00739         KSJ_DOWN    
00740     };
00741 
00751     KSJ_API  int __stdcall KSJ_SnapButtonStatus(int nIndex, KSJ_SNAPBUTTONSTATUS *pSnapButtonStatus);
00752 
00767     KSJ_API  int __stdcall KSJ_HelperStretchBmp(unsigned char *pData, int nWidth, int nHeight, int nBitCount, unsigned char *pStretchData, int nStretchWidth, int nStretchHeight);
00768 
00778     KSJ_API  int __stdcall KSJ_HelperGetBmpFileHeaderSize(int nBitCount, int *pnTotalBytes);
00779 
00791     KSJ_API  int __stdcall KSJ_HelperGetBmpFileHeader(int nWidth, int nHeight, int nBitCount, void *pHeader);
00792 
00801     KSJ_API  int __stdcall KSJ_CaptureRgbDataToClipboard(int nIndex);
00802 
00803     KSJ_API  int __stdcall KSJ_GammaLutInfoProgram(int nIndex, unsigned short wValue);
00804     KSJ_API  int __stdcall KSJ_GammaLutInfoReadout(int nIndex, unsigned short *pValue);
00805 
00806     KSJ_API  int __stdcall KSJ_GammaLutFileProgram(int nIndex, TCHAR *pszFile);
00807     KSJ_API  int __stdcall KSJ_GammaLutDataProgram(int nIndex, unsigned short *pData, int nWords);
00808     KSJ_API  int __stdcall KSJ_GammaLutDataReadout(int nIndex, unsigned short *pData, int *pnWords);
00809 
00810 
00811 
00821     KSJ_API  int __stdcall KSJ_StreamReadRawData(int nIndex, unsigned char *pRawData);
00822 
00832     KSJ_API  int __stdcall KSJ_StreamReadRgbData(int nIndex, unsigned char *pRgbData);
00833 
00844     KSJ_API  int __stdcall KSJ_StreamReadRawDataEx(int nIndex, unsigned char *pRawData, unsigned int* pDataSize);
00845 
00856     KSJ_API  int __stdcall KSJ_StreamReadRgbDataEx(int nIndex, unsigned char *pRgbData, unsigned int* pDataSize);
00857 
00858 #if 0
00859 
00860 KSJ_API  int __stdcall KSJ_IsSupportLUT( int nIndex );                      
00861 KSJ_API  int __stdcall KSJ_EnableLUT( int nIndex, bool bEnable );           
00862 KSJ_API  int __stdcall KSJ_IsEnableLUT( int nIndex, bool *pbEnable );       
00863 
00864 
00865 // 这个函数会使相机将查找表写入到24LC1024的LUT_BASE_ADDRESS为基址的ulOffsetAddress为偏移的地址。
00866 KSJ_API  int __stdcall KSJ_ReadLUT ( int nIndex, unsigned short usOffsetAddress, int nBytes, unsigned char *pData   );
00867 // nBytes必须不大于64字节,usOffsetAddress 从0开始。
00868 KSJ_API  int __stdcall KSJ_WriteLUT( int nIndex, unsigned short usOffsetAddress, unsigned char *pData, int nBytes  );
00869 
00870 // 加载影射表
00871 // 这个表要通过凯视佳专用的影射表生成工具生成, 此函数会根据查找表的不同类型进行相应的加载
00872 // 对于12bit->8bit或者10bit->8bit映射表, 库函数会在设置16bit数据传输模式时,通过影射之后进行显示,此功能由PC端计算完成。
00873 KSJ_API  int __stdcall KSJ_LoadMapTableFile( int nIndex, bool bLoad, const TCHAR *pszTableName );    
00874 /*
00875 KSJ_API  int __stdcall KSJ_WhiteBalanceAutoSetOnce( int nIndex, bool bOnce );               /// You should call KSJ_WhiteBalanceSetEnable after call this function.
00876 KSJ_API  int __stdcall KSJ_WhiteBalanceAutoSetContinuous( int nIndex, bool bContinuous );   /// You should call KSJ_WhiteBalanceSetEnable after call this function.
00877 
00878 KSJ_API  int __stdcall KSJ_WhiteBalanceAutoGetOnce( int nIndex, bool *pbOnce );             /// You should call KSJ_WhiteBalanceSetEnable after call this function.
00879 KSJ_API  int __stdcall KSJ_WhiteBalanceAutoGetContinuous( int nIndex, bool *pbContinuous );
00880 
00881 KSJ_API  int __stdcall KSJ_WhiteBalanceSetEnable( int nIndex, bool bEnable );
00882 KSJ_API  int __stdcall KSJ_WhiteBalanceGetEnable( int nIndex, bool *pbEnable );
00883 */
00884 
00885 // 白平衡后再做颜色校正处理
00886 //enum KSJ_COLORCORRECTION { KSJCC_NONE = 0, KSJCC_WARMLIGHT, KSJCC_COOLLIGHT, KSJCC_SUNLIGHT, KSJCC_OV, KSJCC_KODAK };
00887 //KSJ_API  int __stdcall KSJ_ColorCorrectionSet( int nIndex, KSJ_COLORCORRECTION  ColorCorrect  );
00888 //KSJ_API  int __stdcall KSJ_ColorCorrectionGet( int nIndex, KSJ_COLORCORRECTION *pColorCorrect );
00889 
00890 
00891 // KSJ_API  int __stdcall KSJ_ColorCorrectionSetEnable( int nIndex, bool bEnable );
00892 // KSJ_API  int __stdcall KSJ_ColorCorrectionGetEnable( int nIndex, bool *pbEnable );
00893 
00894 
00895 
00896 #endif
00897 #ifdef __cplusplus
00898 }
00899 #endif
00900 
00901 #endif