qv4l2: set the new value immediately when updating a control range.
authorHans Verkuil <hans.verkuil@cisco.com>
Sun, 20 Jul 2014 15:35:23 +0000 (17:35 +0200)
committerHans Verkuil <hans.verkuil@cisco.com>
Sun, 20 Jul 2014 15:35:23 +0000 (17:35 +0200)
Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
utils/qv4l2/ctrl-tab.cpp
utils/qv4l2/qv4l2.cpp
utils/qv4l2/qv4l2.h

index ccc7b68..a1d34e9 100644 (file)
@@ -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<QSpinBox *>(m_widgetMap[id]);
                        spin->setRange(qctrl.minimum, qctrl.maximum);
                        spin->setSingleStep(qctrl.step);
+                       spin->setValue(new_val);
                        break;
                }
 
index 6c11efe..7fd5753 100644 (file)
@@ -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:
index dc3b5e4..dcc7b03 100644 (file)
@@ -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);