1
/***************************************************************************
6
copyright : (C) 2008 by mean/gruntster
7
***************************************************************************/
9
/***************************************************************************
11
* This program is free software; you can redistribute it and/or modify *
12
* it under the terms of the GNU General Public License as published by *
13
* the Free Software Foundation; either version 2 of the License, or *
14
* (at your option) any later version. *
16
***************************************************************************/
23
#include "ui_equaliser.h"
26
#include "ADM_toolkit/toolkit.hxx"
27
#include "ADM_assert.h"
28
#include "ADM_video/ADM_genvideo.hxx"
31
#include "DIA_flyDialog.h"
32
#include "DIA_flyDialogQt4.h"
33
#include "DIA_flyEqualiser.h"
34
#include "T_EqualiserPath.h"
35
#include "ADM_video/ADM_vidEqualizer.h"
36
#include "../ADM_toolkit/qtToolkit.h"
38
class Ui_equaliserWindow : public QDialog
44
flyEqualiser *flyDialog;
45
ADM_QCanvas *canvas, *histInCanvas, *histOutCanvas;
52
Ui_equaliserWindow(QWidget* parent, EqualizerParam *param, AVDMGenericVideoStream *in);
53
~Ui_equaliserWindow();
54
void gather(EqualizerParam *param);
56
Ui_EqualiserDialog ui;
59
void sliderUpdate(int value);
60
void pointChanged(int pointIndex, int value);
62
void slider1Changed(int value);
63
void slider2Changed(int value);
64
void slider3Changed(int value);
65
void slider4Changed(int value);
66
void slider5Changed(int value);
67
void slider6Changed(int value);
68
void slider7Changed(int value);
69
void slider8Changed(int value);
71
void spinBox1Changed(int value);
72
void spinBox2Changed(int value);
73
void spinBox3Changed(int value);
74
void spinBox4Changed(int value);
75
void spinBox5Changed(int value);
76
void spinBox6Changed(int value);
77
void spinBox7Changed(int value);
78
void spinBox8Changed(int value);
81
Ui_equaliserWindow::Ui_equaliserWindow(QWidget* parent, EqualizerParam *param, AVDMGenericVideoStream *in) : QDialog(parent)
85
_width = in->getInfo()->width;
86
_height = in->getInfo()->height;
89
canvas = new ADM_QCanvas(ui.frame, _width, _height);
90
histInCanvas = new ADM_QCanvas(ui.histInFrame, 256, 128);
91
histOutCanvas = new ADM_QCanvas(ui.histOutFrame, 256, 128);
93
flyDialog = new flyEqualiser(_width, _height, in, canvas, ui.horizontalSlider);
94
path = new EqualiserPath(ui.frame_4, flyDialog->crossSettings);
95
path->setMinimumSize(ui.frame_4->width(), ui.frame_4->height());
96
path->resize(ui.frame_4->width(), ui.frame_4->height());
98
connect(ui.horizontalSlider, SIGNAL(valueChanged(int)), this, SLOT(sliderUpdate(int)));
99
connect(path, SIGNAL(pointChanged(int, int)), this, SLOT(pointChanged(int, int)));
101
connect(ui.horizontalSlider1, SIGNAL(valueChanged(int)), this, SLOT(slider1Changed(int)));
102
connect(ui.horizontalSlider2, SIGNAL(valueChanged(int)), this, SLOT(slider2Changed(int)));
103
connect(ui.horizontalSlider3, SIGNAL(valueChanged(int)), this, SLOT(slider3Changed(int)));
104
connect(ui.horizontalSlider4, SIGNAL(valueChanged(int)), this, SLOT(slider4Changed(int)));
105
connect(ui.horizontalSlider5, SIGNAL(valueChanged(int)), this, SLOT(slider5Changed(int)));
106
connect(ui.horizontalSlider6, SIGNAL(valueChanged(int)), this, SLOT(slider6Changed(int)));
107
connect(ui.horizontalSlider7, SIGNAL(valueChanged(int)), this, SLOT(slider7Changed(int)));
108
connect(ui.horizontalSlider8, SIGNAL(valueChanged(int)), this, SLOT(slider8Changed(int)));
110
connect(ui.spinBox1, SIGNAL(valueChanged(int)), this, SLOT(spinBox1Changed(int)));
111
connect(ui.spinBox2, SIGNAL(valueChanged(int)), this, SLOT(spinBox2Changed(int)));
112
connect(ui.spinBox3, SIGNAL(valueChanged(int)), this, SLOT(spinBox3Changed(int)));
113
connect(ui.spinBox4, SIGNAL(valueChanged(int)), this, SLOT(spinBox4Changed(int)));
114
connect(ui.spinBox5, SIGNAL(valueChanged(int)), this, SLOT(spinBox5Changed(int)));
115
connect(ui.spinBox6, SIGNAL(valueChanged(int)), this, SLOT(spinBox6Changed(int)));
116
connect(ui.spinBox7, SIGNAL(valueChanged(int)), this, SLOT(spinBox7Changed(int)));
117
connect(ui.spinBox8, SIGNAL(valueChanged(int)), this, SLOT(spinBox8Changed(int)));
119
ui.horizontalSlider->setMaximum(in->getInfo()->nb_frames);
121
flyDialog->_cookie = this;
123
for (int i = 0; i < 8; i++)
124
pointChanged(i, param->_scaler[flyDialog->crossSettings[i]]);
126
flyDialog->sliderChanged();
129
Ui_equaliserWindow::~Ui_equaliserWindow()
135
delete histOutCanvas;
138
void Ui_equaliserWindow::sliderUpdate(int value)
140
flyDialog->sliderChanged();
144
void Ui_equaliserWindow::pointChanged(int pointIndex, int value)
146
QSlider *slider[] = {ui.horizontalSlider1, ui.horizontalSlider2, ui.horizontalSlider3, ui.horizontalSlider4,
147
ui.horizontalSlider5, ui.horizontalSlider6, ui.horizontalSlider7, ui.horizontalSlider8};
149
slider[pointIndex]->setValue(value);
153
void Ui_equaliserWindow::slider1Changed(int value)
155
ui.spinBox1->setValue(value);
156
path->updatePoint(0, value);
159
void Ui_equaliserWindow::slider2Changed(int value)
161
ui.spinBox2->setValue(value);
162
path->updatePoint(1, value);
165
void Ui_equaliserWindow::slider3Changed(int value)
167
ui.spinBox3->setValue(value);
168
path->updatePoint(2, value);
171
void Ui_equaliserWindow::slider4Changed(int value)
173
ui.spinBox4->setValue(value);
174
path->updatePoint(3, value);
177
void Ui_equaliserWindow::slider5Changed(int value)
179
ui.spinBox5->setValue(value);
180
path->updatePoint(4, value);
183
void Ui_equaliserWindow::slider6Changed(int value)
185
ui.spinBox6->setValue(value);
186
path->updatePoint(5, value);
189
void Ui_equaliserWindow::slider7Changed(int value)
191
ui.spinBox7->setValue(value);
192
path->updatePoint(6, value);
195
void Ui_equaliserWindow::slider8Changed(int value)
197
ui.spinBox8->setValue(value);
198
path->updatePoint(7, value);
201
void Ui_equaliserWindow::spinBox1Changed(int value)
203
ui.horizontalSlider1->setValue(value);
206
void Ui_equaliserWindow::spinBox2Changed(int value)
208
ui.horizontalSlider2->setValue(value);
211
void Ui_equaliserWindow::spinBox3Changed(int value)
213
ui.horizontalSlider3->setValue(value);
216
void Ui_equaliserWindow::spinBox4Changed(int value)
218
ui.horizontalSlider4->setValue(value);
221
void Ui_equaliserWindow::spinBox5Changed(int value)
223
ui.horizontalSlider5->setValue(value);
226
void Ui_equaliserWindow::spinBox6Changed(int value)
228
ui.horizontalSlider6->setValue(value);
231
void Ui_equaliserWindow::spinBox7Changed(int value)
233
ui.horizontalSlider7->setValue(value);
236
void Ui_equaliserWindow::spinBox8Changed(int value)
238
ui.horizontalSlider8->setValue(value);
241
void Ui_equaliserWindow::updateDisplay()
248
flyDialog->download();
249
flyDialog->process();
250
flyDialog->display();
252
histInCanvas->dataBuffer = (uint8_t*)flyDialog->histogramIn;
253
histInCanvas->repaint();
255
histOutCanvas->dataBuffer = (uint8_t*)flyDialog->histogramOut;
256
histOutCanvas->repaint();
261
void Ui_equaliserWindow::gather(EqualizerParam *param)
263
flyDialog->download();
264
memcpy(param->_scaler, flyDialog->scaler, 256 * sizeof(int));
267
uint8_t flyEqualiser::upload(void)
269
Ui_equaliserWindow *window = (Ui_equaliserWindow*)_cookie;
271
window->ui.spinBox1->setValue(points[0]);
272
window->ui.spinBox2->setValue(points[1]);
273
window->ui.spinBox3->setValue(points[2]);
274
window->ui.spinBox4->setValue(points[3]);
275
window->ui.spinBox5->setValue(points[4]);
276
window->ui.spinBox6->setValue(points[5]);
277
window->ui.spinBox7->setValue(points[6]);
278
window->ui.spinBox8->setValue(points[7]);
280
buildScaler(points, scaler);
283
uint8_t flyEqualiser::download(void)
285
Ui_equaliserWindow *window = (Ui_equaliserWindow*)_cookie;
287
points[0] = window->ui.spinBox1->value();
288
points[1] = window->ui.spinBox2->value();
289
points[2] = window->ui.spinBox3->value();
290
points[3] = window->ui.spinBox4->value();
291
points[4] = window->ui.spinBox5->value();
292
points[5] = window->ui.spinBox6->value();
293
points[6] = window->ui.spinBox7->value();
294
points[7] = window->ui.spinBox8->value();
299
uint8_t DIA_getEqualizer(EqualizerParam *param, AVDMGenericVideoStream *in)
303
Ui_equaliserWindow dialog(qtLastRegisteredDialog(), param, in);
304
qtRegisterDialog(&dialog);
306
if(dialog.exec() == QDialog::Accepted)
308
dialog.gather(param);
312
qtUnregisterDialog(&dialog);