/**
 * \brief display current exposure values are displayed
 */
void	ExposureWidget::setExposure(const Exposure& exposure) {
	// display exposure window parameters
	ui->originxField->setText(QString().setNum(exposure.frame.origin().x()));
	ui->originyField->setText(QString().setNum(exposure.frame.origin().y()));
	ui->widthField->setText(QString().setNum(exposure.frame.size().width()));
	ui->heightField->setText(QString().setNum(exposure.frame.size().height()));

	// normalize the exposure to so that it fits into the constraints of
	// the exposure time spinner
	double	exposuretime = exposure.exposuretime;
	exposuretime = trunc(1000. * exposuretime) / 1000.;
	if (exposuretime > 3600) {
		exposuretime = 3600;
	}
	if (exposuretime < EXPOSURE_MIN) {
		exposuretime = EXPOSURE_MIN;
	}
	ui->timeSpinBox->setValue(exposure.exposuretime);

	// find the right binning mode to display in the binning mode
	// combo box
	BinningSet	modes = ccd->getInfo().modes();
	BinningSet::const_iterator	i;
	int	binning_entry = 0;
	for (i = modes.begin(); i != modes.end(); i++) {
		if (exposure.mode == *i) {
			break;
		}
		binning_entry++;
	}
	ui->binningComboBox->setCurrentIndex(binning_entry);
}
astro::camera::BinningSet	convert(const BinningSet& binningset) {
	astro::camera::BinningSet	result;
	for (auto ptr = binningset.begin(); ptr != binningset.end(); ptr++) {
		result.insert(convert(*ptr));
	}
	return result;
}