/////////////////////////////////////////////////////////////////////////////
// Name: crvcamera_enum.cpp
// Purpose: Detect, enumerate and create camera object
// Author: Cesar Mauri Loba (cesar at crea-si dot com)
// Modified by:
// Created: 1/10/2010
// Copyright: (C) 2008 Cesar Mauri Loba - CREA Software Systems
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
/////////////////////////////////////////////////////////////////////////////
#ifdef WIN32
#include "crvcamera_wdm.h"
#define CAMCLASS CCameraWDM
#else
#include
#include "webcam.h"
#include "crvcamera_cv.h"
#include "crvcamera_v4l2.h"
#define CAMCLASS CCameraV4L2
#endif
#include "crvcamera_enum.h"
#include "simplelog.h"
//
// Static member functions
//
int CCameraEnum::GetNumDevices()
{
return CAMCLASS::GetNumDevices();
}
const char* CCameraEnum::GetDeviceName (unsigned int id)
{
return CAMCLASS::GetDeviceName((int) id);
}
#define _unused(x) ((void)x)
CCamera* CCameraEnum::GetCamera (unsigned int id, unsigned int width,
unsigned int height, float frameRate)
{
if ((int) id>= GetNumDevices()) return NULL;
try{
return new CAMCLASS(id, width, height, frameRate);
}
catch (camera_exception &e) {
slog_write (SLOG_PRIO_ERR, "error initializing camera: %s\n", e.what());
}
return NULL;
}