#include #include WDMCap::WDMCap(int deviceIndex) : mDriverIndex(deviceIndex) { initialize(); } WDMCap::~WDMCap() { } void WDMCap::setCaptureFileName(const String &strPathCaptureFile) { BmpCap::setCaptureFileName(strPathCaptureFile); } const String &WDMCap::getCaptureFileName(void)const { return BmpCap::getCaptureFileName(); } bool WDMCap::initialize(void) { String pathOutputFileName="capture.jpg"; VidReg vidReg; vidReg.setCaptureFile(pathOutputFileName); vidReg.setSequencing(false); VidCap::getDrivers(mDriverInfoBlock); if(!mDriverInfoBlock.size()) { message("No drivers found! drivercount",mDriverInfoBlock.size()); return false; } if(mDriverIndex>=mDriverInfoBlock.size()) { message("[WDMCap::initilialize]Driver not found! device",mDriverIndex); return false; } showSettings(); mControl=::new Control(); mControl.disposition(PointerDisposition::Delete); mControl->createControl("BUTTON","",0,Rect(0,0,vidReg.getCaptureWidth(),vidReg.getCaptureHeight()),::GetDesktopWindow(),ControlID); BmpCap::initialize(mControl->getHandle(),mDriverIndex); if(!connect(mDriverIndex)) { ::printf("\007"); message("[WDMCap::initilialize]Failed to connect to device",mDriverInfoBlock[mDriverIndex].driverName()); return false; } saveFrames(true); return isConnected(); } void WDMCap::showSettings(void) { VidReg vidReg; message("[WDMCap::initilialize]Capture File",vidReg.getCaptureFile()); message("[WDMCap::initilialize]Sequencing",vidReg.getSequencing()?"true":"false"); message("[WDMCap::initilialize]Preview Rate",vidReg.getPreviewRate()); message("[WDMCap::initilialize]Preview Width",vidReg.getPreviewWidth()); message("[WDMCap::initilialize]Preview Height",vidReg.getPreviewHeight()); message("[WDMCap::initilialize]Capture Width",vidReg.getCaptureWidth()); message("[WDMCap::initilialize]Capture Height",vidReg.getCaptureHeight()); message("[WDMCap::initilialize]Capture Quality",vidReg.getQuality()); for(int index=0;index