帖两段代码,分别获取CMOS和USB摄像头的设备名称:
static const char* getCMOSCameraDeviceName()
{
const char* const devInfoNames[DEVICE_MAX] = {
"/sys/class/video4linux/video0/name"
, "/sys/class/video4linux/video2/name"};
const char* const devNames[DEVICE_MAX] = {
"/dev/video0"
, "/dev/video2"};
FILE* f;
int i;
for (i=0; i<DEVICE_MAX;i++) {
f = fopen( devInfoNames, "r" );
if (f == NULL) {
continue;
}
char buff[256] = {0};
int ret = 0;
if (fread(buff, 1, 255, f) <= 0) {
continue;
}
fclose( f );
const char* fstr = "s3c-fimc";
if (strstr(buff, fstr) != NULL) {
break;
}
}
if (i>=DEVICE_MAX) {
return 0;
}
return devNames;
}
static const char* getUSBCameraDeviceName()
{
const char* const devInfoNames[2] = {"/sys/class/video4linux/video0/name"
, "/sys/class/video4linux/video3/name"};
const char* const devNames[2] = {"/dev/video0"
, "/dev/video3"};
FILE* f;
int i;
for (i=0; i<2; i++) {
f = fopen( devInfoNames, "r" );
if (f == NULL) {
continue;
}
char buff[256] = {0};
int ret = 0;
if (fread(buff, 1, 255, f) <= 0) {
continue;
}
fclose( f );
if (strstr(buff, "s3c-fimc") == NULL) {
break;
}
}
if (i>=2) {
return 0;
}
return devNames;
}