diff options
author | Kurt Korbatits <kurt.korbatits@nokia.com> | 2010-02-02 09:42:00 +1000 |
---|---|---|
committer | Kurt Korbatits <kurt.korbatits@nokia.com> | 2010-02-02 09:42:00 +1000 |
commit | e4e704a0886523620931e813147d86433db19329 (patch) | |
tree | dd6bfa8bbfe06f461906e3d56fc418c92277aad0 | |
parent | a748eada726f5a4b4e09f2f4d6e71a0638398c2b (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.cpp | 3 | ||||
-rw-r--r-- | plugins/multimedia/v4l/camera/cameraformatconverter.cpp | 1 | ||||
-rw-r--r-- | plugins/multimedia/v4l/camera/cameraformatconverter.h | 2 | ||||
-rw-r--r-- | plugins/multimedia/v4l/camera/v4lcameracontrol.cpp | 2 | ||||
-rw-r--r-- | plugins/multimedia/v4l/camera/v4lcameraservice.cpp | 1 | ||||
-rw-r--r-- | plugins/multimedia/v4l/camera/v4lcamerasession.cpp | 12 | ||||
-rw-r--r-- | plugins/multimedia/v4l/camera/v4lcamerasession.h | 15 | ||||
-rw-r--r-- | plugins/multimedia/v4l/camera/v4limagecapturecontrol.cpp | 1 | ||||
-rw-r--r-- | plugins/multimedia/v4l/camera/v4lrecordercontrol.cpp | 5 | ||||
-rw-r--r-- | plugins/multimedia/v4l/camera/v4lvideobuffer.h | 8 | ||||
-rw-r--r-- | plugins/multimedia/v4l/camera/v4lvideodevicecontrol.cpp | 55 | ||||
-rw-r--r-- | plugins/multimedia/v4l/camera/v4lvideoencode.cpp | 2 | ||||
-rw-r--r-- | plugins/multimedia/v4l/camera/v4lvideorenderer.cpp | 2 | ||||
-rw-r--r-- | plugins/multimedia/v4l/radio/v4lradiocontrol.cpp | 21 | ||||
-rw-r--r-- | plugins/multimedia/v4l/v4lserviceplugin.cpp | 53 |
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(); + } + } + } + } } } |