From 16c5c10cfbcbe8d1fefbbae87c1d91cfaa1ea0a5 Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Sun, 20 Jul 2014 17:35:23 +0200 Subject: [PATCH] qv4l2: set the new value immediately when updating a control range. Signed-off-by: Hans Verkuil --- utils/qv4l2/ctrl-tab.cpp | 5 +++-- utils/qv4l2/qv4l2.cpp | 2 +- utils/qv4l2/qv4l2.h | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/utils/qv4l2/ctrl-tab.cpp b/utils/qv4l2/ctrl-tab.cpp index ccc7b68..a1d34e9 100644 --- a/utils/qv4l2/ctrl-tab.cpp +++ b/utils/qv4l2/ctrl-tab.cpp @@ -636,7 +636,7 @@ void ApplicationWindow::updateCtrl(unsigned id) } } -void ApplicationWindow::updateCtrlRange(unsigned id) +void ApplicationWindow::updateCtrlRange(unsigned id, __s32 new_val) { const v4l2_queryctrl &qctrl = m_ctrlMap[id]; QLineEdit *edit; @@ -651,11 +651,12 @@ void ApplicationWindow::updateCtrlRange(unsigned id) slider->setMinimum(qctrl.minimum); slider->setMaximum(qctrl.maximum); slider->setSingleStep(qctrl.step); - slider->setSliderPosition(qctrl.default_value); + slider->setSliderPosition(new_val); QSpinBox *spin = static_cast(m_widgetMap[id]); spin->setRange(qctrl.minimum, qctrl.maximum); spin->setSingleStep(qctrl.step); + spin->setValue(new_val); break; } diff --git a/utils/qv4l2/qv4l2.cpp b/utils/qv4l2/qv4l2.cpp index 6c11efe..7fd5753 100644 --- a/utils/qv4l2/qv4l2.cpp +++ b/utils/qv4l2/qv4l2.cpp @@ -363,7 +363,7 @@ void ApplicationWindow::ctrlEvent() if (m_sliderMap.find(ev.id) != m_sliderMap.end()) m_sliderMap[ev.id]->setDisabled(m_ctrlMap[ev.id].flags & CTRL_FLAG_DISABLED); if (ev.u.ctrl.changes & V4L2_EVENT_CTRL_CH_RANGE) - updateCtrlRange(ev.id); + updateCtrlRange(ev.id, ev.u.ctrl.value); switch (m_ctrlMap[ev.id].type) { case V4L2_CTRL_TYPE_INTEGER: case V4L2_CTRL_TYPE_INTEGER_MENU: diff --git a/utils/qv4l2/qv4l2.h b/utils/qv4l2/qv4l2.h index dc3b5e4..dcc7b03 100644 --- a/utils/qv4l2/qv4l2.h +++ b/utils/qv4l2/qv4l2.h @@ -173,7 +173,7 @@ private: void finishGrid(QGridLayout *grid, unsigned ctrl_class); void addCtrl(QGridLayout *grid, const struct v4l2_queryctrl &qctrl); void updateCtrl(unsigned id); - void updateCtrlRange(unsigned id); + void updateCtrlRange(unsigned id, __s32 val); void refresh(unsigned ctrl_class); void refresh(); void makeSnapshot(unsigned char *buf, unsigned size); -- 2.7.4