m_sigMapper, SLOT(map()));
break;
+ case V4L2_CTRL_TYPE_BITMASK:
+ addLabel(grid, name);
+ edit = new QLineEdit(p);
+ edit->setInputMask("HHHHHHHH");
+ addWidget(grid, edit);
+ m_widgetMap[qctrl.id] = edit;
+ connect(m_widgetMap[qctrl.id], SIGNAL(lostFocus()),
+ m_sigMapper, SLOT(map()));
+ connect(m_widgetMap[qctrl.id], SIGNAL(returnPressed()),
+ m_sigMapper, SLOT(map()));
+ break;
+
case V4L2_CTRL_TYPE_STRING:
addLabel(grid, name);
edit = new QLineEdit(p);
v = static_cast<QCheckBox *>(w)->isChecked();
break;
+ case V4L2_CTRL_TYPE_BITMASK:
+ v = (int)static_cast<QLineEdit *>(w)->text().toUInt(0, 16);
+ break;
case V4L2_CTRL_TYPE_MENU:
idx = static_cast<QComboBox *>(w)->currentIndex();
for (i = qctrl.minimum; i <= qctrl.maximum; i++) {
w->setStatusTip(w->whatsThis());
break;
+ case V4L2_CTRL_TYPE_BITMASK:
+ w->setWhatsThis(QString("Type: Bitmask\n"
+ "Maximum: %1\n"
+ "Current: %2\n"
+ "Default: %3")
+ .arg((unsigned)qctrl.maximum, 0, 16).arg((unsigned)v, 0, 16)
+ .arg((unsigned)qctrl.default_value, 0, 16) + flags);
+ w->setStatusTip(w->whatsThis());
+ break;
+
case V4L2_CTRL_TYPE_BUTTON:
w->setWhatsThis(QString("Type: Button") + flags);
w->setStatusTip(w->whatsThis());
static_cast<QLineEdit *>(w)->setText(QString::number(v));
break;
+ case V4L2_CTRL_TYPE_BITMASK:
+ static_cast<QLineEdit *>(w)->setText(QString("%1").arg((unsigned)v, 8, 16, QChar('0')));
+ break;
+
case V4L2_CTRL_TYPE_BOOLEAN:
static_cast<QCheckBox *>(w)->setChecked(v);
break;