#include "contrastdialog.h"
#include <qslider.h>

void ContrastDialog::calcCurve() {
	std::valarray<int> curve;
	curve.resize(256);
	
	QPoint p1(0,0 + brightnessSlider->value() - contrastSlider->value());
	QPoint p2(256,256 + brightnessSlider->value() + contrastSlider->value());
	
	double m = (p1.y() - p2.y()) / (double)(p1.x() - p2.x());
	
	for (int i = 0; i < 256; ++i) {
		curve[i] = QMIN(255, QMAX(0, int(i * m) + p1.y()));
	}
	
	emit curveChanged(curve);
}

void ContrastDialog::showEvent(QShowEvent*) {
	brightnessSlider->setValue(0);
	contrastSlider->setValue(0);
}
