}
if (needsStd) {
+ v4l2_std_id tmp;
+
addLabel("TV Standard");
m_tvStandard = new QComboBox(parent);
addWidget(m_tvStandard);
connect(m_tvStandard, SIGNAL(activated(int)), SLOT(standardChanged(int)));
refreshStandards();
- addLabel("");
- m_qryStandard = new QPushButton("Query Standard", parent);
- addWidget(m_qryStandard);
- connect(m_qryStandard, SIGNAL(clicked()), SLOT(qryStdClicked()));
+ if (ioctl_exists(VIDIOC_QUERYSTD, &tmp)) {
+ addLabel("");
+ m_qryStandard = new QPushButton("Query Standard", parent);
+ addWidget(m_qryStandard);
+ connect(m_qryStandard, SIGNAL(clicked()), SLOT(qryStdClicked()));
+ }
}
if (needsPreset) {
refreshStandards();
updateStandard();
m_tvStandard->setEnabled(in.capabilities & V4L2_IN_CAP_STD);
- m_qryStandard->setEnabled(in.capabilities & V4L2_IN_CAP_STD);
+ if (m_qryStandard)
+ m_qryStandard->setEnabled(in.capabilities & V4L2_IN_CAP_STD);
}
if (m_videoPreset) {
refreshPresets();
m_videoOutput->setCurrentIndex(output);
if (m_tvStandard) {
m_tvStandard->setEnabled(out.capabilities & V4L2_OUT_CAP_STD);
- m_qryStandard->setEnabled(out.capabilities & V4L2_OUT_CAP_STD);
+ if (m_qryStandard)
+ m_qryStandard->setEnabled(out.capabilities & V4L2_OUT_CAP_STD);
}
if (m_videoPreset) {
m_videoPreset->setEnabled(out.capabilities & V4L2_OUT_CAP_PRESETS);
return err >= 0;
}
+bool v4l2::ioctl_exists(unsigned cmd, void *arg)
+{
+ int err;
+
+ if (useWrapper())
+ err = v4l2_ioctl(m_fd, cmd, arg);
+ else
+ err = ::ioctl(m_fd, cmd, arg);
+ return !err || errno != ENOTTY;
+}
+
int v4l2::read(unsigned char *p, int size)
{
if (useWrapper())
int read(unsigned char *p, int size);
int ioctl(unsigned cmd, void *arg);
bool ioctl(const QString &descr, unsigned cmd, void *arg);
+ bool ioctl_exists(unsigned cmd, void *arg);
void *mmap(size_t length, int64_t offset);
int munmap(void *_start, size_t length);