00001 #ifndef __KSJ_API_MATRIX_H__
00002 #define __KSJ_API_MATRIX_H__
00003 
00004 // #pragma message("Include KSJApiMatrix.h") 
00005 
00006 #ifdef KSJAPI_EXPORTS
00007 #define KSJ_API __declspec(dllexport)
00008 #elif defined KSJAPI_STATIC
00009 #define KSJ_API
00010 #else
00011 #define KSJ_API __declspec(dllimport)
00012 #endif
00013 
00014 
00015 #ifdef __cplusplus
00016 extern "C"{
00017 #endif
00018 
00022     enum KSJ_WB_MODE
00023     {
00024         KSJ_WB_DISABLE,            
00025         KSJ_SWB_PRESETTINGS,       
00026         KSJ_SWB_AUTO_ONCE,         
00027         KSJ_SWB_AUTO_CONITNUOUS,   
00028         KSJ_SWB_MANUAL,            
00029         KSJ_HWB_PRESETTINGS,       
00030         KSJ_HWB_AUTO_ONCE,         
00031         KSJ_HWB_AUTO_CONITNUOUS,   
00032         KSJ_HWB_MANUAL             
00033     };
00034 
00045     KSJ_API  int __stdcall KSJ_WhiteBalanceSet(int nIndex, KSJ_WB_MODE WbMode);
00046     
00057     KSJ_API  int __stdcall KSJ_WhiteBalanceGet(int nIndex, KSJ_WB_MODE *pWbMode);
00058 
00059 
00072     KSJ_API  int __stdcall KSJ_WhiteBalanceMatrixSet(int nIndex, float fMatrix[3]);
00073     
00084     KSJ_API  int __stdcall KSJ_WhiteBalanceMatrixGet(int nIndex, float fMatrix[3]);
00085 
00097     typedef void(__stdcall *KSJ_WB_CALLBACK)(float fMatrix[3], void *lpContext);
00098     
00110     KSJ_API  int __stdcall KSJ_WhiteBalanceAutoSetCallBack(int nIndex, KSJ_WB_CALLBACK    pfCallBack, void *lpContext);      
00111 
00125     // Call Callback Function When KSJ_AWB_AUTO_ONCE or KSJ_AWB_AUTO_CONITNUOUS Done. Finall Matrix will Return.
00126     typedef void(__stdcall *KSJ_WB_CALLBACK_EX)(float fMatrixR, float fMatrixG, float fMatrixB, void *lpContext);
00127     
00140     KSJ_API  int __stdcall KSJ_WhiteBalanceAutoSetCallBackEx(int nIndex, KSJ_WB_CALLBACK_EX pfCallBackEx, void *lpContext);
00141 
00153     KSJ_API  int __stdcall KSJ_WhiteBalanceAutoSet(int nIndex, int nPhi);
00154 
00165     KSJ_API  int __stdcall KSJ_WhiteBalanceAutoGet(int nIndex, int *pnPhi);
00166 
00168     enum KSJ_COLOR_TEMPRATURE
00169     {
00170         KSJ_CT_5000K,   
00171         KSJ_CT_6500K,   
00172         KSJ_CT_2800K    
00173     };
00174     
00186     KSJ_API  int __stdcall KSJ_WhiteBalancePresettingSet(int nIndex, KSJ_COLOR_TEMPRATURE WbPresetting);
00187     
00198     KSJ_API  int __stdcall KSJ_WhiteBalancePresettingGet(int nIndex, KSJ_COLOR_TEMPRATURE *pWbPresetting);
00199 
00201     enum KSJ_CCM_MODE
00202     {
00203         KSJ_CCM_DISABLE,         
00204         KSJ_SCCM_PRESETTINGS,    
00205         KSJ_SCCM_MANUAL,         
00206         KSJ_HCCM_PRESETTINGS,    
00207         KSJ_HCCM_MANUAL          
00208     };
00209 
00220     KSJ_API  int __stdcall KSJ_ColorCorrectionSet(int nIndex, KSJ_CCM_MODE CcmMode);
00221     
00232     KSJ_API  int __stdcall KSJ_ColorCorrectionGet(int nIndex, KSJ_CCM_MODE *pCcmMode);
00233 
00234 
00249     KSJ_API  int __stdcall KSJ_ColorCorrectionMatrixSet(int nIndex, float fMatrix[3][3]);
00250     
00261     KSJ_API  int __stdcall KSJ_ColorCorrectionMatrixGet(int nIndex, float fMatrix[3][3]);
00262 
00263 
00274     KSJ_API  int __stdcall KSJ_ColorCorrectionPresettingSet(int nIndex, KSJ_COLOR_TEMPRATURE CcmPresetting);
00275     
00286     KSJ_API  int __stdcall KSJ_ColorCorrectionPresettingGet(int nIndex, KSJ_COLOR_TEMPRATURE *pCcmPresetting);
00290 #ifdef __cplusplus
00291 }
00292 #endif
00293 
00294 #endif