#include #include #include #include #include using namespace icl; using namespace std; namespace{ std::vector remove_size(const vector &v){ vector r; for(unsigned int i=0;i devs = DCGrabber::getDeviceList(); if(!devs.size()){ ERROR_LOG("no device found!"); return -1; } if(pa_defined("-ld")){ for(unsigned int i=0;i("-d",0,0); if(devIdx >= devs.size()){ ERROR_LOG("device index "<< devIdx << "is invalid (allowed is 0-" << devs.size()-1 << ")" ); return -1; } DCDevice dev = devs[devIdx]; if(pa_defined("-s")){ printf("Device: %s \n",(dev.getModelID()+"(Vendor:"+dev.getVendorID()+")").c_str()); } DCDeviceFeatures f(dev); if(pa_defined("-lf")){ f.show(); } if(pa_defined("-o")){ ConfigFile config; config.setTitle("Camera Configuration File"); config.add("config.camera.modelID",dev.getModelID()); config.add("config.camera.vendorID",dev.getVendorID()); DCGrabber g(dev); std::vector ps = remove_size(g.getPropertyList()); static const string prefix = "config.params."; for(unsigned int i=0;i("-o",0,"")); } if(pa_defined("-i")){ ConfigFile config(pa_subarg("-i",0,"")); config.show(); string configFileModel = config.get("config.camera.modelID"); string configFileVendor = config.get("config.camera.vendorID"); if(dev.getModelID() != configFileModel){ ERROR_LOG("model-ID does not match! (config:" << configFileModel << " cam:" << dev.getModelID() << ")"); return -1; } if(dev.getVendorID() != configFileVendor){ ERROR_LOG("vendor-ID does not match! (config:" << configFileVendor << " cam:" << dev.getVendorID() << ")"); return -1; } DCGrabber g(dev); std::vector ps = remove_size(g.getPropertyList()); static const string prefix = "config.params."; for(unsigned int i=0;i(propName))); } }else if(type == "menu"){ if(config.contains(propName)){ g.setProperty(prop,config.get(propName)); } } } } return 0; }