某个摄像头模块的Demo头文件,学习一下头文件规范
例1、
#ifndef __HCAMERA_H__
#define __HCAMERA_H__
#define HCAMERA_API extern "C" __declspec(dllexport)
/// 常量、结构体定义
#define VIDEOFORMAT_MJPG 0
#define VIDEOFORMAT_YUY2 1
#define VIDEOFORMAT_RGB24 2
#define VIDEOFORMAT_RGB32 3
typedef struct _HFormatResolutionInfo
{
int videoFormat; // 视频格式
int videoW; // 视频宽度
int videoH; // 视频高度
} HFormatResolutionInfo;
typedef enum {
SampleGrabberMode_NonCallback =0,
SampleGrabberMode_BufferCB,
SampleGrabberMode_SampleCB
} SampleGrabberMode;
/// 函数定义
///
/// 宽窄字符转换
///
HCAMERA_API void hConvertWCharToChar(wchar_t* wStr, char* cStr);
HCAMERA_API void hConvertCharToWChar(char* cStr, wchar_t* wStr);
///
/// 枚举/释放视频设备(枚举时返回已连接的视频设备数量,-1表示错误,两个函数必须成对使用)
///
HCAMERA_API int hEnumVideoDevice(void);
HCAMERA_API void hFreeVideoDevice(void);
#endif // __HCAMERA_H__
例2、
#pragma once
#define DT_API extern "C"
#ifdef SNCAMDLL_EXPORTS
#define SNCAMDLL_API __declspec(dllexport)
#else
#define SNCAMDLL_API __declspec(dllimport)
#endif
#ifndef IN
#define IN
#endif
#ifndef OUT
#define OUT
#endif
typedef enum tagDS_CAMERA_STATUS
{
STATUS_OK = 1, // 动作成功
STATUS_INTERNAL_ERROR = 0, // 内部错误
STATUS_NO_DEVICE_FIND = -1, // 没有发现相机
STATUS_NOT_ENOUGH_SYSTEM_MEMORY = -2, // 没有足够系统内存
STATUS_HW_IO_ERROR = -3, // 硬件IO错误
STATUS_PARAMETER_INVALID = -4, // 参数无效
STATUS_PARAMETER_OUT_OF_BOUND = -5, // 参数越界
STATUS_FILE_CREATE_ERROR = -6, // 创建文件失败
STATUS_FILE_INVALID = -7, // 文件格式无效
STATUS_NO_RESOLUTION_FOUND=-8, // 不支持此格式
STATUS_NO_CAM_INIT=-9 // 没有初始化
}DS_CAMERA_STATUS;
typedef enum tagDS_COLORSPACE
{
COLORSPACE_YUY2,
COLORSPACE_MJPG,
COLORSPACE_RGB24,
COLORSPACE_I420
}DS_COLORSPACE;
typedef enum tagDS_CAMERA_PROPERTY
{
PROPERTY_Brightness = 0, // 亮度
PROPERTY_Contrast = 1, // 对比度
PROPERTY_Hue = 2, // 色调
PROPERTY_Saturation = 3, // 饱和度
PROPERTY_Sharpness = 4, // 清晰度
PROPERTY_Gamma = 5, // 伽马
PROPERTY_ColorEnable = 6, // 黑白
PROPERTY_WhiteBalance = 7, // 白平衡
PROPERTY_BacklightCompensation = 8, // 逆光对比
PROPERTY_Gain = 9 // 增益
} DS_CAMERA_PROPERTY;
DT_API SNCAMDLL_API DS_CAMERA_STATUS CameraControlGet(BYTE CamNum,
DS_CAMERA_CONTROL uiControl,
OUT LONG* lValue,
OUT DS_CONTROL_FLAGS* Flags
);
DT_API SNCAMDLL_API DS_CAMERA_STATUS CameraControlSet(BYTE CamNum,
DS_CAMERA_CONTROL uiControl,
IN LONG lValue,
IN DS_CONTROL_FLAGS Flags
);