summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKurt Korbatits <kurt.korbatits@nokia.com>2010-02-02 09:42:00 +1000
committerKurt Korbatits <kurt.korbatits@nokia.com>2010-02-02 09:42:00 +1000
commite4e704a0886523620931e813147d86433db19329 (patch)
treedd6bfa8bbfe06f461906e3d56fc418c92277aad0
parenta748eada726f5a4b4e09f2f4d6e71a0638398c2b (diff)
Code cleanup of v4l plugin.
-removed debug outputs. -remove limit of 2 camera devices. -radio device name to radio0 instead of radio.
-rw-r--r--examples/radio/radio.cpp3
-rw-r--r--plugins/multimedia/v4l/camera/cameraformatconverter.cpp1
-rw-r--r--plugins/multimedia/v4l/camera/cameraformatconverter.h2
-rw-r--r--plugins/multimedia/v4l/camera/v4lcameracontrol.cpp2
-rw-r--r--plugins/multimedia/v4l/camera/v4lcameraservice.cpp1
-rw-r--r--plugins/multimedia/v4l/camera/v4lcamerasession.cpp12
-rw-r--r--plugins/multimedia/v4l/camera/v4lcamerasession.h15
-rw-r--r--plugins/multimedia/v4l/camera/v4limagecapturecontrol.cpp1
-rw-r--r--plugins/multimedia/v4l/camera/v4lrecordercontrol.cpp5
-rw-r--r--plugins/multimedia/v4l/camera/v4lvideobuffer.h8
-rw-r--r--plugins/multimedia/v4l/camera/v4lvideodevicecontrol.cpp55
-rw-r--r--plugins/multimedia/v4l/camera/v4lvideoencode.cpp2
-rw-r--r--plugins/multimedia/v4l/camera/v4lvideorenderer.cpp2
-rw-r--r--plugins/multimedia/v4l/radio/v4lradiocontrol.cpp21
-rw-r--r--plugins/multimedia/v4l/v4lserviceplugin.cpp53
15 files changed, 88 insertions, 95 deletions
diff --git a/examples/radio/radio.cpp b/examples/radio/radio.cpp
index 6cba6ed618..d49f0bcaf6 100644
--- a/examples/radio/radio.cpp
+++ b/examples/radio/radio.cpp
@@ -52,7 +52,7 @@ Radio::Radio()
if(radio->isBandSupported(QRadioTuner::FM))
radio->setBand(QRadioTuner::FM);
else {
- qWarning()<<"Currently only works for FM";
+ qWarning()<<"no radio devices found that support FM radio";
exit(0);
}
@@ -79,7 +79,6 @@ Radio::Radio()
#if defined Q_OS_SYMBIAN
volumeSlider->setRange(0,10);
#endif
- qWarning()<<radio->volume();
volumeSlider->setValue(radio->volume());
connect(volumeSlider,SIGNAL(valueChanged(int)),this,SLOT(updateVolume(int)));
topBar->addWidget(volumeSlider);
diff --git a/plugins/multimedia/v4l/camera/cameraformatconverter.cpp b/plugins/multimedia/v4l/camera/cameraformatconverter.cpp
index 6671d9530a..e8d7957480 100644
--- a/plugins/multimedia/v4l/camera/cameraformatconverter.cpp
+++ b/plugins/multimedia/v4l/camera/cameraformatconverter.cpp
@@ -40,7 +40,6 @@
****************************************************************************/
#include "cameraformatconverter.h"
-#include <QDebug>
/*
Create a format converter
diff --git a/plugins/multimedia/v4l/camera/cameraformatconverter.h b/plugins/multimedia/v4l/camera/cameraformatconverter.h
index ea971a09eb..ec1c09eb1c 100644
--- a/plugins/multimedia/v4l/camera/cameraformatconverter.h
+++ b/plugins/multimedia/v4l/camera/cameraformatconverter.h
@@ -42,7 +42,7 @@
#ifndef CAMERAFORMATCONVERTER_H
#define CAMERAFORMATCONVERTER_H
-#include <QList>
+#include <QtCore/qlist.h>
#include <QtMultimedia/qvideoframe.h>
/*
diff --git a/plugins/multimedia/v4l/camera/v4lcameracontrol.cpp b/plugins/multimedia/v4l/camera/v4lcameracontrol.cpp
index 3201084c17..55192161e2 100644
--- a/plugins/multimedia/v4l/camera/v4lcameracontrol.cpp
+++ b/plugins/multimedia/v4l/camera/v4lcameracontrol.cpp
@@ -43,8 +43,6 @@
#include "v4lcameraservice.h"
#include "v4lcamerasession.h"
-#include <QtCore/qdebug.h>
-
V4LCameraControl::V4LCameraControl(QObject *parent)
:QCameraControl(parent),m_captureMode(QCamera::CaptureStillImage)
diff --git a/plugins/multimedia/v4l/camera/v4lcameraservice.cpp b/plugins/multimedia/v4l/camera/v4lcameraservice.cpp
index 0250b30952..29016aae2a 100644
--- a/plugins/multimedia/v4l/camera/v4lcameraservice.cpp
+++ b/plugins/multimedia/v4l/camera/v4lcameraservice.cpp
@@ -40,7 +40,6 @@
****************************************************************************/
#include <QtCore/qvariant.h>
-#include <QtCore/qdebug.h>
#include <QtGui/qwidget.h>
#include "v4lcameraservice.h"
diff --git a/plugins/multimedia/v4l/camera/v4lcamerasession.cpp b/plugins/multimedia/v4l/camera/v4lcamerasession.cpp
index 9078f95d01..77560af2de 100644
--- a/plugins/multimedia/v4l/camera/v4lcamerasession.cpp
+++ b/plugins/multimedia/v4l/camera/v4lcamerasession.cpp
@@ -39,9 +39,11 @@
**
****************************************************************************/
+#include <QtGui/qwidget.h>
+#include <QtCore/qfile.h>
#include <QtCore/qdebug.h>
-#include <QWidget>
-#include <QFile>
+#include <QtMultimedia/qabstractvideobuffer.h>
+#include <QtMultimedia/qvideosurfaceformat.h>
#include <linux/types.h>
#include <sys/time.h>
@@ -59,8 +61,6 @@
#include "v4lvideorenderer.h"
#include "v4lvideobuffer.h"
-#include <QtMultimedia/qabstractvideobuffer.h>
-#include <QtMultimedia/qvideosurfaceformat.h>
V4LCameraSession::V4LCameraSession(QObject *parent)
:QObject(parent)
@@ -498,7 +498,6 @@ void V4LCameraSession::record()
if (m_surface->isFormatSupported(QVideoSurfaceFormat(m_windowSize,format))) {
// found a match, try to use it!
if(isFormatSupported(format)) {
- qWarning()<<"found a match "<<format;
match = true;
pixelF = format;
break;
@@ -520,7 +519,6 @@ void V4LCameraSession::record()
match = true;
converter = CameraFormatConverter::createFormatConverter(pixelF,m_windowSize.width(),
m_windowSize.height());
- qWarning()<<"found a converter match from: "<<pixelF<<" to RGB565";
}
}
if (!match) {
@@ -533,7 +531,6 @@ void V4LCameraSession::record()
match = true;
converter = CameraFormatConverter::createFormatConverter(pixelF,m_windowSize.width(),
m_windowSize.height());
- qWarning()<<"fallback, convert from: "<<pixelF<<" to RGB565";
break;
}
}
@@ -721,7 +718,6 @@ void V4LCameraSession::captureFrame()
qWarning()<<"error reading frame";
return;
}
- //qWarning()<<"size: "<<buf.bytesused<<", time: "<<buf.timestamp.tv_sec;
if(m_surface) {
if(converter) {
diff --git a/plugins/multimedia/v4l/camera/v4lcamerasession.h b/plugins/multimedia/v4l/camera/v4lcamerasession.h
index 67f2988d3c..a8848066b1 100644
--- a/plugins/multimedia/v4l/camera/v4lcamerasession.h
+++ b/plugins/multimedia/v4l/camera/v4lcamerasession.h
@@ -43,17 +43,18 @@
#define V4LCAMERASESSION_H
#include <QtCore/qobject.h>
-#include <QSocketNotifier>
-#include <QTime>
-#include <QUrl>
-#include <QFile>
+#include <QtCore/qsocketnotifier.h>
+#include <QtCore/qdatetime.h>
+#include <QtCore/qurl.h>
+#include <QtCore/qfile.h>
+#include <QtMultimedia/qvideoframe.h>
+#include <QtMultimedia/qabstractvideosurface.h>
#include <qmediarecorder.h>
#include <experimental/qcamera.h>
-#include <QtMultimedia/qvideoframe.h>
-#include <QtMultimedia/qabstractvideosurface.h>
#include "cameraformatconverter.h"
+
QTM_USE_NAMESPACE
class V4LVideoRenderer;
@@ -125,6 +126,8 @@ public:
void captureToFile(bool value);
Q_SIGNALS:
+ void durationChanged(qint64 position);
+ void error(int error, const QString &errorString);
void cameraStateChanged(QCamera::State);
void recordStateChanged(QMediaRecorder::State);
void imageCaptured(const QString &fileName, const QImage &img);
diff --git a/plugins/multimedia/v4l/camera/v4limagecapturecontrol.cpp b/plugins/multimedia/v4l/camera/v4limagecapturecontrol.cpp
index 5d74a27dd1..40bf3eb22b 100644
--- a/plugins/multimedia/v4l/camera/v4limagecapturecontrol.cpp
+++ b/plugins/multimedia/v4l/camera/v4limagecapturecontrol.cpp
@@ -40,7 +40,6 @@
****************************************************************************/
#include "v4limagecapturecontrol.h"
-#include <QtCore/QDebug>
V4LImageCaptureControl::V4LImageCaptureControl(V4LCameraSession *session)
:QImageCaptureControl(session), m_session(session), m_ready(false)
diff --git a/plugins/multimedia/v4l/camera/v4lrecordercontrol.cpp b/plugins/multimedia/v4l/camera/v4lrecordercontrol.cpp
index fab2e2196b..5f2bb809d9 100644
--- a/plugins/multimedia/v4l/camera/v4lrecordercontrol.cpp
+++ b/plugins/multimedia/v4l/camera/v4lrecordercontrol.cpp
@@ -40,14 +40,13 @@
****************************************************************************/
#include "v4lrecordercontrol.h"
-#include <QtCore/QDebug>
V4LRecorderControl::V4LRecorderControl(V4LCameraSession *session)
:QMediaRecorderControl(session), m_session(session), m_state(QMediaRecorder::StoppedState)
{
connect(m_session, SIGNAL(recordStateChanged(QMediaRecorder::State)), SLOT(updateState(QMediaRecorder::State)));
- //connect(m_session, SIGNAL(error(int,QString)), SIGNAL(error(int,QString)));
- //connect(m_session, SIGNAL(durationChanged(qint64)), SIGNAL(durationChanged(qint64)));
+ connect(m_session, SIGNAL(error(int,QString)), SIGNAL(error(int,QString)));
+ connect(m_session, SIGNAL(durationChanged(qint64)), SIGNAL(durationChanged(qint64)));
}
V4LRecorderControl::~V4LRecorderControl()
diff --git a/plugins/multimedia/v4l/camera/v4lvideobuffer.h b/plugins/multimedia/v4l/camera/v4lvideobuffer.h
index c6bf0b7657..06a10df231 100644
--- a/plugins/multimedia/v4l/camera/v4lvideobuffer.h
+++ b/plugins/multimedia/v4l/camera/v4lvideobuffer.h
@@ -42,8 +42,7 @@
#ifndef V4LVIDEOBUFFER_H
#define V4LVIDEOBUFFER_H
-#include <QSize>
-
+#include <QtCore/qsize.h>
#include <QtMultimedia/QAbstractVideoBuffer>
#include <linux/types.h>
@@ -51,11 +50,6 @@
#include <sys/ioctl.h>
#include <linux/videodev2.h>
-#include <linux/types.h>
-#include <sys/time.h>
-#include <sys/ioctl.h>
-#include <linux/videodev2.h>
-
class V4LVideoBuffer : public QAbstractVideoBuffer
{
public:
diff --git a/plugins/multimedia/v4l/camera/v4lvideodevicecontrol.cpp b/plugins/multimedia/v4l/camera/v4lvideodevicecontrol.cpp
index a0a2e97d6d..5ca4f4852e 100644
--- a/plugins/multimedia/v4l/camera/v4lvideodevicecontrol.cpp
+++ b/plugins/multimedia/v4l/camera/v4lvideodevicecontrol.cpp
@@ -39,8 +39,10 @@
**
****************************************************************************/
-#include <QFile>
-#include <QtGui/QIcon>
+#include <QtCore/qfile.h>
+#include <QtCore/qdir.h>
+#include <QtGui/qicon.h>
+
#include "v4lvideodevicecontrol.h"
#include "v4lcamerasession.h"
@@ -49,29 +51,32 @@ V4LVideoDeviceControl::V4LVideoDeviceControl(QObject *parent)
{
m_session = qobject_cast<V4LCameraSession*>(parent);
- QString name;
- QFile video0("/sys/class/video4linux/video0/name");
- if (video0.exists()) {
- devices.append("v4l:/dev/video0");
- char str[31];
- memset(str,0,31);
- video0.open(QIODevice::ReadOnly);
- video0.read(str,30);
- name = QString(str);
- descriptions.append(name.simplified());
- video0.close();
- }
-
- QFile video1("/sys/class/video4linux/video1/name");
- if (video0.exists()) {
- devices.append("v4l:/dev/video1");
- char str[31];
- memset(str,0,31);
- video1.open(QIODevice::ReadOnly);
- video1.read(str,30);
- name = QString(str);
- descriptions.append(name.simplified());
- video1.close();
+ QDir cameras = QDir::root();
+ cameras.setFilter(QDir::NoDotAndDotDot | QDir::AllEntries);
+ if (!cameras.cd("sys/class/video4linux"))
+ return;
+ else {
+ QFileInfoList list = cameras.entryInfoList();
+ for (int i = 0; i < list.size(); ++i) {
+ QFileInfo fileInfo = list.at(i);
+ if (fileInfo.fileName().contains(QLatin1String("video"))) {
+ QString videoName = QString("%1/%2/name").arg("/sys/class/video4linux").
+ arg(fileInfo.fileName());
+ QFile videoFile(videoName);
+ if (videoFile.exists()) {
+ if (videoFile.open(QIODevice::ReadOnly)) {
+ char str[31];
+ memset(str,0,31);
+ if (videoFile.read(str,30) > 0) {
+ devices.append(QString("v4l:/dev/%1").arg(fileInfo.fileName()).
+ toLocal8Bit().constData());
+ descriptions.append(QString(str).simplified());
+ }
+ videoFile.close();
+ }
+ }
+ }
+ }
}
selected = 0;
}
diff --git a/plugins/multimedia/v4l/camera/v4lvideoencode.cpp b/plugins/multimedia/v4l/camera/v4lvideoencode.cpp
index 8398ae9e39..dd03861db9 100644
--- a/plugins/multimedia/v4l/camera/v4lvideoencode.cpp
+++ b/plugins/multimedia/v4l/camera/v4lvideoencode.cpp
@@ -42,8 +42,6 @@
#include "v4lvideoencode.h"
#include "v4lcamerasession.h"
-#include <QtCore/qdebug.h>
-
V4LVideoEncode::V4LVideoEncode(QObject *parent)
:QVideoEncoderControl(parent)
{
diff --git a/plugins/multimedia/v4l/camera/v4lvideorenderer.cpp b/plugins/multimedia/v4l/camera/v4lvideorenderer.cpp
index e1531074ce..dd528aa32d 100644
--- a/plugins/multimedia/v4l/camera/v4lvideorenderer.cpp
+++ b/plugins/multimedia/v4l/camera/v4lvideorenderer.cpp
@@ -41,8 +41,6 @@
#include "v4lvideorenderer.h"
-#include <QtCore/qdebug.h>
-
V4LVideoRendererControl::V4LVideoRendererControl(V4LCameraSession* session, QObject *parent)
:QVideoRendererControl(parent),
m_surface(0),
diff --git a/plugins/multimedia/v4l/radio/v4lradiocontrol.cpp b/plugins/multimedia/v4l/radio/v4lradiocontrol.cpp
index bf559394e5..84a1b7ae71 100644
--- a/plugins/multimedia/v4l/radio/v4lradiocontrol.cpp
+++ b/plugins/multimedia/v4l/radio/v4lradiocontrol.cpp
@@ -344,31 +344,32 @@ void V4LRadioControl::setMuted(bool muted)
bool V4LRadioControl::isSearching() const
{
- //TODO
- return false;
+ return scanning;
}
void V4LRadioControl::cancelSearch()
{
- //TODO
+ scanning = false;
+ timer->stop();
}
void V4LRadioControl::searchForward()
{
// Scan up
if(scanning) {
- scanning = false;
+ cancelSearch();
return;
}
scanning = true;
forward = true;
+ timer->start();
}
void V4LRadioControl::searchBackward()
{
// Scan down
if(scanning) {
- scanning = false;
+ cancelSearch();
return;
}
scanning = true;
@@ -407,12 +408,16 @@ void V4LRadioControl::search()
if(!scanning) return;
+ if (signal > 25) {
+ cancelSearch();
+ return;
+ }
+
if(forward) {
setFrequency(currentFreq+step);
} else {
setFrequency(currentFreq-step);
}
- emit signalStrengthChanged(signalStrength());
}
bool V4LRadioControl::initRadio()
@@ -426,7 +431,7 @@ bool V4LRadioControl::initRadio()
available = false;
freqMin = freqMax = currentFreq = 0;
- fd = ::open("/dev/radio", O_RDWR);
+ fd = ::open("/dev/radio0", O_RDWR);
if(fd != -1) {
// Capabilites
@@ -479,8 +484,6 @@ bool V4LRadioControl::initRadio()
}
}
- qWarning()<<"min="<<freqMin<<", max="<<freqMax<<", current="<<currentFreq;
-
// stereo
bool stereo = false;
memset( &tuner, 0, sizeof( tuner ) );
diff --git a/plugins/multimedia/v4l/v4lserviceplugin.cpp b/plugins/multimedia/v4l/v4lserviceplugin.cpp
index a9bb43e4ce..041e493eaa 100644
--- a/plugins/multimedia/v4l/v4lserviceplugin.cpp
+++ b/plugins/multimedia/v4l/v4lserviceplugin.cpp
@@ -40,8 +40,9 @@
****************************************************************************/
#include <QtCore/qstring.h>
+#include <QtCore/qfile.h>
#include <QtCore/qdebug.h>
-#include <QtCore/QFile>
+#include <QtCore/qdir.h>
#include "v4lserviceplugin.h"
#include "v4lcameraservice.h"
@@ -65,7 +66,6 @@ QMediaService* V4LServicePlugin::create(QString const& key)
if (key == QLatin1String(Q_MEDIASERVICE_CAMERA))
return new V4LCameraService;
- //qDebug() << "unsupported key:" << key;
return 0;
}
@@ -105,29 +105,32 @@ void V4LServicePlugin::updateDevices() const
m_cameraDevices.clear();
m_cameraDescriptions.clear();
- QString name;
- QFile video0("/sys/class/video4linux/video0/name");
- if (video0.exists()) {
- m_cameraDevices.append("v4l:/dev/video0");
- char str[31];
- memset(str,0,31);
- video0.open(QIODevice::ReadOnly);
- video0.read(str,30);
- name = QString(str);
- m_cameraDescriptions.append(name.simplified());
- video0.close();
- }
-
- QFile video1("/sys/class/video4linux/video1/name");
- if (video0.exists()) {
- m_cameraDevices.append("v4l:/dev/video1");
- char str[31];
- memset(str,0,31);
- video1.open(QIODevice::ReadOnly);
- video1.read(str,30);
- name = QString(str);
- m_cameraDescriptions.append(name.simplified());
- video1.close();
+ QDir cameras = QDir::root();
+ cameras.setFilter(QDir::NoDotAndDotDot | QDir::AllEntries);
+ if (!cameras.cd("sys/class/video4linux"))
+ return;
+ else {
+ QFileInfoList list = cameras.entryInfoList();
+ for (int i = 0; i < list.size(); ++i) {
+ QFileInfo fileInfo = list.at(i);
+ if (fileInfo.fileName().contains(QLatin1String("video"))) {
+ QString videoName = QString("%1/%2/name").arg("/sys/class/video4linux").
+ arg(fileInfo.fileName());
+ QFile videoFile(videoName);
+ if (videoFile.exists()) {
+ if (videoFile.open(QIODevice::ReadOnly)) {
+ char str[31];
+ memset(str,0,31);
+ if (videoFile.read(str,30) > 0) {
+ m_cameraDevices.append(QString("v4l:/dev/%1").arg(fileInfo.fileName()).
+ toLocal8Bit().constData());
+ m_cameraDescriptions.append(QString(str).simplified());
+ }
+ videoFile.close();
+ }
+ }
+ }
+ }
}
}