From: Hans Verkuil Date: Sun, 12 Dec 2010 16:30:54 +0000 (+0100) Subject: qv4l2: control handling fixes X-Git-Tag: v4l-utils-0.8.2~88 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=94490dbbf0f46bb5fa7ff36aa9b027cc8f01f2d8;p=platform%2Fupstream%2Fv4l-utils.git qv4l2: control handling fixes 1) Don't attempt to read write-only controls 2) Set default string value to the proper minimum length (>= 0) containing spaces. Signed-off-by: Hans Verkuil --- diff --git a/utils/qv4l2/ctrl-tab.cpp b/utils/qv4l2/ctrl-tab.cpp index 7503a65..79c3f9f 100644 --- a/utils/qv4l2/ctrl-tab.cpp +++ b/utils/qv4l2/ctrl-tab.cpp @@ -514,14 +514,17 @@ void ApplicationWindow::refresh(unsigned ctrl_class) if (!m_haveExtendedUserCtrls && ctrl_class == V4L2_CTRL_CLASS_USER) { for (unsigned i = 0; i < m_classMap[ctrl_class].size(); i++) { unsigned id = m_classMap[ctrl_class][i]; - v4l2_control c; + queryctrl(m_ctrlMap[id]); + if (m_ctrlMap[id].type == V4L2_CTRL_TYPE_BUTTON) + continue; + if (m_ctrlMap[id].flags & V4L2_CTRL_FLAG_WRITE_ONLY) + continue; c.id = id; if (ioctl(VIDIOC_G_CTRL, &c)) { errorCtrl(id, errno); } - queryctrl(m_ctrlMap[id]); setVal(id, c.value); m_widgetMap[id]->setDisabled(m_ctrlMap[id].flags & CTRL_FLAG_DISABLED); } @@ -729,7 +732,7 @@ void ApplicationWindow::setDefaults(unsigned ctrl_class) if (m_ctrlMap[id].type == V4L2_CTRL_TYPE_INTEGER64) setVal64(id, 0); else if (m_ctrlMap[id].type == V4L2_CTRL_TYPE_STRING) - setString(id, ""); + setString(id, QString(' ', m_ctrlMap[id].minimum)); else if (m_ctrlMap[id].type != V4L2_CTRL_TYPE_BUTTON) setVal(id, m_ctrlMap[id].default_value); }