使用佳能相机官方sdk进行再次封装,实现如下功能:
//python回调函数接口
typedef void (*PROPERTYEVENT_CALLBACK)(EdsUInt32 inEvent, EdsUInt32 inPropertyID, EdsUInt32 inParam);
PROPERTYEVENT_CALLBACK g_property_callback[MAX_CAMERA];
typedef void (*OBJECTEVENT_CALLBACK)(EdsUInt32 inEvent);
OBJECTEVENT_CALLBACK g_object_callback[MAX_CAMERA];
typedef void (*STATEEVENT_CALLBACK)(EdsUInt32 inEvent, EdsUInt32 inParam);
STATEEVENT_CALLBACK g_state_callback[MAX_CAMERA];
//初始化
EDSDK_API EdsError Init(EdsUInt16 index);
EDSDK_API EdsError UnInit(EdsUInt16 index);
//拍照
EDSDK_API EdsError HalfShutterAFC(EdsUInt16 index);
EDSDK_API EdsError TakePicture(EdsUInt16 index, char** path);
EDSDK_API EdsError TakePictureNoAF(EdsUInt16 index, char** path);
//录像
EDSDK_API EdsError StartVideo(EdsUInt16 index);
EDSDK_API EdsError StopVideo(EdsUInt16 index, char** path);
//取景器实时预览
EDSDK_API EdsError StartLiveView(EdsUInt16 index);
EDSDK_API EdsError EndLiveView(EdsUInt16 index);
EDSDK_API EdsError DownloadEvfImage(EdsUInt16 index, void** pointer, EdsUInt64* length);
//调焦
EDSDK_API EdsError SetCameraFocus(EdsUInt16 index, short focus);
EDSDK_API void SetFocusCount(EdsUInt16 index, long count);
EDSDK_API unsigned int CalFocus(unsigned short objectDistance);
EDSDK_API void AutoFocusInit(EdsUInt16 index);
EDSDK_API void AutoFocus(EdsUInt16 index, unsigned int objectDistance);
//属性
EDSDK_API EdsError SetProperty(EdsUInt16 index, EdsPropertyID propertyID, EdsInt32 property);
EDSDK_API EdsError GetProperty(EdsUInt16 index, EdsPropertyID propertyID, EdsUInt32* data);
EDSDK_API EdsError GetEvent();
//属性衍生
//切换拍照、录像模式
EDSDK_API EdsError SetDevMode(EdsUInt16 index, eCameraMode mode);
EDSDK_API EdsError GetDevMode(EdsUInt16 index, EdsUInt16* mode);
//拍摄AE模式
EDSDK_API EdsError SetMovieAEMode(EdsUInt16 index, eAEMode mode);
EDSDK_API EdsError GetMovieAEMode(EdsUInt16 index, EdsUInt32* mode);
//AF模式
EDSDK_API EdsError SetAFMode(EdsUInt16 index, eAFMode mode);
EDSDK_API EdsError GetAFMode(EdsUInt16 index, EdsUInt32* mode);
。。。。。。