From 24b1fd51ad61526a8e259344df1353193148e97b Mon Sep 17 00:00:00 2001 From: Hans Verkuil Date: Thu, 29 Jun 2006 01:06:20 +0200 Subject: Update audio input after changing video input From: Hans Verkuil Changing the video input implies an audio input change. So update the audio input combobox. Signed-off-by: Hans Verkuil --- test/qv4l2/qv4l2.cpp | 12 +++++++++--- test/qv4l2/qv4l2.h | 5 ++++- 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'test/qv4l2') diff --git a/test/qv4l2/qv4l2.cpp b/test/qv4l2/qv4l2.cpp index 2299b9be7..ba43ad5c8 100644 --- a/test/qv4l2/qv4l2.cpp +++ b/test/qv4l2/qv4l2.cpp @@ -115,6 +115,7 @@ void ApplicationWindow::setDevice(const QString &device) ctrlMap.clear(); widgetMap.clear(); classMap.clear(); + audioInput = NULL; fd = ::open(device, O_RDONLY); if (fd >= 0) { @@ -170,13 +171,13 @@ void ApplicationWindow::addGeneralTab() if (ioctl(fd, VIDIOC_ENUMAUDIO, &vaudio) >= 0) { QLabel *label = new QLabel("Input Audio", grid); label->setAlignment(Qt::AlignRight); - QComboBox *combo = new QComboBox(grid); + audioInput = new QComboBox(grid); vaudio.index = 0; while (ioctl(fd, VIDIOC_ENUMAUDIO, &vaudio) >= 0) { - combo->insertItem((char *)vaudio.name); + audioInput->insertItem((char *)vaudio.name); vaudio.index++; } - connect(combo, SIGNAL(activated(int)), SLOT(inputAudioChanged(int))); + connect(audioInput, SIGNAL(activated(int)), SLOT(inputAudioChanged(int))); cnt++; } @@ -706,6 +707,11 @@ void ApplicationWindow::closeEvent( QCloseEvent* ce ) void ApplicationWindow::inputChanged(int input) { ioctl(fd, 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); + } } void ApplicationWindow::outputChanged(int output) diff --git a/test/qv4l2/qv4l2.h b/test/qv4l2/qv4l2.h index 75b423ebf..1b3bc4ed6 100644 --- a/test/qv4l2/qv4l2.h +++ b/test/qv4l2/qv4l2.h @@ -21,7 +21,7 @@ #define __user #include -class QTextEdit; +class QComboBox; typedef std::vector ClassIDVec; typedef std::map ClassMap; @@ -78,6 +78,9 @@ private: CtrlMap ctrlMap; WidgetMap widgetMap; ClassMap classMap; + + // General tab + QComboBox *audioInput; }; -- cgit v1.2.3