qv4l2-qt3: remove utility
authorHans Verkuil <hans.verkuil@cisco.com>
Mon, 23 Jun 2014 07:33:53 +0000 (09:33 +0200)
committerHans Verkuil <hans.verkuil@cisco.com>
Mon, 23 Jun 2014 07:33:53 +0000 (09:33 +0200)
qv4l2-qt3 has been superseded by qv4l2. Nobody uses Qt3 anymore and this
qt3 version of qv4l2 hasn't been maintained for a long time. Time to
retire it.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
contrib/Makefile.am
contrib/qv4l2-qt3/.gitignore [deleted file]
contrib/qv4l2-qt3/Makefile.install [deleted file]
contrib/qv4l2-qt3/ctrl-tab.cpp [deleted file]
contrib/qv4l2-qt3/fileopen.xpm [deleted file]
contrib/qv4l2-qt3/general-tab.cpp [deleted file]
contrib/qv4l2-qt3/general-tab.h [deleted file]
contrib/qv4l2-qt3/qv4l2-qt3.pro [deleted file]
contrib/qv4l2-qt3/qv4l2.cpp [deleted file]
contrib/qv4l2-qt3/qv4l2.h [deleted file]

index ef53830..196259f 100644 (file)
@@ -17,7 +17,6 @@ EXTRA_DIST = \
        em28xx \
        m920x \
        pci_traffic \
-       qv4l2-qt3 \
        saa7134 \
        sn9c201 \
        tm6000 \
