/** Reconfigure features for already open device. * * For each supported feature that has changed, update the device. * * @pre feature_set_ initialized * @pre oldconfig_ has previous settings * * @param newconfig [in,out] configuration parameters, may be updated * to conform with device restrictions. * * @post oldconfig_ settings updated */ void Features::reconfigure(Config *newconfig) { updateIfChanged(DC1394_FEATURE_BRIGHTNESS, oldconfig_.auto_brightness, &newconfig->auto_brightness, oldconfig_.brightness, &newconfig->brightness); updateIfChanged(DC1394_FEATURE_EXPOSURE, oldconfig_.auto_exposure, &newconfig->auto_exposure, oldconfig_.exposure, &newconfig->exposure); updateIfChanged(DC1394_FEATURE_FOCUS, oldconfig_.auto_focus, &newconfig->auto_focus, oldconfig_.focus, &newconfig->focus); updateIfChanged(DC1394_FEATURE_GAIN, oldconfig_.auto_gain, &newconfig->auto_gain, oldconfig_.gain, &newconfig->gain); updateIfChanged(DC1394_FEATURE_GAMMA, oldconfig_.auto_gamma, &newconfig->auto_gamma, oldconfig_.gamma, &newconfig->gamma); updateIfChanged(DC1394_FEATURE_HUE, oldconfig_.auto_hue, &newconfig->auto_hue, oldconfig_.hue, &newconfig->hue); updateIfChanged(DC1394_FEATURE_IRIS, oldconfig_.auto_iris, &newconfig->auto_iris, oldconfig_.iris, &newconfig->iris); updateIfChanged(DC1394_FEATURE_PAN, oldconfig_.auto_pan, &newconfig->auto_pan, oldconfig_.pan, &newconfig->pan); updateIfChanged(DC1394_FEATURE_SATURATION, oldconfig_.auto_saturation, &newconfig->auto_saturation, oldconfig_.saturation, &newconfig->saturation); updateIfChanged(DC1394_FEATURE_SHARPNESS, oldconfig_.auto_sharpness, &newconfig->auto_sharpness, oldconfig_.sharpness, &newconfig->sharpness); updateIfChanged(DC1394_FEATURE_SHUTTER, oldconfig_.auto_shutter, &newconfig->auto_shutter, oldconfig_.shutter, &newconfig->shutter); updateIfChanged(DC1394_FEATURE_TRIGGER, oldconfig_.auto_trigger, &newconfig->auto_trigger, oldconfig_.trigger, &newconfig->trigger); // White balance has two component parameters: Blue/U and Red/V. updateIfChanged(DC1394_FEATURE_WHITE_BALANCE, oldconfig_.auto_white_balance, &newconfig->auto_white_balance, oldconfig_.white_balance_BU, &newconfig->white_balance_BU, oldconfig_.white_balance_RV, &newconfig->white_balance_RV); updateIfChanged(DC1394_FEATURE_ZOOM, oldconfig_.auto_zoom, &newconfig->auto_zoom, oldconfig_.zoom, &newconfig->zoom); // reconfigure trigger class, if supported by this camera if (hasTrigger()) trigger_->reconfigure(newconfig); strobe_->reconfigure(newconfig); // save modified values oldconfig_ = *newconfig; }
void TextEditorWindow::exportTrigger() { if (hasTrigger()) { TextBuffer* buf=getTextBuffer(); String str=T("\n; "); str<<getTrigger()->toXml() << T("\n"); buf->insertTextAtCursor(str); buf->colorizeAfterChange(CommandIDs::EditorPaste); buf->setFlag(EditFlags::NeedsSave); } }
/** Query and set all features for newly opened (or reopened) device. * * @param newconfig [in,out] configuration parameters, updated * to conform with device restrictions. * @return true if successful * * @post feature_set_ initialized, if successful * @post oldconfig_ settings available, if successful */ bool Features::initialize(Config *newconfig) { bool retval = true; // query all features for this device if (DC1394_SUCCESS != dc1394_feature_get_all(camera_, &feature_set_)) { ROS_ERROR("could not get camera feature information"); return false; } // validate and set configured value of each supported feature configure(DC1394_FEATURE_BRIGHTNESS, &newconfig->auto_brightness, &newconfig->brightness); configure(DC1394_FEATURE_EXPOSURE, &newconfig->auto_exposure, &newconfig->exposure); configure(DC1394_FEATURE_FOCUS, &newconfig->auto_focus, &newconfig->focus); configure(DC1394_FEATURE_GAIN, &newconfig->auto_gain, &newconfig->gain); configure(DC1394_FEATURE_GAMMA, &newconfig->auto_gamma, &newconfig->gamma); configure(DC1394_FEATURE_HUE, &newconfig->auto_hue, &newconfig->hue); configure(DC1394_FEATURE_IRIS, &newconfig->auto_iris, &newconfig->iris); configure(DC1394_FEATURE_PAN, &newconfig->auto_pan, &newconfig->pan); configure(DC1394_FEATURE_SATURATION, &newconfig->auto_saturation, &newconfig->saturation); configure(DC1394_FEATURE_SHARPNESS, &newconfig->auto_sharpness, &newconfig->sharpness); configure(DC1394_FEATURE_SHUTTER, &newconfig->auto_shutter, &newconfig->shutter); configure(DC1394_FEATURE_TRIGGER, &newconfig->auto_trigger, &newconfig->trigger); configure(DC1394_FEATURE_WHITE_BALANCE, &newconfig->auto_white_balance, &newconfig->white_balance_BU, &newconfig->white_balance_RV); configure(DC1394_FEATURE_ZOOM, &newconfig->auto_zoom, &newconfig->zoom); // set up trigger class, if supported by this camera if (hasTrigger()) retval = trigger_->initialize(newconfig); retval = strobe_->initialize(newconfig); // save configured values oldconfig_ = *newconfig; return retval; }