7#include "ui_dc1394slider.h"
31 int value = ui->m_Slider->value();
32 double val = (double)value/1000;
33 int w = ui->m_Slider->width() - 30;
34 double newX = ((double)w/(
double)1000) * (
double)value;
35 ui->lblValue->setGeometry(newX,0,30,20);
36 ui->lblValue->setText(QString(
"%L1").arg(val,0,
'f',3));
41 QWidget::resizeEvent(event);
49 this->controlThread = controlThread;
51 connect(controlThread,
SIGNAL(sliderHasFeatureDone(QObject*,
bool)),
52 this,SLOT(onHasFeatureDone(QObject*,
bool)),Qt::QueuedConnection);
54 connect(controlThread,
SIGNAL(sliderRefreshDone(QObject*,
bool,
bool,
bool,
bool,
bool,
bool,
double)),
55 this,SLOT(onRefreshDone(QObject*,
bool,
bool,
bool,
bool,
bool,
bool,
double)),Qt::QueuedConnection);
57 connect(controlThread,
SIGNAL(sliderSetFeatureDC1394Done(QObject*,
double)),
58 this,SLOT(onSliderSetFeatureDone(QObject*,
double)),Qt::QueuedConnection);
60 connect(controlThread,
SIGNAL(sliderRadioAutoDone(QObject*,
bool,
bool)),
61 this,SLOT(onRadioAutoDone(QObject*,
bool,
bool)),Qt::QueuedConnection);
63 connect(controlThread,
SIGNAL(sliderPowerDone(QObject*,
bool,
bool,
bool,
bool)),
64 this,SLOT(onPowerDone(QObject*,
bool,
bool,
bool,
bool)),Qt::QueuedConnection);
66 connect(controlThread,
SIGNAL(sliderOnePushDone(QObject*,
double)),
67 this,SLOT(onOnePushDone(QObject*,
double)),Qt::QueuedConnection);
72 ui->label->setTitle(
m_Name);
77 list.append(qVariantFromValue((
void*)
this));
84void DC1394Slider::onHasFeatureDone(QObject *slider,
bool hasFeature)
102void DC1394Slider::connectWidgets()
104 connect(ui->m_Slider,
SIGNAL(valueChanged(
int)),
this,SLOT(onSliderValueChanged(
int)));
105 connect(ui->m_Slider,
SIGNAL(sliderPressed()),
this,SLOT(onSliderPressed()));
106 connect(ui->m_Slider,
SIGNAL(sliderReleased()),
this,SLOT(onSliderReleased()));
108 connect(ui->m_OnePush,
SIGNAL(clicked()),
this,SLOT(onOnePushClicked()));
109 connect(ui->pRBa,
SIGNAL(toggled(
bool)),
this,SLOT(onRadioAuto(
bool)));
111 connect(ui->pPwr,
SIGNAL(toggled(
bool)),
this,SLOT(onPower(
bool)));
114void DC1394Slider::disconnectWidgets()
116 disconnect(ui->m_Slider,
SIGNAL(valueChanged(
int)),
this,SLOT(onSliderValueChanged(
int)));
117 disconnect(ui->m_Slider,
SIGNAL(sliderPressed()),
this,SLOT(onSliderPressed()));
118 disconnect(ui->m_Slider,
SIGNAL(sliderReleased()),
this,SLOT(onSliderReleased()));
119 disconnect(ui->m_OnePush,
SIGNAL(clicked()),
this,SLOT(onOnePushClicked()));
120 disconnect(ui->pRBa,
SIGNAL(toggled(
bool)),
this,SLOT(onRadioAuto(
bool)));
122 disconnect(ui->pPwr,
SIGNAL(toggled(
bool)),
this,SLOT(onPower(
bool)));
134 list.append(qVariantFromValue((
void*)
this));
135 list.append(QVariant(f));
139void DC1394Slider::onRefreshDone(QObject *slider,
bool bON,
bool bAuto,
bool bHasOnOff,
bool bHasAuto,
bool bHasManual,
bool bHasOnePush,
double val)
146 ui->pPwr->setChecked(bON);
147 ui->pPwr->setEnabled(bHasOnOff || bON);
148 ui->pRBa->setEnabled(bON && bHasAuto);
149 ui->pRBm->setEnabled(bON && bHasManual);
151 ui->m_Slider->setEnabled(bHasManual && !bAuto);
152 ui->lblValue->setEnabled(bHasManual && !bAuto);
153 ui->m_OnePush->setEnabled(bON && bHasOnePush);
156 ui->pRBa->setChecked(
true);
158 ui->pRBm->setChecked(
true);
164 ui->m_Slider->update();
179 list.append(QVariant((
double)ui->m_Slider->value() / 1000));
180 list.append(QVariant(ui->pRBa->isChecked()));
181 list.append(QVariant(ui->pPwr->isChecked()));
186void DC1394Slider::onSliderPressed()
191void DC1394Slider::onSliderReleased()
195 double val = (double)ui->m_Slider->value()/1000;
198 list.append(qVariantFromValue((
void*)
this));
200 list.append(QVariant(val));
204void DC1394Slider::onSliderValueChanged(
int value)
206 double val = (double)value/1000;
207 int w = ui->m_Slider->width() - 30;
208 double newX = ((double)w/(
double)1000) * (
double)value;
209 ui->lblValue->setGeometry(newX,0,30,20);
210 ui->lblValue->setText(QString(
"%L1").arg(val,0,
'f',3));
213void DC1394Slider::onSliderSetFeatureDone(QObject *slider,
double val)
218 yDebug(
"%s new value %lf\n",
m_Name.toLatin1().data(),val);
221void DC1394Slider::onOnePushClicked()
225 list.append(qVariantFromValue((
void*)
this));
230void DC1394Slider::onOnePushDone(QObject *slider,
double val)
247void DC1394Slider::onRadioAuto(
bool toggled)
252 list.append(qVariantFromValue((
void*)
this));
254 list.append(QVariant(bAuto));
258void DC1394Slider::onRadioAutoDone(QObject *slider,
bool bON,
bool bAuto)
264 ui->m_Slider->setEnabled(bON && !bAuto);
265 ui->lblValue->setEnabled(bON && !bAuto);
266 yDebug(
"%s\n",ui->pRBa->isChecked() ?
"auto":
"man");
271void DC1394Slider::onPower(
bool checked)
276 list.append(qVariantFromValue((
void*)
this));
278 list.append(QVariant(bON));
288 ui->pRBa->setEnabled(bON &&
hasAuto);
290 ui->m_Slider->setEnabled(bON && ui->pRBm->isChecked());
291 ui->lblValue->setEnabled(bON && ui->pRBm->isChecked());
293 yDebug(
"power %s\n", ui->pPwr->isChecked() ?
"on" :
"off");
300 ui->m_Slider->setValue(val * 1000);
301 onSliderValueChanged(val * 1000);
int SIGNAL(int pid, int signum)
void featureDisabled(QObject *)
void set_value(double val)
yarp::dev::cameraFeature_id_t m_Feature
DC1394Slider(QWidget *parent=nullptr)
void resizeEvent(QResizeEvent *event)
bool init(yarp::dev::cameraFeature_id_t feature, char *label, DC1394Thread *controlThread)
void doTask(threadFunction)