diff --git a/contrib/qv4l2-qt3/.gitignore b/contrib/qv4l2-qt3/.gitignore
deleted file mode 100644 (file)
index 92036ca..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Makefile
-moc_general-tab.cpp
-moc_qv4l2.cpp
-qv4l2
-
diff --git a/contrib/qv4l2-qt3/Makefile.install b/contrib/qv4l2-qt3/Makefile.install
deleted file mode 100644 (file)
index 22c0207..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-include Makefile
-
-install: qv4l2
-       mkdir -p $(DESTDIR)$(PREFIX)/bin
-       install -m 755 qv4l2 $(DESTDIR)$(PREFIX)/bin
diff --git a/contrib/qv4l2-qt3/ctrl-tab.cpp b/contrib/qv4l2-qt3/ctrl-tab.cpp
deleted file mode 100644 (file)
index 6f436b4..0000000
+++ /dev/null
@@ -1,592 +0,0 @@
-
-#include "qv4l2.h"
-#include "libv4l2util.h"
-
-#include <qstatusbar.h>
-#include <qlineedit.h>
-#include <qvalidator.h>
-#include <qlayout.h>
-#include <qvbox.h>
-#include <qhbox.h>
-#include <qlabel.h>
-#include <qslider.h>
-#include <qspinbox.h>
-#include <qcombobox.h>
-#include <qcheckbox.h>
-#include <qpushbutton.h>
-#include <qtooltip.h>
-#include <qwhatsthis.h>
-
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <errno.h>
-
-void ApplicationWindow::addTabs()
-{
-       struct v4l2_queryctrl qctrl;
-       unsigned ctrl_class;
-       unsigned i;
-       int id;
-
-       memset(&qctrl, 0, sizeof(qctrl));
-       qctrl.id = V4L2_CTRL_FLAG_NEXT_CTRL;
-       while (::ioctl(fd, VIDIOC_QUERYCTRL, &qctrl) == 0) {
-               if ((qctrl.flags & V4L2_CTRL_FLAG_DISABLED) == 0) {
-                       ctrlMap[qctrl.id] = qctrl;
-                       if (qctrl.type != V4L2_CTRL_TYPE_CTRL_CLASS)
-                               classMap[V4L2_CTRL_ID2CLASS(qctrl.id)].push_back(qctrl.id);
-               }
-               qctrl.id |= V4L2_CTRL_FLAG_NEXT_CTRL;
-       }
-       if (qctrl.id == V4L2_CTRL_FLAG_NEXT_CTRL) {
-               strcpy((char *)qctrl.name, "User Controls");
-               qctrl.id = V4L2_CTRL_CLASS_USER | 1;
-               qctrl.type = V4L2_CTRL_TYPE_CTRL_CLASS;
-               ctrlMap[qctrl.id] = qctrl;
-               for (id = V4L2_CID_USER_BASE; id < V4L2_CID_LASTP1; id++) {
-                       qctrl.id = id;
-                       if (::ioctl(fd, VIDIOC_QUERYCTRL, &qctrl))
-                               continue;
-                       if (qctrl.flags & V4L2_CTRL_FLAG_DISABLED)
-                               continue;
-                       ctrlMap[qctrl.id] = qctrl;
-                       classMap[V4L2_CTRL_CLASS_USER].push_back(qctrl.id);
-               }
-               for (qctrl.id = V4L2_CID_PRIVATE_BASE;
-                               ::ioctl(fd, VIDIOC_QUERYCTRL, &qctrl) == 0; qctrl.id++) {
-                       if (qctrl.flags & V4L2_CTRL_FLAG_DISABLED)
-                               continue;
-                       ctrlMap[qctrl.id] = qctrl;
-                       classMap[V4L2_CTRL_CLASS_USER].push_back(qctrl.id);
-               }
-       }
-
-       for (ClassMap::iterator iter = classMap.begin(); iter != classMap.end(); ++iter) {
-               ctrl_class = V4L2_CTRL_ID2CLASS(iter->second[0]);
-               id = ctrl_class | 1;
-               const struct v4l2_queryctrl &qctrl = ctrlMap[id];
-               QVBox *vbox = new QVBox(tabs);
-               QGrid *grid = new QGrid(4, vbox);
-               grid->setSpacing(3);
-               tabs->addTab(vbox, (char *)qctrl.name);
-               for (i = 0; i < iter->second.size(); i++) {
-                       if (i & 1)
-                               id = iter->second[(1+iter->second.size()) / 2 + i / 2];
-                       else
-                               id = iter->second[i / 2];
-                       addCtrl(grid, ctrlMap[id]);
-               }
-               finishGrid(vbox, grid, ctrl_class, i & 1);
-       }
-}
-
-void ApplicationWindow::finishGrid(QWidget *vbox, QGrid *grid, unsigned ctrl_class, bool odd)
-{
-       if (odd) {
-               new QWidget(grid);
-               new QWidget(grid);
-       }
-       QWidget *stretch = new QWidget(grid);
-       stretch->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Ignored);
-
-       QFrame *frame = new QFrame(vbox);
-       frame->setFrameShape(QFrame::HLine);
-       frame->setFrameShadow(QFrame::Sunken);
-       frame->setMargin(3);
-
-       QHBox *hbox = new QHBox(vbox);
-       hbox->setSpacing(3);
-
-       QCheckBox *cbox = new QCheckBox("Update on change", hbox);
-       widgetMap[ctrl_class | CTRL_UPDATE_ON_CHANGE] = cbox;
-       connect(cbox, SIGNAL(clicked()), sigMapper, SLOT(map()));
-       sigMapper->setMapping(cbox, ctrl_class | CTRL_UPDATE_ON_CHANGE);
-
-       stretch = new QWidget(hbox);
-       stretch->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed);
-
-       QPushButton *defBut = new QPushButton("Set Defaults", hbox);
-       widgetMap[ctrl_class | CTRL_DEFAULTS] = defBut;
-       connect(defBut, SIGNAL(clicked()), sigMapper, SLOT(map()));
-       sigMapper->setMapping(defBut, ctrl_class | CTRL_DEFAULTS);
-
-       QPushButton *refreshBut = new QPushButton("Refresh", hbox);
-       widgetMap[ctrl_class | CTRL_REFRESH] = refreshBut;
-       connect(refreshBut, SIGNAL(clicked()), sigMapper, SLOT(map()));
-       sigMapper->setMapping(refreshBut, ctrl_class | CTRL_REFRESH);
-
-       QPushButton *button = new QPushButton("Update", hbox);
-       widgetMap[ctrl_class | CTRL_UPDATE] = button;
-       connect(button, SIGNAL(clicked()), sigMapper, SLOT(map()));
-       sigMapper->setMapping(button, ctrl_class | CTRL_UPDATE);
-       connect(cbox, SIGNAL(toggled(bool)), button, SLOT(setDisabled(bool)));
-
-       cbox->setChecked(ctrl_class == V4L2_CTRL_CLASS_USER);
-
-       refresh(ctrl_class);
-}
-
-void ApplicationWindow::addCtrl(QGrid *grid, const struct v4l2_queryctrl &qctrl)
-{
-       QIntValidator *val;
-       QLineEdit *edit;
-       QString name((char *)qctrl.name);
-       QComboBox *combo;
-       struct v4l2_querymenu qmenu;
-
-       QLabel *label = new QLabel(name, grid);
-       label->setAlignment(Qt::AlignRight);
-
-       switch (qctrl.type) {
-       case V4L2_CTRL_TYPE_INTEGER:
-               if (qctrl.flags & V4L2_CTRL_FLAG_SLIDER) {
-                       widgetMap[qctrl.id] =
-                               new QSlider(qctrl.minimum, qctrl.maximum,
-                                       qctrl.step, qctrl.default_value,
-                                       Horizontal, grid);
-                       connect(widgetMap[qctrl.id], SIGNAL(valueChanged(int)),
-                               sigMapper, SLOT(map()));
-                       break;
-               }
-
-               if (qctrl.maximum - qctrl.minimum <= 255) {
-                       widgetMap[qctrl.id] =
-                               new QSpinBox(qctrl.minimum, qctrl.maximum, 1, grid);
-                       connect(widgetMap[qctrl.id], SIGNAL(valueChanged(int)),
-                               sigMapper, SLOT(map()));
-                       break;
-               }
-
-               val = new QIntValidator(qctrl.minimum, qctrl.maximum, grid);
-               edit = new QLineEdit(grid);
-               edit->setValidator(val);
-               widgetMap[qctrl.id] = edit;
-               connect(widgetMap[qctrl.id], SIGNAL(lostFocus()),
-                               sigMapper, SLOT(map()));
-               connect(widgetMap[qctrl.id], SIGNAL(returnPressed()),
-                               sigMapper, SLOT(map()));
-               break;
-
-       case V4L2_CTRL_TYPE_INTEGER64:
-               widgetMap[qctrl.id] = new QLineEdit(grid);
-               connect(widgetMap[qctrl.id], SIGNAL(lostFocus()),
-                               sigMapper, SLOT(map()));
-               connect(widgetMap[qctrl.id], SIGNAL(returnPressed()),
-                               sigMapper, SLOT(map()));
-               break;
-
-       case V4L2_CTRL_TYPE_BOOLEAN:
-               label->setText("");
-               widgetMap[qctrl.id] = new QCheckBox(name, grid);
-               connect(widgetMap[qctrl.id], SIGNAL(clicked()),
-                               sigMapper, SLOT(map()));
-               break;
-
-       case V4L2_CTRL_TYPE_BUTTON:
-               label->setText("");
-               widgetMap[qctrl.id] = new QPushButton((char *)qctrl.name, grid);
-               connect(widgetMap[qctrl.id], SIGNAL(clicked()),
-                               sigMapper, SLOT(map()));
-               break;
-
-       case V4L2_CTRL_TYPE_MENU:
-               combo = new QComboBox(grid);
-               widgetMap[qctrl.id] = combo;
-               for (int i = qctrl.minimum; i <= qctrl.maximum; i++) {
-                       qmenu.id = qctrl.id;
-                       qmenu.index = i;
-                       if (::ioctl(fd, VIDIOC_QUERYMENU, &qmenu))
-                               continue;
-                       combo->insertItem((char *)qmenu.name);
-               }
-               connect(widgetMap[qctrl.id], SIGNAL(activated(int)),
-                               sigMapper, SLOT(map()));
-               break;
-
-       default:
-               return;
-       }
-       sigMapper->setMapping(widgetMap[qctrl.id], qctrl.id);
-       if (qctrl.flags & (V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_INACTIVE))
-               widgetMap[qctrl.id]->setDisabled(true);
-}
-
-void ApplicationWindow::ctrlAction(int id)
-{
-       unsigned ctrl_class = V4L2_CTRL_ID2CLASS(id);
-       if (ctrl_class == V4L2_CID_PRIVATE_BASE)
-               ctrl_class = V4L2_CTRL_CLASS_USER;
-       unsigned ctrl = id & 0xffff;
-       QCheckBox *cbox = static_cast<QCheckBox *>(widgetMap[ctrl_class | CTRL_UPDATE_ON_CHANGE]);
-       bool update = cbox->isChecked();
-       bool all = (ctrl == CTRL_UPDATE || (update && ctrl == CTRL_UPDATE_ON_CHANGE));
-
-       if (ctrl == CTRL_DEFAULTS) {
-               setDefaults(ctrl_class);
-               return;
-       }
-       if (ctrl == CTRL_REFRESH) {
-               refresh(ctrl_class);
-               return;
-       }
-       if (!update && !all && ctrlMap[id].type != V4L2_CTRL_TYPE_BUTTON)
-               return;
-       if (ctrl_class == V4L2_CTRL_CLASS_USER) {
-               if (!all) {
-                       updateCtrl(id);
-                       return;
-               }
-               for (unsigned i = 0; i < classMap[ctrl_class].size(); i++) {
-                       updateCtrl(classMap[ctrl_class][i]);
-               }
-               return;
-       }
-       if (!all) {
-               updateCtrl(id);
-               return;
-       }
-       unsigned count = classMap[ctrl_class].size();
-       struct v4l2_ext_control *c = new v4l2_ext_control[count];
-       struct v4l2_ext_controls ctrls;
-       int idx = 0;
-
-       for (unsigned i = 0; i < count; i++) {
-               unsigned id = classMap[ctrl_class][i];
-
-               if (ctrlMap[id].flags & (V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_INACTIVE))
-                       continue;
-               c[idx].id = id;
-               if (ctrlMap[id].type == V4L2_CTRL_TYPE_INTEGER64)
-                       c[idx].value64 = getVal64(id);
-               else
-                       c[idx].value = getVal(id);
-               idx++;
-       }
-       memset(&ctrls, 0, sizeof(ctrls));
-       ctrls.count = idx;
-       ctrls.ctrl_class = ctrl_class;
-       ctrls.controls = c;
-       if (::ioctl(fd, VIDIOC_S_EXT_CTRLS, &ctrls)) {
-               int err = errno;
-
-               if (ctrls.error_idx >= ctrls.count) {
-                       printf("error: %s\n", strerror(err));
-               }
-               else {
-                       id = c[ctrls.error_idx].id;
-                       printf("error %08x (%s): %s\n", id,
-                                       ctrlMap[id].name, strerror(err));
-               }
-       }
-       delete [] c;
-       refresh(ctrl_class);
-}
-
-long long ApplicationWindow::getVal64(unsigned id)
-{
-       const v4l2_queryctrl &qctrl = ctrlMap[id];
-       QWidget *w = widgetMap[qctrl.id];
-       long long v = 0;
-
-       switch (qctrl.type) {
-       case V4L2_CTRL_TYPE_INTEGER64:
-               v = static_cast<QLineEdit *>(w)->text().toLongLong();
-               break;
-       default:
-               break;
-       }
-       setWhat(w, id, v);
-       return v;
-}
-
-int ApplicationWindow::getVal(unsigned id)
-{
-       const v4l2_queryctrl &qctrl = ctrlMap[id];
-       QWidget *w = widgetMap[qctrl.id];
-       v4l2_querymenu qmenu;
-       int i, idx;
-       int v = 0;
-
-       switch (qctrl.type) {
-       case V4L2_CTRL_TYPE_INTEGER:
-               if (qctrl.flags & V4L2_CTRL_FLAG_SLIDER) {
-                       v = static_cast<QSlider *>(w)->value();
-                       break;
-               }
-
-               if (qctrl.maximum - qctrl.minimum <= 255) {
-                       v = static_cast<QSpinBox *>(w)->value();
-                       break;
-               }
-               v = static_cast<QLineEdit *>(w)->text().toInt();
-               break;
-
-       case V4L2_CTRL_TYPE_BOOLEAN:
-               v = static_cast<QCheckBox *>(w)->isChecked();
-               break;
-
-       case V4L2_CTRL_TYPE_MENU:
-               idx = static_cast<QComboBox *>(w)->currentItem();
-               for (i = qctrl.minimum; i <= qctrl.maximum; i++) {
-                       qmenu.id = qctrl.id;
-                       qmenu.index = i;
-                       if (::ioctl(fd, VIDIOC_QUERYMENU, &qmenu))
-                               continue;
-                       if (idx-- == 0)
-                               break;
-               }
-               v = i;
-               break;
-
-       default:
-               break;
-       }
-       setWhat(w, id, v);
-       return v;
-}
-
-void ApplicationWindow::updateCtrl(unsigned id)
-{
-       unsigned ctrl_class = V4L2_CTRL_ID2CLASS(id);
-       if (ctrl_class == V4L2_CID_PRIVATE_BASE)
-               ctrl_class = V4L2_CTRL_CLASS_USER;
-
-       if (ctrlMap[id].flags & (V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_INACTIVE))
-               return;
-
-       if (ctrl_class == V4L2_CTRL_CLASS_USER) {
-               struct v4l2_control c;
-
-               c.id = id;
-               c.value = getVal(id);
-               if (::ioctl(fd, VIDIOC_S_CTRL, &c)) {
-                       int err = errno;
-                       char buf[200];
-
-                       sprintf(buf, "Error %08x (%s): %s", id,
-                               ctrlMap[id].name, strerror(err));
-                       statusBar()->message(buf, 10000);
-               }
-               return;
-       }
-       struct v4l2_ext_control c;
-       struct v4l2_ext_controls ctrls;
-
-       memset(&c, 0, sizeof(c));
-       memset(&ctrls, 0, sizeof(ctrls));
-       c.id = id;
-       if (ctrlMap[id].type == V4L2_CTRL_TYPE_INTEGER64)
-               c.value64 = getVal64(id);
-       else
-               c.value = getVal(id);
-       ctrls.count = 1;
-       ctrls.ctrl_class = ctrl_class;
-       ctrls.controls = &c;
-       if (::ioctl(fd, VIDIOC_S_EXT_CTRLS, &ctrls)) {
-               int err = errno;
-               char buf[200];
-
-               sprintf(buf, "Error %08x (%s): %s", id,
-                               ctrlMap[id].name, strerror(err));
-               statusBar()->message(buf, 10000);
-       }
-       else if (ctrlMap[id].flags & V4L2_CTRL_FLAG_UPDATE)
-               refresh(ctrl_class);
-       else {
-               if (ctrlMap[id].type == V4L2_CTRL_TYPE_INTEGER64)
-                       setVal64(id, c.value64);
-               else
-                       setVal(id, c.value);
-       }
-}
-
-void ApplicationWindow::refresh(unsigned ctrl_class)
-{
-       if (ctrl_class == V4L2_CTRL_CLASS_USER) {
-               for (unsigned i = 0; i < classMap[ctrl_class].size(); i++) {
-                       unsigned id = classMap[ctrl_class][i];
-
-                       v4l2_control c;
-
-                       c.id = id;
-                       if (::ioctl(fd, VIDIOC_G_CTRL, &c)) {
-                               int err = errno;
-                               char buf[200];
-
-                               sprintf(buf, "Error %08x (%s): %s", id,
-                                               ctrlMap[id].name, strerror(err));
-                               statusBar()->message(buf, 10000);
-                       }
-                       setVal(id, c.value);
-               }
-               return;
-       }
-       unsigned count = classMap[ctrl_class].size();
-       struct v4l2_ext_control *c = new v4l2_ext_control[count];
-       struct v4l2_ext_controls ctrls;
-
-       for (unsigned i = 0; i < count; i++) {
-               c[i].id = classMap[ctrl_class][i];
-       }
-       memset(&ctrls, 0, sizeof(ctrls));
-       ctrls.count = count;
-       ctrls.ctrl_class = ctrl_class;
-       ctrls.controls = c;
-       if (::ioctl(fd, VIDIOC_G_EXT_CTRLS, &ctrls)) {
-               int err = errno;
-
-               if (ctrls.error_idx >= ctrls.count) {
-                       statusBar()->message(strerror(err), 10000);
-               }
-               else {
-                       unsigned id = c[ctrls.error_idx].id;
-                       char buf[200];
-
-                       sprintf(buf, "Error %08x (%s): %s", id,
-                                       ctrlMap[id].name, strerror(err));
-                       statusBar()->message(buf, 10000);
-               }
-       }
-       else {
-               for (unsigned i = 0; i < ctrls.count; i++) {
-                       unsigned id = c[i].id;
-                       if (ctrlMap[id].type == V4L2_CTRL_TYPE_INTEGER64)
-                               setVal64(id, c[i].value64);
-                       else
-                               setVal(id, c[i].value);
-                       ::ioctl(fd, VIDIOC_QUERYCTRL, &ctrlMap[id]);
-                       widgetMap[id]->setDisabled(ctrlMap[id].flags &
-                               (V4L2_CTRL_FLAG_READ_ONLY | V4L2_CTRL_FLAG_INACTIVE));
-               }
-       }
-       delete [] c;
-}
-
-void ApplicationWindow::setWhat(QWidget *w, unsigned id, long long v)
-{
-       const v4l2_queryctrl &qctrl = ctrlMap[id];
-       QString what;
-       QString flags = getCtrlFlags(qctrl.flags);
-
-       switch (qctrl.type) {
-       case V4L2_CTRL_TYPE_INTEGER:
-               QWhatsThis::add(w, what.sprintf("Integer type control\n"
-                                       "Minimum: %d\n"
-                                       "Maximum: %d\n"
-                                       "Current: %d\n"
-                                       "Default: %d\n",
-                       qctrl.minimum, qctrl.maximum, (int)v, qctrl.default_value) + flags);
-               break;
-
-       case V4L2_CTRL_TYPE_INTEGER64:
-               QWhatsThis::add(w, what.sprintf("64-bit Integer type control\n"
-                                       "Current: %lld\n", v) + flags);
-               break;
-
-       case V4L2_CTRL_TYPE_BUTTON:
-               QWhatsThis::add(w, what.sprintf("Button type control\n") + flags);
-               break;
-
-       case V4L2_CTRL_TYPE_BOOLEAN:
-               QWhatsThis::add(w, what.sprintf("Boolean type control\n"
-                                       "Current: %d\n"
-                                       "Default: %d\n",
-                       (int)v, qctrl.default_value) + flags);
-               break;
-
-       case V4L2_CTRL_TYPE_MENU:
-               QWhatsThis::add(w, what.sprintf("Menu type control\n"
-                                       "Minimum: %d\n"
-                                       "Maximum: %d\n"
-                                       "Current: %d\n"
-                                       "Default: %d\n",
-                       qctrl.minimum, qctrl.maximum, (int)v, qctrl.default_value) + flags);
-               break;
-       default:
-               break;
-       }
-}
-
-void ApplicationWindow::setVal(unsigned id, int v)
-{
-       const v4l2_queryctrl &qctrl = ctrlMap[id];
-       v4l2_querymenu qmenu;
-       QWidget *w = widgetMap[qctrl.id];
-       int i, idx;
-
-       switch (qctrl.type) {
-       case V4L2_CTRL_TYPE_INTEGER:
-               if (qctrl.flags & V4L2_CTRL_FLAG_SLIDER)
-                       static_cast<QSlider *>(w)->setValue(v);
-               else if (qctrl.maximum - qctrl.minimum <= 255)
-                       static_cast<QSpinBox *>(w)->setValue(v);
-               else
-                       static_cast<QLineEdit *>(w)->setText(QString::number(v));
-               break;
-
-       case V4L2_CTRL_TYPE_BOOLEAN:
-               static_cast<QCheckBox *>(w)->setChecked(v);
-               break;
-
-       case V4L2_CTRL_TYPE_MENU:
-               idx = 0;
-               for (i = qctrl.minimum; i <= v; i++) {
-                       qmenu.id = id;
-                       qmenu.index = i;
-                       if (::ioctl(fd, VIDIOC_QUERYMENU, &qmenu))
-                               continue;
-                       idx++;
-               }
-               static_cast<QComboBox *>(w)->setCurrentItem(idx - 1);
-               break;
-       default:
-               break;
-       }
-       setWhat(w, id, v);
-}
-
-void ApplicationWindow::setVal64(unsigned id, long long v)
-{
-       const v4l2_queryctrl &qctrl = ctrlMap[id];
-       QWidget *w = widgetMap[qctrl.id];
-
-       switch (qctrl.type) {
-       case V4L2_CTRL_TYPE_INTEGER64:
-               static_cast<QLineEdit *>(w)->setText(QString::number(v));
-               break;
-       default:
-               break;
-       }
-       setWhat(w, id, v);
-}
-
-void ApplicationWindow::setDefaults(unsigned ctrl_class)
-{
-       for (unsigned i = 0; i < classMap[ctrl_class].size(); i++) {
-               unsigned id = classMap[ctrl_class][i];
-
-               if (ctrlMap[id].type != V4L2_CTRL_TYPE_INTEGER64 &&
-                   ctrlMap[id].type != V4L2_CTRL_TYPE_BUTTON)
-                       setVal(id, ctrlMap[id].default_value);
-       }
-       ctrlAction(ctrl_class | CTRL_UPDATE);
-}
-
-QString ApplicationWindow::getCtrlFlags(unsigned flags)
-{
-       QString s;
-
-       if (flags & V4L2_CTRL_FLAG_GRABBED)
-               s += "grabbed ";
-       if (flags & V4L2_CTRL_FLAG_READ_ONLY)
-               s += "readonly ";
-       if (flags & V4L2_CTRL_FLAG_UPDATE)
-               s += "update ";
-       if (flags & V4L2_CTRL_FLAG_INACTIVE)
-               s += "inactive ";
-       if (flags & V4L2_CTRL_FLAG_SLIDER)
-               s += "slider ";
-       if (s.length()) s = QString("Flags: ") + s;
-       return s;
-}
-
diff --git a/contrib/qv4l2-qt3/fileopen.xpm b/contrib/qv4l2-qt3/fileopen.xpm
deleted file mode 100644 (file)
index 880417e..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/* XPM */
-static const char *fileopen[] = {
-"    16    13        5            1",
-". c #040404",
-"# c #808304",
-"a c None",
-"b c #f3f704",
-"c c #f3f7f3",
-"aaaaaaaaa...aaaa",
-"aaaaaaaa.aaa.a.a",
-"aaaaaaaaaaaaa..a",
-"a...aaaaaaaa...a",
-".bcb.......aaaaa",
-".cbcbcbcbc.aaaaa",
-".bcbcbcbcb.aaaaa",
-".cbcb...........",
-".bcb.#########.a",
-".cb.#########.aa",
-".b.#########.aaa",
-"..#########.aaaa",
-"...........aaaaa"
-};
diff --git a/contrib/qv4l2-qt3/general-tab.cpp b/contrib/qv4l2-qt3/general-tab.cpp
deleted file mode 100644 (file)
index 78656cf..0000000
+++ /dev/null
@@ -1,350 +0,0 @@
-/* qv4l2: a control panel controlling v4l2 devices.
- *
- * Copyright (C) 2006 Hans Verkuil <hverkuil@xs4all.nl>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-
-#include "qv4l2.h"
-#include "general-tab.h"
-#include "libv4l2util.h"
-
-#include <qlabel.h>
-#include <qspinbox.h>
-#include <qcombobox.h>
-#include <qwhatsthis.h>
-
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <errno.h>
-
-GeneralTab::GeneralTab(const char *device, int _fd, int n, QWidget *parent) :
-       QGrid(n, parent),
-       fd(_fd)
-{
-       int cnt = 0;
-
-       setSpacing(3);
-
-       memset(&querycap, 0, sizeof(querycap));
-       if (ioctl(fd, VIDIOC_QUERYCAP, &querycap) >=0) {
-               QLabel *l1 = new QLabel("Device:", this);
-               new QLabel(device, this);
-               l1->setAlignment(Qt::AlignRight);
-
-               QLabel *l2 = new QLabel("Driver:", this);
-               l2->setAlignment(Qt::AlignRight);
-
-               new QLabel((char *)querycap.driver, this);
-
-               QLabel *l3 = new QLabel("Card:", this);
-               l3->setAlignment(Qt::AlignRight);
-
-               new QLabel((char *)querycap.card, this);
-
-               QLabel *l4 = new QLabel("Bus:", this);
-               l4->setAlignment(Qt::AlignRight);
-
-               new QLabel((char *)querycap.bus_info, this);
-       }
-
-       memset(&tuner, 0, sizeof(tuner));
-       ioctl(fd, VIDIOC_G_TUNER, &tuner);
-       if (tuner.rangehigh>INT_MAX)
-               tuner.rangehigh=INT_MAX;
-
-       struct v4l2_input vin;
-       memset(&vin, 0, sizeof(vin));
-       if (ioctl(fd, VIDIOC_ENUMINPUT, &vin) >= 0) {
-               QLabel *label = new QLabel("Input", this);
-               label->setAlignment(Qt::AlignRight);
-               videoInput = new QComboBox(this);
-               while (ioctl(fd, VIDIOC_ENUMINPUT, &vin) >= 0) {
-                       videoInput->insertItem((char *)vin.name);
-                       vin.index++;
-               }
-               connect(videoInput, SIGNAL(activated(int)), SLOT(inputChanged(int)));
-               updateVideoInput();
-               cnt++;
-       }
-
-       struct v4l2_output vout;
-       memset(&vout, 0, sizeof(vout));
-       if (ioctl(fd, VIDIOC_ENUMOUTPUT, &vout) >= 0) {
-               QLabel *label = new QLabel("Output", this);
-               label->setAlignment(Qt::AlignRight);
-               videoOutput = new QComboBox(this);
-               while (ioctl(fd, VIDIOC_ENUMOUTPUT, &vout) >= 0) {
-                       videoOutput->insertItem((char *)vout.name);
-                       vout.index++;
-               }
-               connect(videoOutput, SIGNAL(activated(int)), SLOT(outputChanged(int)));
-               updateVideoOutput();
-               cnt++;
-       }
-
-       struct v4l2_audio vaudio;
-       memset(&vaudio, 0, sizeof(vaudio));
-       if (ioctl(fd, VIDIOC_ENUMAUDIO, &vaudio) >= 0) {
-               QLabel *label = new QLabel("Input Audio", this);
-               label->setAlignment(Qt::AlignRight);
-               audioInput = new QComboBox(this);
-               vaudio.index = 0;
-               while (ioctl(fd, VIDIOC_ENUMAUDIO, &vaudio) >= 0) {
-                       audioInput->insertItem((char *)vaudio.name);
-                       vaudio.index++;
-               }
-               connect(audioInput, SIGNAL(activated(int)), SLOT(inputAudioChanged(int)));
-               updateAudioInput();
-               cnt++;
-       }
-
-       struct v4l2_audioout vaudioout;
-       memset(&vaudioout, 0, sizeof(vaudioout));
-       if (ioctl(fd, VIDIOC_ENUMAUDOUT, &vaudioout) >= 0) {
-               QLabel *label = new QLabel("Output Audio", this);
-               label->setAlignment(Qt::AlignRight);
-               audioOutput = new QComboBox(this);
-               while (ioctl(fd, VIDIOC_ENUMAUDOUT, &vaudioout) >= 0) {
-                       audioOutput->insertItem((char *)vaudioout.name);
-                       vaudioout.index++;
-               }
-               connect(audioOutput, SIGNAL(activated(int)), SLOT(outputAudioChanged(int)));
-               updateAudioOutput();
-               cnt++;
-       }
-
-       struct v4l2_standard vs;
-       memset(&vs, 0, sizeof(vs));
-       if (ioctl(fd, VIDIOC_ENUMSTD, &vs) >= 0) {
-               QLabel *label = new QLabel("TV Standard", this);
-               label->setAlignment(Qt::AlignRight);
-               tvStandard = new QComboBox(this);
-               while (ioctl(fd, VIDIOC_ENUMSTD, &vs) >= 0) {
-                       tvStandard->insertItem((char *)vs.name);
-                       vs.index++;
-               }
-               connect(tvStandard, SIGNAL(activated(int)), SLOT(standardChanged(int)));
-               updateStandard();
-               cnt++;
-       }
-
-       bool first = cnt & 1;
-
-       if (first) {
-               QString what;
-               QLabel *label = new QLabel("Frequency", this);
-               label->setAlignment(Qt::AlignRight);
-               freq = new QSpinBox(tuner.rangelow, tuner.rangehigh, 1, this);
-               QWhatsThis::add(freq, what.sprintf("Frequency\n"
-                                       "Low: %d\n"
-                                       "High: %d\n",
-                                       tuner.rangelow, tuner.rangehigh));
-               connect(freq, SIGNAL(valueChanged(int)), SLOT(freqChanged(int)));
-               updateFreq();
-               cnt++;
-       }
-
-       {
-               QLabel *label = new QLabel("Frequency Tables", this);
-               label->setAlignment(Qt::AlignRight);
-               freqTable = new QComboBox(this);
-               for (int i = 0; v4l2_channel_lists[i].name; i++) {
-                       freqTable->insertItem(v4l2_channel_lists[i].name);
-               }
-               connect(freqTable, SIGNAL(activated(int)), SLOT(freqTableChanged(int)));
-
-               label = new QLabel("Channels", this);
-               label->setAlignment(Qt::AlignRight);
-               freqChannel = new QComboBox(this);
-               connect(freqChannel, SIGNAL(activated(int)), SLOT(freqChannelChanged(int)));
-               updateFreqChannel();
-       }
-
-       if (!first) {
-               QString what;
-               QLabel *label = new QLabel("Frequency", this);
-               label->setAlignment(Qt::AlignRight);
-               freq = new QSpinBox(tuner.rangelow, tuner.rangehigh, 1, this);
-               QWhatsThis::add(freq, what.sprintf("Frequency\n"
-                                       "Low: %d\n"
-                                       "High: %d\n",
-                                       tuner.rangelow, tuner.rangehigh));
-               connect(freq, SIGNAL(valueChanged(int)), SLOT(freqChanged(int)));
-               updateFreq();
-               cnt++;
-       }
-
-       if (cnt & 1) {
-               new QWidget(this);
-               new QWidget(this);
-       }
-       QWidget *stretch = new QWidget(this);
-       stretch->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Ignored);
-}
-
-void GeneralTab::inputChanged(int input)
-{
-       g_mw->doIoctl("Set Input", VIDIOC_S_INPUT, &input);
-       struct v4l2_audio vaudio;
-       memset(&vaudio, 0, sizeof(vaudio));
-       if (audioInput && ioctl(fd, VIDIOC_G_AUDIO, &vaudio) >= 0) {
-               audioInput->setCurrentItem(vaudio.index);
-               updateAudioInput();
-       }
-       updateVideoInput();
-}
-
-void GeneralTab::outputChanged(int output)
-{
-       g_mw->doIoctl("Set Output", VIDIOC_S_OUTPUT, &output);
-       updateVideoOutput();
-}
-
-void GeneralTab::inputAudioChanged(int input)
-{
-       struct v4l2_audio vaudio;
-       memset(&vaudio, 0, sizeof(vaudio));
-       vaudio.index = input;
-       g_mw->doIoctl("Set Audio Input", VIDIOC_S_AUDIO, &vaudio);
-       updateAudioInput();
-}
-
-void GeneralTab::outputAudioChanged(int output)
-{
-       struct v4l2_audioout vaudioout;
-       memset(&vaudioout, 0, sizeof(vaudioout));
-       vaudioout.index = output;
-       g_mw->doIoctl("Set Audio Output", VIDIOC_S_AUDOUT, &vaudioout);
-       updateAudioOutput();
-}
-
-void GeneralTab::standardChanged(int std)
-{
-       struct v4l2_standard vs;
-       memset(&vs, 0, sizeof(vs));
-       vs.index = std;
-       ioctl(fd, VIDIOC_ENUMSTD, &vs);
-       g_mw->doIoctl("Set TV Standard", VIDIOC_S_STD, &vs.id);
-       updateStandard();
-}
-
-void GeneralTab::freqTableChanged(int)
-{
-       updateFreqChannel();
-       freqChannelChanged(0);
-}
-
-void GeneralTab::freqChannelChanged(int idx)
-{
-       freq->setValue((int)(v4l2_channel_lists[freqTable->currentItem()].list[idx].freq / 62.5));
-}
-
-void GeneralTab::freqChanged(int val)
-{
-       struct v4l2_frequency f;
-
-       memset(&f, 0, sizeof(f));
-       f.type = V4L2_TUNER_ANALOG_TV;
-       f.frequency = val;
-       g_mw->doIoctl("Set frequency", VIDIOC_S_FREQUENCY, &f);
-}
-
-void GeneralTab::updateVideoInput()
-{
-       int input;
-
-       ioctl(fd, VIDIOC_G_INPUT, &input);
-       videoInput->setCurrentItem(input);
-}
-
-void GeneralTab::updateVideoOutput()
-{
-       int output;
-
-       ioctl(fd, VIDIOC_G_OUTPUT, &output);
-       videoOutput->setCurrentItem(output);
-}
-
-void GeneralTab::updateAudioInput()
-{
-       struct v4l2_audio audio;
-       QString what;
-
-       memset(&audio, 0, sizeof(audio));
-       ioctl(fd, VIDIOC_G_AUDIO, &audio);
-       audioInput->setCurrentItem(audio.index);
-       if (audio.capability & V4L2_AUDCAP_STEREO)
-               what = "stereo input";
-       else
-               what = "mono input";
-       if (audio.capability & V4L2_AUDCAP_AVL)
-               what += ", has AVL";
-       if (audio.mode & V4L2_AUDMODE_AVL)
-               what += ", AVL is on";
-       QWhatsThis::add(audioInput, what);
-}
-
-void GeneralTab::updateAudioOutput()
-{
-       struct v4l2_audioout audio;
-
-       memset(&audio, 0, sizeof(audio));
-       ioctl(fd, VIDIOC_G_AUDOUT, &audio);
-       audioOutput->setCurrentItem(audio.index);
-}
-
-void GeneralTab::updateStandard()
-{
-       v4l2_std_id std;
-       struct v4l2_standard vs;
-       QString what;
-       ioctl(fd, VIDIOC_G_STD, &std);
-       memset(&vs, 0, sizeof(vs));
-       while (ioctl(fd, VIDIOC_ENUMSTD, &vs) != -1) {
-               if (vs.id & std) {
-                       tvStandard->setCurrentItem(vs.index);
-                       what.sprintf("TV Standard (0x%llX)\n"
-                               "Frame period: %f (%d/%d)\n"
-                               "Frame lines: %d\n", (long long int)std,
-                               (double)vs.frameperiod.numerator / vs.frameperiod.denominator,
-                               vs.frameperiod.numerator, vs.frameperiod.denominator,
-                               vs.framelines);
-                       QWhatsThis::add(tvStandard, what);
-                       return;
-               }
-               vs.index++;
-       }
-}
-
-void GeneralTab::updateFreq()
-{
-       struct v4l2_frequency f;
-
-       memset(&f, 0, sizeof(f));
-       ioctl(fd, VIDIOC_G_FREQUENCY, &f);
-       freq->setValue(f.frequency);
-}
-
-void GeneralTab::updateFreqChannel()
-{
-       freqChannel->clear();
-       int tbl = freqTable->currentItem();
-       const struct v4l2_channel_list *list = v4l2_channel_lists[tbl].list;
-       for (unsigned i = 0; i < v4l2_channel_lists[tbl].count; i++)
-               freqChannel->insertItem(list[i].name);
-}
-
diff --git a/contrib/qv4l2-qt3/general-tab.h b/contrib/qv4l2-qt3/general-tab.h
deleted file mode 100644 (file)
index 8130e11..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/* qv4l2: a control panel controlling v4l2 devices.
- *
- * Copyright (C) 2006 Hans Verkuil <hverkuil@xs4all.nl>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-
-#ifndef GENERAL_TAB_H
-#define GENERAL_TAB_H
-
-#include <sys/time.h>
-#include <linux/videodev2.h>
-#include <qgrid.h>
-
-class QComboBox;
-class QSpinBox;
-
-class GeneralTab: public QGrid
-{
-    Q_OBJECT
-
-public:
-    GeneralTab(const char *device, int fd, int n, QWidget *parent = 0);
-    virtual ~GeneralTab() {}
-
-private slots:
-    void inputChanged(int);
-    void outputChanged(int);
-    void inputAudioChanged(int);
-    void outputAudioChanged(int);
-    void standardChanged(int);
-    void freqTableChanged(int);
-    void freqChannelChanged(int);
-    void freqChanged(int);
-
-private:
-    void updateVideoInput();
-    void updateVideoOutput();
-    void updateAudioInput();
-    void updateAudioOutput();
-    void updateStandard();
-    void updateFreq();
-    void updateFreqChannel();
-
-    int fd;
-    struct v4l2_tuner tuner;
-    struct v4l2_capability querycap;
-
-    // General tab
-    QComboBox *videoInput;
-    QComboBox *videoOutput;
-    QComboBox *audioInput;
-    QComboBox *audioOutput;
-    QComboBox *tvStandard;
-    QSpinBox  *freq;
-    QComboBox *freqTable;
-    QComboBox *freqChannel;
-};
-
-#endif
diff --git a/contrib/qv4l2-qt3/qv4l2-qt3.pro b/contrib/qv4l2-qt3/qv4l2-qt3.pro
deleted file mode 100644 (file)
index bd639e1..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-######################################################################
-# Automatically generated by qmake (1.07a) Sat Jun 17 12:35:16 2006
-######################################################################
-
-TEMPLATE = app
-INCLUDEPATH += . ../../utils/libv4l2util ../../include
-CONFIG += debug thread
-
-# Input
-HEADERS += qv4l2.h general-tab.h
-SOURCES += qv4l2.cpp general-tab.cpp ctrl-tab.cpp
-LIBS += -lv4l2util -L../../utils/libv4l2util
diff --git a/contrib/qv4l2-qt3/qv4l2.cpp b/contrib/qv4l2-qt3/qv4l2.cpp
deleted file mode 100644 (file)
index 764fbd1..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-
-#include "qv4l2.h"
-#include "general-tab.h"
-#include "libv4l2util.h"
-
-#include <qimage.h>
-#include <qpixmap.h>
-#include <qtoolbar.h>
-#include <qtoolbutton.h>
-#include <qpopupmenu.h>
-#include <qmenubar.h>
-#include <qfile.h>
-#include <qfiledialog.h>
-#include <qstatusbar.h>
-#include <qapplication.h>
-#include <qmessagebox.h>
-#include <qlineedit.h>
-#include <qvalidator.h>
-#include <qlayout.h>
-#include <qvbox.h>
-#include <qhbox.h>
-#include <qlabel.h>
-#include <qslider.h>
-#include <qspinbox.h>
-#include <qcombobox.h>
-#include <qcheckbox.h>
-#include <qpushbutton.h>
-#include <qtooltip.h>
-#include <qwhatsthis.h>
-
-#include <fcntl.h>
-#include <sys/ioctl.h>
-#include <errno.h>
-#include <dirent.h>
-
-#include "fileopen.xpm"
-
-ApplicationWindow::ApplicationWindow()
-    : QMainWindow( 0, "V4L2 main window", WDestructiveClose | WGroupLeader )
-{
-    QPixmap openIcon, saveIcon;
-
-    fd = -1;
-
-    videoDevice = NULL;
-    sigMapper = NULL;
-    QToolBar * fileTools = new QToolBar( this, "file operations" );
-    fileTools->setLabel( "File Operations" );
-
-    openIcon = QPixmap( fileopen );
-    QToolButton * fileOpen
-       = new QToolButton( openIcon, "Open File", QString::null,
-                          this, SLOT(choose()), fileTools, "open file" );
-
-    (void)QWhatsThis::whatsThisButton( fileTools );
-
-    const char * fileOpenText = "<p><img source=\"fileopen\"> "
-                "Click this button to open a <em>new v4l device</em>.<br>"
-                "You can also select the <b>Open</b> command "
-                "from the <b>File</b> menu.</p>";
-
-    QWhatsThis::add( fileOpen, fileOpenText );
-
-    QMimeSourceFactory::defaultFactory()->setPixmap( "fileopen", openIcon );
-
-    QPopupMenu * file = new QPopupMenu( this );
-    menuBar()->insertItem( "&File", file );
-
-
-    int id;
-    id = file->insertItem( openIcon, "&Open...",
-                          this, SLOT(choose()), CTRL+Key_O );
-    file->setWhatsThis( id, fileOpenText );
-
-    file->insertSeparator();
-
-    file->insertItem( "&Close", this, SLOT(close()), CTRL+Key_W );
-
-    file->insertItem( "&Quit", qApp, SLOT( closeAllWindows() ), CTRL+Key_Q );
-
-    menuBar()->insertSeparator();
-
-    QPopupMenu * help = new QPopupMenu( this );
-    menuBar()->insertItem( "&Help", help );
-
-    help->insertItem( "&About", this, SLOT(about()), Key_F1 );
-    help->insertItem( "What's &This", this, SLOT(whatsThis()), SHIFT+Key_F1 );
-
-    statusBar()->message( "Ready", 2000 );
-
-    tabs = new QTabWidget(this);
-    tabs->setMargin(3);
-
-    //resize( 450, 600 );
-}
-
-
-ApplicationWindow::~ApplicationWindow()
-{
-       if (fd >= 0) ::close(fd);
-}
-
-
-void ApplicationWindow::setDevice(const QString &device)
-{
-       if (fd >= 0) ::close(fd);
-       while (QWidget *page = tabs->page(0)) {
-               tabs->removePage(page);
-               delete page;
-       }
-       delete tabs;
-       delete sigMapper;
-       tabs = new QTabWidget(this);
-       tabs->setMargin(3);
-       sigMapper = new QSignalMapper(this);
-       connect(sigMapper, SIGNAL(mapped(int)), this, SLOT(ctrlAction(int)));
-       ctrlMap.clear();
-       widgetMap.clear();
-       classMap.clear();
-
-       fd = ::open(device, O_RDONLY);
-       if (fd >= 0) {
-               tabs->addTab(new GeneralTab(device, fd, 4, tabs), "General");
-               addTabs();
-       }
-       if (QWidget *current = tabs->currentPage()) {
-               current->show();
-       }
-       tabs->show();
-       tabs->setFocus();
-       setCentralWidget(tabs);
-}
-
-void ApplicationWindow::selectdev(int index)
-{
-       setDevice(videoDevice->text(index));
-}
-
-void ApplicationWindow::add_dirVideoDevice(const char *dirname)
-{
-       DIR             *dir;
-       struct dirent   *entry;
-       const char      *vid = "video";
-       const char      *rad = "radio";
-       const char      *vbi = "vbi";
-       char            name[512], *p;
-
-       dir = opendir(dirname);
-       if (!dir)
-               return;
-
-       strcpy(name, dirname);
-       strcat(name, "/");
-       p = name + strlen(name);
-
-       entry = readdir(dir);
-       while (entry) {
-               if (!strncmp(entry->d_name, vid, strlen(vid)) ||
-                   !strncmp(entry->d_name, rad, strlen(rad)) ||
-                   !strncmp(entry->d_name, vbi, strlen(vbi))) {
-                       strcpy(p, entry->d_name);
-
-                       videoDevice->insertItem(name);
-               }
-               entry = readdir(dir);
-       }
-       closedir(dir);
-}
-
-void ApplicationWindow::choose()
-{
-       if (videoDevice)
-               delete videoDevice;
-
-       videoDevice = new QPopupMenu(this);
-
-       add_dirVideoDevice("/dev");
-       add_dirVideoDevice("/dev/v4l");
-
-       connect(videoDevice, SIGNAL(activated(int)), this, SLOT(selectdev(int)));
-
-       videoDevice->show();
-       videoDevice->setFocus();
-}
-
-void ApplicationWindow::closeEvent( QCloseEvent* ce )
-{
-       ce->accept();
-}
-
-bool ApplicationWindow::doIoctl(QString descr, unsigned cmd, void *arg)
-{
-       statusBar()->clear();
-       int err = ioctl(fd, cmd, arg);
-
-       if (err == -1) {
-               QString s = strerror(errno);
-               statusBar()->message(descr + ": " + s, 10000);
-       }
-       return err != -1;
-}
-
-void ApplicationWindow::about()
-{
-    QMessageBox::about( this, "V4L2 Control Panel",
-                       "This program allows easy experimenting with video4linux devices.");
-}
-
-ApplicationWindow *g_mw;
-
-int main(int argc, char **argv)
-{
-    QApplication a(argc, argv);
-    g_mw = new ApplicationWindow();
-    g_mw->setCaption( "V4L2 Control Panel" );
-    g_mw->setDevice("/dev/video0");
-    g_mw->show();
-    a.connect( &a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()) );
-    return a.exec();
-}
diff --git a/contrib/qv4l2-qt3/qv4l2.h b/contrib/qv4l2-qt3/qv4l2.h
deleted file mode 100644 (file)
index 5421a86..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-/* qv4l2: a control panel controlling v4l2 devices.
- *
- * Copyright (C) 2006 Hans Verkuil <hverkuil@xs4all.nl>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
- */
-
-#ifndef QV4L2_H
-#define QV4L2_H
-
-#include <qmainwindow.h>
-#include <qtabwidget.h>
-#include <qsignalmapper.h>
-#include <qgrid.h>
-#include <map>
-#include <vector>
-
-#include <linux/videodev2.h>
-
-class QComboBox;
-class QSpinBox;
-
-typedef std::vector<unsigned> ClassIDVec;
-typedef std::map<unsigned, ClassIDVec> ClassMap;
-typedef std::map<unsigned, struct v4l2_queryctrl> CtrlMap;
-typedef std::map<unsigned, QWidget *> WidgetMap;
-
-enum {
-       CTRL_UPDATE_ON_CHANGE = 0x10,
-       CTRL_DEFAULTS,
-       CTRL_REFRESH,
-       CTRL_UPDATE
-};
-
-class ApplicationWindow: public QMainWindow
-{
-    Q_OBJECT
-
-public:
-    ApplicationWindow();
-    ~ApplicationWindow();
-
-    void setDevice(const QString &device);
-    bool doIoctl(QString descr, unsigned cmd, void *arg);
-
-protected:
-    void closeEvent( QCloseEvent* );
-
-private slots:
-    void selectdev(int);
-    void choose();
-    void ctrlAction(int);
-
-    void about();
-
-private:
-    void add_dirVideoDevice(const char *dirname);
-    void addTabs();
-    void finishGrid(QWidget *vbox, QGrid *grid, unsigned ctrl_class, bool odd);
-    void addCtrl(QGrid *grid, const struct v4l2_queryctrl &qctrl);
-    void updateCtrl(unsigned id);
-    void refresh(unsigned ctrl_class);
-    void setDefaults(unsigned ctrl_class);
-    int getVal(unsigned id);
-    long long getVal64(unsigned id);
-    void setVal(unsigned id, int v);
-    void setVal64(unsigned id, long long v);
-    QString getCtrlFlags(unsigned flags);
-    void setWhat(QWidget *w, unsigned id, long long v);
-    void updateVideoInput();
-    void updateVideoOutput();
-    void updateAudioInput();
-    void updateAudioOutput();
-    void updateStandard();
-    void updateFreq();
-    void updateFreqChannel();
-
-    QString filename;
-    QSignalMapper *sigMapper;
-    QTabWidget *tabs;
-    QPopupMenu *videoDevice;
-    int fd;
-    CtrlMap ctrlMap;
-    WidgetMap widgetMap;
-    ClassMap classMap;
-};
-
-extern ApplicationWindow *g_mw;
-
-#endif