Merge branch 'radio' into 'master'
Change-Id: I86243b496b9fb42f828a67343dc576baa2c21ca0
This commit is contained in:
10
examples/declarative-radio/declarative-radio.pro
Normal file
10
examples/declarative-radio/declarative-radio.pro
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
TEMPLATE = app
|
||||||
|
TARGET = declarative-radio
|
||||||
|
DEPENDPATH += .
|
||||||
|
INCLUDEPATH += .
|
||||||
|
QT += declarative multimediakit
|
||||||
|
|
||||||
|
# Input
|
||||||
|
SOURCES += main.cpp
|
||||||
|
RESOURCES += declarative-radio.qrc
|
||||||
|
|
||||||
6
examples/declarative-radio/declarative-radio.qrc
Normal file
6
examples/declarative-radio/declarative-radio.qrc
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<!DOCTYPE RCC><RCC version="1.0">
|
||||||
|
<qresource>
|
||||||
|
<file>view.qml</file>
|
||||||
|
</qresource>
|
||||||
|
</RCC>
|
||||||
|
|
||||||
58
examples/declarative-radio/main.cpp
Normal file
58
examples/declarative-radio/main.cpp
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
||||||
|
** All rights reserved.
|
||||||
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||||
|
**
|
||||||
|
** This file is part of the demonstration applications of the Qt Toolkit.
|
||||||
|
**
|
||||||
|
** $QT_BEGIN_LICENSE:BSD$
|
||||||
|
** You may use this file under the terms of the BSD license as follows:
|
||||||
|
**
|
||||||
|
** "Redistribution and use in source and binary forms, with or without
|
||||||
|
** modification, are permitted provided that the following conditions are
|
||||||
|
** met:
|
||||||
|
** * Redistributions of source code must retain the above copyright
|
||||||
|
** notice, this list of conditions and the following disclaimer.
|
||||||
|
** * Redistributions in binary form must reproduce the above copyright
|
||||||
|
** notice, this list of conditions and the following disclaimer in
|
||||||
|
** the documentation and/or other materials provided with the
|
||||||
|
** distribution.
|
||||||
|
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
|
||||||
|
** the names of its contributors may be used to endorse or promote
|
||||||
|
** products derived from this software without specific prior written
|
||||||
|
** permission.
|
||||||
|
**
|
||||||
|
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||||
|
** $QT_END_LICENSE$
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
|
||||||
|
#include <qdeclarative.h>
|
||||||
|
#include <qsgview.h>
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char ** argv)
|
||||||
|
{
|
||||||
|
QApplication app(argc, argv);
|
||||||
|
|
||||||
|
QSGView view;
|
||||||
|
|
||||||
|
view.setSource(QUrl("qrc:view.qml"));
|
||||||
|
view.show();
|
||||||
|
|
||||||
|
return app.exec();
|
||||||
|
}
|
||||||
|
|
||||||
199
examples/declarative-radio/view.qml
Normal file
199
examples/declarative-radio/view.qml
Normal file
@@ -0,0 +1,199 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
||||||
|
** All rights reserved.
|
||||||
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||||
|
**
|
||||||
|
** This file is part of the examples of the Qt Toolkit.
|
||||||
|
**
|
||||||
|
** $QT_BEGIN_LICENSE:BSD$
|
||||||
|
** You may use this file under the terms of the BSD license as follows:
|
||||||
|
**
|
||||||
|
** "Redistribution and use in source and binary forms, with or without
|
||||||
|
** modification, are permitted provided that the following conditions are
|
||||||
|
** met:
|
||||||
|
** * Redistributions of source code must retain the above copyright
|
||||||
|
** notice, this list of conditions and the following disclaimer.
|
||||||
|
** * Redistributions in binary form must reproduce the above copyright
|
||||||
|
** notice, this list of conditions and the following disclaimer in
|
||||||
|
** the documentation and/or other materials provided with the
|
||||||
|
** distribution.
|
||||||
|
** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
|
||||||
|
** the names of its contributors may be used to endorse or promote
|
||||||
|
** products derived from this software without specific prior written
|
||||||
|
** permission.
|
||||||
|
**
|
||||||
|
** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||||
|
** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||||
|
** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||||
|
** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||||
|
** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||||
|
** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||||
|
** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||||
|
** $QT_END_LICENSE$
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
import QtQuick 2.0
|
||||||
|
import Qt.multimediakit 4.0
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: 400; height: 300;
|
||||||
|
|
||||||
|
Radio {
|
||||||
|
id: radio
|
||||||
|
band: Radio.FM
|
||||||
|
}
|
||||||
|
|
||||||
|
Column {
|
||||||
|
anchors.fill: parent
|
||||||
|
anchors.margins: 5
|
||||||
|
spacing: 5
|
||||||
|
|
||||||
|
Row {
|
||||||
|
|
||||||
|
Text {
|
||||||
|
id: freq
|
||||||
|
|
||||||
|
width: 150
|
||||||
|
height: 200
|
||||||
|
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
text: "" + radio.frequency / 1000 + " kHz"
|
||||||
|
}
|
||||||
|
Text {
|
||||||
|
id: sig
|
||||||
|
|
||||||
|
width: 200
|
||||||
|
height: 200
|
||||||
|
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
text: (radio.isAvailable() ? "No Signal " : "No Radio Found")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Row {
|
||||||
|
spacing: 5
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: 350
|
||||||
|
height: 10
|
||||||
|
|
||||||
|
color: "black"
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
width: 5
|
||||||
|
height: 10
|
||||||
|
color: "red"
|
||||||
|
|
||||||
|
y: 0
|
||||||
|
x: (parent.width - 5) * ((radio.frequency - radio.minimumFrequency) / (radio.maximumFrequency -
|
||||||
|
radio.minimumFrequency))
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Row {
|
||||||
|
spacing: 5
|
||||||
|
|
||||||
|
Rectangle {
|
||||||
|
id: scanDownButton
|
||||||
|
border.color: "black"
|
||||||
|
border.width: 1
|
||||||
|
radius: 2
|
||||||
|
|
||||||
|
width: 90
|
||||||
|
height: 40
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.fill: parent
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
text: "Scan Down"
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: radio.searchBackward();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Rectangle {
|
||||||
|
id: freqDownButton
|
||||||
|
border.color: "black"
|
||||||
|
border.width: 1
|
||||||
|
radius: 2
|
||||||
|
|
||||||
|
width: 90
|
||||||
|
height: 40
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.fill: parent
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
text: "Freq Down"
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
var f = radio.frequency;
|
||||||
|
f = f - radio.frequencyStep;
|
||||||
|
radio.setFrequency(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Rectangle {
|
||||||
|
id: freqUpButton
|
||||||
|
border.color: "black"
|
||||||
|
border.width: 1
|
||||||
|
radius: 2
|
||||||
|
|
||||||
|
width: 90
|
||||||
|
height: 40
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.fill: parent
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
text: "Freq Up"
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: {
|
||||||
|
var f = radio.frequency;
|
||||||
|
f = f + radio.frequencyStep;
|
||||||
|
radio.setFrequency(f);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Rectangle {
|
||||||
|
id: scanUpButton
|
||||||
|
border.color: "black"
|
||||||
|
border.width: 1
|
||||||
|
radius: 2
|
||||||
|
|
||||||
|
width: 90
|
||||||
|
height: 40
|
||||||
|
|
||||||
|
Text {
|
||||||
|
anchors.fill: parent
|
||||||
|
verticalAlignment: Text.AlignVCenter
|
||||||
|
horizontalAlignment: Text.AlignHCenter
|
||||||
|
text: "Scan Up"
|
||||||
|
}
|
||||||
|
|
||||||
|
MouseArea {
|
||||||
|
anchors.fill: parent
|
||||||
|
onClicked: radio.searchForward();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,5 +15,6 @@ SUBDIRS += \
|
|||||||
|
|
||||||
contains(QT_CONFIG, declarative) {
|
contains(QT_CONFIG, declarative) {
|
||||||
disabled:SUBDIRS += declarative-camera
|
disabled:SUBDIRS += declarative-camera
|
||||||
|
SUBDIRS += declarative-radio
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -45,8 +45,6 @@
|
|||||||
Radio::Radio()
|
Radio::Radio()
|
||||||
{
|
{
|
||||||
radio = new QRadioTuner;
|
radio = new QRadioTuner;
|
||||||
connect(radio,SIGNAL(frequencyChanged(int)),this,SLOT(freqChanged(int)));
|
|
||||||
connect(radio,SIGNAL(signalStrengthChanged(int)),this,SLOT(signalChanged(int)));
|
|
||||||
connect(radio, SIGNAL(error(QRadioTuner::Error)), this, SLOT(error(QRadioTuner::Error)));
|
connect(radio, SIGNAL(error(QRadioTuner::Error)), this, SLOT(error(QRadioTuner::Error)));
|
||||||
|
|
||||||
if(radio->isBandSupported(QRadioTuner::FM))
|
if(radio->isBandSupported(QRadioTuner::FM))
|
||||||
@@ -62,6 +60,7 @@ Radio::Radio()
|
|||||||
freq = new QLabel;
|
freq = new QLabel;
|
||||||
freq->setText(QString("%1 kHz").arg(radio->frequency()/1000));
|
freq->setText(QString("%1 kHz").arg(radio->frequency()/1000));
|
||||||
topBar->addWidget(freq);
|
topBar->addWidget(freq);
|
||||||
|
connect(radio,SIGNAL(frequencyChanged(int)),this,SLOT(freqChanged(int)));
|
||||||
|
|
||||||
signal = new QLabel;
|
signal = new QLabel;
|
||||||
if (radio->isAvailable())
|
if (radio->isAvailable())
|
||||||
@@ -69,6 +68,8 @@ Radio::Radio()
|
|||||||
else
|
else
|
||||||
signal->setText(tr("No radio found"));
|
signal->setText(tr("No radio found"));
|
||||||
topBar->addWidget(signal);
|
topBar->addWidget(signal);
|
||||||
|
connect(radio,SIGNAL(signalStrengthChanged(int)),this,SLOT(signalChanged(int)));
|
||||||
|
|
||||||
volumeSlider = new QSlider(Qt::Vertical,this);
|
volumeSlider = new QSlider(Qt::Vertical,this);
|
||||||
volumeSlider->setRange(0,100);
|
volumeSlider->setRange(0,100);
|
||||||
volumeSlider->setValue(50);
|
volumeSlider->setValue(50);
|
||||||
|
|||||||
@@ -48,6 +48,7 @@
|
|||||||
#include "qdeclarativemediametadata_p.h"
|
#include "qdeclarativemediametadata_p.h"
|
||||||
#include "qdeclarativeaudio_p.h"
|
#include "qdeclarativeaudio_p.h"
|
||||||
#include "qdeclarativevideooutput_p.h"
|
#include "qdeclarativevideooutput_p.h"
|
||||||
|
#include "qdeclarativeradio_p.h"
|
||||||
#if 0
|
#if 0
|
||||||
#include "qdeclarativecamera_p.h"
|
#include "qdeclarativecamera_p.h"
|
||||||
#include "qdeclarativecamerapreviewprovider_p.h"
|
#include "qdeclarativecamerapreviewprovider_p.h"
|
||||||
@@ -69,6 +70,7 @@ public:
|
|||||||
qmlRegisterType<QDeclarativeAudio>(uri, 4, 0, "Audio");
|
qmlRegisterType<QDeclarativeAudio>(uri, 4, 0, "Audio");
|
||||||
qmlRegisterType<QDeclarativeAudio>(uri, 4, 0, "MediaPlayer");
|
qmlRegisterType<QDeclarativeAudio>(uri, 4, 0, "MediaPlayer");
|
||||||
qmlRegisterType<QDeclarativeVideoOutput>(uri, 4, 0, "VideoOutput");
|
qmlRegisterType<QDeclarativeVideoOutput>(uri, 4, 0, "VideoOutput");
|
||||||
|
qmlRegisterType<QDeclarativeRadio>(uri, 4, 0, "Radio");
|
||||||
/* Disabled until ported to scenegraph */
|
/* Disabled until ported to scenegraph */
|
||||||
#if 0
|
#if 0
|
||||||
qmlRegisterType<QDeclarativeCamera>(uri, 4, 0, "Camera");
|
qmlRegisterType<QDeclarativeCamera>(uri, 4, 0, "Camera");
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ HEADERS += \
|
|||||||
qsgvideonode_p.h \
|
qsgvideonode_p.h \
|
||||||
qsgvideonode_i420.h \
|
qsgvideonode_i420.h \
|
||||||
qsgvideonode_rgb32.h \
|
qsgvideonode_rgb32.h \
|
||||||
|
qdeclarativeradio_p.h
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
multimedia.cpp \
|
multimedia.cpp \
|
||||||
@@ -26,6 +26,7 @@ SOURCES += \
|
|||||||
qsgvideonode.cpp \
|
qsgvideonode.cpp \
|
||||||
qsgvideonode_i420.cpp \
|
qsgvideonode_i420.cpp \
|
||||||
qsgvideonode_rgb32.cpp \
|
qsgvideonode_rgb32.cpp \
|
||||||
|
qdeclarativeradio.cpp
|
||||||
|
|
||||||
disabled {
|
disabled {
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
|
|||||||
198
src/imports/multimedia/qdeclarativeradio.cpp
Normal file
198
src/imports/multimedia/qdeclarativeradio.cpp
Normal file
@@ -0,0 +1,198 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
||||||
|
** All rights reserved.
|
||||||
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Toolkit.
|
||||||
|
**
|
||||||
|
** $QT_BEGIN_LICENSE:LGPL$
|
||||||
|
** GNU Lesser General Public License Usage
|
||||||
|
** This file may be used under the terms of the GNU Lesser General Public
|
||||||
|
** License version 2.1 as published by the Free Software Foundation and
|
||||||
|
** appearing in the file LICENSE.LGPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU Lesser
|
||||||
|
** General Public License version 2.1 requirements will be met:
|
||||||
|
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
|
**
|
||||||
|
** In addition, as a special exception, Nokia gives you certain additional
|
||||||
|
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||||
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU General
|
||||||
|
** Public License version 3.0 as published by the Free Software Foundation
|
||||||
|
** and appearing in the file LICENSE.GPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU General
|
||||||
|
** Public License version 3.0 requirements will be met:
|
||||||
|
** http://www.gnu.org/copyleft/gpl.html.
|
||||||
|
**
|
||||||
|
** Other Usage
|
||||||
|
** Alternatively, this file may be used in accordance with the terms and
|
||||||
|
** conditions contained in a signed written agreement between you and Nokia.
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
** $QT_END_LICENSE$
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include "qdeclarativeradio_p.h"
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
QDeclarativeRadio::QDeclarativeRadio(QObject *parent) :
|
||||||
|
QObject(parent),
|
||||||
|
m_radioTuner(0)
|
||||||
|
{
|
||||||
|
m_radioTuner = new QRadioTuner(this);
|
||||||
|
|
||||||
|
connect(m_radioTuner, SIGNAL(stateChanged(QRadioTuner::State)), this, SLOT(_q_stateChanged(QRadioTuner::State)));
|
||||||
|
connect(m_radioTuner, SIGNAL(bandChanged(QRadioTuner::Band)), this, SLOT(_q_bandChanged(QRadioTuner::Band)));
|
||||||
|
|
||||||
|
connect(m_radioTuner, SIGNAL(frequencyChanged(int)), this, SIGNAL(frequencyChanged(int)));
|
||||||
|
connect(m_radioTuner, SIGNAL(stereoStatusChanged(bool)), this, SIGNAL(stereoStatusChanged(bool)));
|
||||||
|
connect(m_radioTuner, SIGNAL(searchingChanged(bool)), this, SIGNAL(searchingChanged(bool)));
|
||||||
|
connect(m_radioTuner, SIGNAL(signalStrengthChanged(int)), this, SIGNAL(signalStrengthChanged(int)));
|
||||||
|
connect(m_radioTuner, SIGNAL(volumeChanged(int)), this, SIGNAL(volumeChanged(int)));
|
||||||
|
connect(m_radioTuner, SIGNAL(mutedChanged(bool)), this, SIGNAL(mutedChanged(bool)));
|
||||||
|
|
||||||
|
connect(m_radioTuner, SIGNAL(error(QRadioTuner::Error)), this, SLOT(_q_error(QRadioTuner::Error)));
|
||||||
|
}
|
||||||
|
|
||||||
|
QDeclarativeRadio::~QDeclarativeRadio()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QDeclarativeRadio::State QDeclarativeRadio::state() const
|
||||||
|
{
|
||||||
|
return static_cast<QDeclarativeRadio::State>(m_radioTuner->state());
|
||||||
|
}
|
||||||
|
|
||||||
|
QDeclarativeRadio::Band QDeclarativeRadio::band() const
|
||||||
|
{
|
||||||
|
return static_cast<QDeclarativeRadio::Band>(m_radioTuner->band());
|
||||||
|
}
|
||||||
|
|
||||||
|
int QDeclarativeRadio::frequency() const
|
||||||
|
{
|
||||||
|
return m_radioTuner->frequency();
|
||||||
|
}
|
||||||
|
|
||||||
|
QDeclarativeRadio::StereoMode QDeclarativeRadio::stereoMode() const
|
||||||
|
{
|
||||||
|
return static_cast<QDeclarativeRadio::StereoMode>(m_radioTuner->stereoMode());
|
||||||
|
}
|
||||||
|
|
||||||
|
int QDeclarativeRadio::volume() const
|
||||||
|
{
|
||||||
|
return m_radioTuner->volume();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool QDeclarativeRadio::muted() const
|
||||||
|
{
|
||||||
|
return m_radioTuner->isMuted();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool QDeclarativeRadio::stereo() const
|
||||||
|
{
|
||||||
|
return m_radioTuner->isStereo();
|
||||||
|
}
|
||||||
|
|
||||||
|
int QDeclarativeRadio::signalStrength() const
|
||||||
|
{
|
||||||
|
return m_radioTuner->signalStrength();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool QDeclarativeRadio::searching() const
|
||||||
|
{
|
||||||
|
return m_radioTuner->isSearching();
|
||||||
|
}
|
||||||
|
|
||||||
|
int QDeclarativeRadio::frequencyStep() const
|
||||||
|
{
|
||||||
|
return m_radioTuner->frequencyStep(m_radioTuner->band());
|
||||||
|
}
|
||||||
|
|
||||||
|
int QDeclarativeRadio::minimumFrequency() const
|
||||||
|
{
|
||||||
|
return m_radioTuner->frequencyRange(m_radioTuner->band()).first;
|
||||||
|
}
|
||||||
|
|
||||||
|
int QDeclarativeRadio::maximumFrequency() const
|
||||||
|
{
|
||||||
|
return m_radioTuner->frequencyRange(m_radioTuner->band()).second;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool QDeclarativeRadio::isAvailable() const
|
||||||
|
{
|
||||||
|
return m_radioTuner->isAvailable();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QDeclarativeRadio::setBand(QDeclarativeRadio::Band band)
|
||||||
|
{
|
||||||
|
m_radioTuner->setBand(static_cast<QRadioTuner::Band>(band));
|
||||||
|
}
|
||||||
|
|
||||||
|
void QDeclarativeRadio::setFrequency(int frequency)
|
||||||
|
{
|
||||||
|
m_radioTuner->setFrequency(frequency);
|
||||||
|
}
|
||||||
|
|
||||||
|
void QDeclarativeRadio::setStereoMode(QDeclarativeRadio::StereoMode stereoMode)
|
||||||
|
{
|
||||||
|
m_radioTuner->setStereoMode(static_cast<QRadioTuner::StereoMode>(stereoMode));
|
||||||
|
}
|
||||||
|
|
||||||
|
void QDeclarativeRadio::setVolume(int volume)
|
||||||
|
{
|
||||||
|
m_radioTuner->setVolume(volume);
|
||||||
|
}
|
||||||
|
|
||||||
|
void QDeclarativeRadio::setMuted(bool muted)
|
||||||
|
{
|
||||||
|
m_radioTuner->setMuted(muted);
|
||||||
|
}
|
||||||
|
|
||||||
|
void QDeclarativeRadio::cancelSearch()
|
||||||
|
{
|
||||||
|
m_radioTuner->cancelSearch();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QDeclarativeRadio::searchBackward()
|
||||||
|
{
|
||||||
|
m_radioTuner->searchBackward();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QDeclarativeRadio::searchForward()
|
||||||
|
{
|
||||||
|
m_radioTuner->searchForward();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QDeclarativeRadio::start()
|
||||||
|
{
|
||||||
|
m_radioTuner->start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QDeclarativeRadio::stop()
|
||||||
|
{
|
||||||
|
m_radioTuner->stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
void QDeclarativeRadio::_q_stateChanged(QRadioTuner::State state)
|
||||||
|
{
|
||||||
|
emit stateChanged(static_cast<QDeclarativeRadio::State>(state));
|
||||||
|
}
|
||||||
|
|
||||||
|
void QDeclarativeRadio::_q_bandChanged(QRadioTuner::Band band)
|
||||||
|
{
|
||||||
|
emit bandChanged(static_cast<QDeclarativeRadio::Band>(band));
|
||||||
|
}
|
||||||
|
|
||||||
|
void QDeclarativeRadio::_q_error(QRadioTuner::Error errorCode)
|
||||||
|
{
|
||||||
|
emit error(static_cast<QDeclarativeRadio::Error>(errorCode));
|
||||||
|
emit errorChanged();
|
||||||
|
}
|
||||||
173
src/imports/multimedia/qdeclarativeradio_p.h
Normal file
173
src/imports/multimedia/qdeclarativeradio_p.h
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
||||||
|
** All rights reserved.
|
||||||
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Toolkit.
|
||||||
|
**
|
||||||
|
** $QT_BEGIN_LICENSE:LGPL$
|
||||||
|
** GNU Lesser General Public License Usage
|
||||||
|
** This file may be used under the terms of the GNU Lesser General Public
|
||||||
|
** License version 2.1 as published by the Free Software Foundation and
|
||||||
|
** appearing in the file LICENSE.LGPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU Lesser
|
||||||
|
** General Public License version 2.1 requirements will be met:
|
||||||
|
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
|
**
|
||||||
|
** In addition, as a special exception, Nokia gives you certain additional
|
||||||
|
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||||
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU General
|
||||||
|
** Public License version 3.0 as published by the Free Software Foundation
|
||||||
|
** and appearing in the file LICENSE.GPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU General
|
||||||
|
** Public License version 3.0 requirements will be met:
|
||||||
|
** http://www.gnu.org/copyleft/gpl.html.
|
||||||
|
**
|
||||||
|
** Other Usage
|
||||||
|
** Alternatively, this file may be used in accordance with the terms and
|
||||||
|
** conditions contained in a signed written agreement between you and Nokia.
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
** $QT_END_LICENSE$
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef QDECLARATIVERADIO_P_H
|
||||||
|
#define QDECLARATIVERADIO_P_H
|
||||||
|
|
||||||
|
//
|
||||||
|
// W A R N I N G
|
||||||
|
// -------------
|
||||||
|
//
|
||||||
|
// This file is not part of the Qt API. It exists for the convenience
|
||||||
|
// of other Qt classes. This header file may change from version to
|
||||||
|
// version without notice, or even be removed.
|
||||||
|
//
|
||||||
|
// We mean it.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <QtDeclarative/qdeclarative.h>
|
||||||
|
#include <qradiotuner.h>
|
||||||
|
|
||||||
|
QT_BEGIN_HEADER
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
|
||||||
|
class QDeclarativeRadio : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_PROPERTY(State state READ state NOTIFY stateChanged)
|
||||||
|
Q_PROPERTY(Band band READ band WRITE setBand NOTIFY bandChanged)
|
||||||
|
Q_PROPERTY(int frequency READ frequency WRITE setFrequency NOTIFY frequencyChanged)
|
||||||
|
Q_PROPERTY(bool stereo READ stereo NOTIFY stereoStatusChanged)
|
||||||
|
Q_PROPERTY(StereoMode stereoMode READ stereoMode WRITE setStereoMode)
|
||||||
|
Q_PROPERTY(int signalStrength READ signalStrength NOTIFY signalStrengthChanged)
|
||||||
|
Q_PROPERTY(int volume READ volume WRITE setVolume NOTIFY volumeChanged)
|
||||||
|
Q_PROPERTY(bool muted READ muted WRITE setMuted NOTIFY mutedChanged)
|
||||||
|
Q_PROPERTY(bool searching READ searching NOTIFY searchingChanged)
|
||||||
|
Q_PROPERTY(int frequencyStep READ frequencyStep NOTIFY bandChanged)
|
||||||
|
Q_PROPERTY(int minimumFrequency READ minimumFrequency NOTIFY bandChanged)
|
||||||
|
Q_PROPERTY(int maximumFrequency READ maximumFrequency NOTIFY bandChanged)
|
||||||
|
Q_ENUMS(State)
|
||||||
|
Q_ENUMS(Band)
|
||||||
|
Q_ENUMS(Error)
|
||||||
|
Q_ENUMS(StereoMode)
|
||||||
|
|
||||||
|
public:
|
||||||
|
enum State {
|
||||||
|
ActiveState = QRadioTuner::ActiveState,
|
||||||
|
StoppedState = QRadioTuner::StoppedState
|
||||||
|
};
|
||||||
|
|
||||||
|
enum Band {
|
||||||
|
AM = QRadioTuner::AM,
|
||||||
|
FM = QRadioTuner::FM,
|
||||||
|
SW = QRadioTuner::SW,
|
||||||
|
LW = QRadioTuner::LW,
|
||||||
|
FM2 = QRadioTuner::FM2
|
||||||
|
};
|
||||||
|
|
||||||
|
enum Error {
|
||||||
|
NoError = QRadioTuner::NoError,
|
||||||
|
ResourceError = QRadioTuner::ResourceError,
|
||||||
|
OpenError = QRadioTuner::OpenError,
|
||||||
|
OutOfRangeError = QRadioTuner::OutOfRangeError
|
||||||
|
};
|
||||||
|
|
||||||
|
enum StereoMode {
|
||||||
|
ForceStereo = QRadioTuner::ForceStereo,
|
||||||
|
ForceMono = QRadioTuner::ForceMono,
|
||||||
|
Auto = QRadioTuner::Auto
|
||||||
|
};
|
||||||
|
|
||||||
|
QDeclarativeRadio(QObject *parent = 0);
|
||||||
|
~QDeclarativeRadio();
|
||||||
|
|
||||||
|
QDeclarativeRadio::State state() const;
|
||||||
|
QDeclarativeRadio::Band band() const;
|
||||||
|
int frequency() const;
|
||||||
|
QDeclarativeRadio::StereoMode stereoMode() const;
|
||||||
|
int volume() const;
|
||||||
|
bool muted() const;
|
||||||
|
|
||||||
|
bool stereo() const;
|
||||||
|
int signalStrength() const;
|
||||||
|
bool searching() const;
|
||||||
|
|
||||||
|
int frequencyStep() const;
|
||||||
|
int minimumFrequency() const;
|
||||||
|
int maximumFrequency() const;
|
||||||
|
|
||||||
|
Q_INVOKABLE bool isAvailable() const;
|
||||||
|
|
||||||
|
public Q_SLOTS:
|
||||||
|
void setBand(QDeclarativeRadio::Band band);
|
||||||
|
void setFrequency(int frequency);
|
||||||
|
void setStereoMode(QDeclarativeRadio::StereoMode stereoMode);
|
||||||
|
void setVolume(int volume);
|
||||||
|
void setMuted(bool muted);
|
||||||
|
|
||||||
|
void cancelSearch();
|
||||||
|
void searchBackward();
|
||||||
|
void searchForward();
|
||||||
|
void start();
|
||||||
|
void stop();
|
||||||
|
|
||||||
|
Q_SIGNALS:
|
||||||
|
void stateChanged(QDeclarativeRadio::State state);
|
||||||
|
void bandChanged(QDeclarativeRadio::Band band);
|
||||||
|
void frequencyChanged(int frequency);
|
||||||
|
void stereoStatusChanged(bool stereo);
|
||||||
|
void searchingChanged(bool searching);
|
||||||
|
void signalStrengthChanged(int signalStrength);
|
||||||
|
void volumeChanged(int volume);
|
||||||
|
void mutedChanged(bool muted);
|
||||||
|
|
||||||
|
void errorChanged();
|
||||||
|
void error(QDeclarativeRadio::Error errorCode);
|
||||||
|
|
||||||
|
private Q_SLOTS:
|
||||||
|
void _q_stateChanged(QRadioTuner::State state);
|
||||||
|
void _q_bandChanged(QRadioTuner::Band band);
|
||||||
|
void _q_error(QRadioTuner::Error errorCode);
|
||||||
|
|
||||||
|
private:
|
||||||
|
Q_DISABLE_COPY(QDeclarativeRadio)
|
||||||
|
|
||||||
|
QRadioTuner *m_radioTuner;
|
||||||
|
};
|
||||||
|
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
QML_DECLARE_TYPE(QT_PREPEND_NAMESPACE(QDeclarativeRadio))
|
||||||
|
|
||||||
|
QT_END_HEADER
|
||||||
|
|
||||||
|
#endif // QDECLARATIVERADIO_P_H
|
||||||
@@ -97,7 +97,7 @@ Q_SIGNALS:
|
|||||||
void bandChanged(QRadioTuner::Band band);
|
void bandChanged(QRadioTuner::Band band);
|
||||||
void frequencyChanged(int frequency);
|
void frequencyChanged(int frequency);
|
||||||
void stereoStatusChanged(bool stereo);
|
void stereoStatusChanged(bool stereo);
|
||||||
void searchingChanged(bool stereo);
|
void searchingChanged(bool searching);
|
||||||
void signalStrengthChanged(int signalStrength);
|
void signalStrengthChanged(int signalStrength);
|
||||||
void volumeChanged(int volume);
|
void volumeChanged(int volume);
|
||||||
void mutedChanged(bool muted);
|
void mutedChanged(bool muted);
|
||||||
|
|||||||
23
src/plugins/fakeradio/fakeradio.pro
Normal file
23
src/plugins/fakeradio/fakeradio.pro
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
load(qt_module)
|
||||||
|
|
||||||
|
TARGET = qtmedia_fakeradio
|
||||||
|
QT += multimediakit-private
|
||||||
|
PLUGIN_TYPE = mediaservice
|
||||||
|
|
||||||
|
load(qt_plugin)
|
||||||
|
DESTDIR = $$QT.multimediakit.plugins/$${PLUGIN_TYPE}
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
fakeradioserviceplugin.h \
|
||||||
|
fakeradioservice.h \
|
||||||
|
fakeradiotunercontrol.h
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
fakeradioserviceplugin.cpp \
|
||||||
|
fakeradioservice.cpp \
|
||||||
|
fakeradiotunercontrol.cpp
|
||||||
|
|
||||||
|
|
||||||
|
target.path += $$[QT_INSTALL_PLUGINS]/$${PLUGIN_TYPE}
|
||||||
|
INSTALLS += target
|
||||||
|
|
||||||
71
src/plugins/fakeradio/fakeradioservice.cpp
Normal file
71
src/plugins/fakeradio/fakeradioservice.cpp
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
||||||
|
** All rights reserved.
|
||||||
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Toolkit.
|
||||||
|
**
|
||||||
|
** $QT_BEGIN_LICENSE:LGPL$
|
||||||
|
** GNU Lesser General Public License Usage
|
||||||
|
** This file may be used under the terms of the GNU Lesser General Public
|
||||||
|
** License version 2.1 as published by the Free Software Foundation and
|
||||||
|
** appearing in the file LICENSE.LGPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU Lesser
|
||||||
|
** General Public License version 2.1 requirements will be met:
|
||||||
|
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
|
**
|
||||||
|
** In addition, as a special exception, Nokia gives you certain additional
|
||||||
|
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||||
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU General
|
||||||
|
** Public License version 3.0 as published by the Free Software Foundation
|
||||||
|
** and appearing in the file LICENSE.GPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU General
|
||||||
|
** Public License version 3.0 requirements will be met:
|
||||||
|
** http://www.gnu.org/copyleft/gpl.html.
|
||||||
|
**
|
||||||
|
** Other Usage
|
||||||
|
** Alternatively, this file may be used in accordance with the terms and
|
||||||
|
** conditions contained in a signed written agreement between you and Nokia.
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
** $QT_END_LICENSE$
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <QtCore/qvariant.h>
|
||||||
|
#include <QtCore/qdebug.h>
|
||||||
|
#include <QtCore/qfile.h>
|
||||||
|
#include <QtGui/qwidget.h>
|
||||||
|
|
||||||
|
#include "fakeradioservice.h"
|
||||||
|
#include "fakeradiotunercontrol.h"
|
||||||
|
|
||||||
|
FakeRadioService::FakeRadioService(QObject *parent):
|
||||||
|
QMediaService(parent)
|
||||||
|
{
|
||||||
|
m_control = new FakeRadioTunerControl(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
FakeRadioService::~FakeRadioService()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
QMediaControl *FakeRadioService::requestControl(const char* name)
|
||||||
|
{
|
||||||
|
if (qstrcmp(name,QRadioTunerControl_iid) == 0)
|
||||||
|
return m_control;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void FakeRadioService::releaseControl(QMediaControl *)
|
||||||
|
{
|
||||||
|
}
|
||||||
67
src/plugins/fakeradio/fakeradioservice.h
Normal file
67
src/plugins/fakeradio/fakeradioservice.h
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
||||||
|
** All rights reserved.
|
||||||
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Toolkit.
|
||||||
|
**
|
||||||
|
** $QT_BEGIN_LICENSE:LGPL$
|
||||||
|
** GNU Lesser General Public License Usage
|
||||||
|
** This file may be used under the terms of the GNU Lesser General Public
|
||||||
|
** License version 2.1 as published by the Free Software Foundation and
|
||||||
|
** appearing in the file LICENSE.LGPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU Lesser
|
||||||
|
** General Public License version 2.1 requirements will be met:
|
||||||
|
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
|
**
|
||||||
|
** In addition, as a special exception, Nokia gives you certain additional
|
||||||
|
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||||
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU General
|
||||||
|
** Public License version 3.0 as published by the Free Software Foundation
|
||||||
|
** and appearing in the file LICENSE.GPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU General
|
||||||
|
** Public License version 3.0 requirements will be met:
|
||||||
|
** http://www.gnu.org/copyleft/gpl.html.
|
||||||
|
**
|
||||||
|
** Other Usage
|
||||||
|
** Alternatively, this file may be used in accordance with the terms and
|
||||||
|
** conditions contained in a signed written agreement between you and Nokia.
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
** $QT_END_LICENSE$
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef FAKERADIOSERVICE_H
|
||||||
|
#define FAKERADIOSERVICE_H
|
||||||
|
|
||||||
|
#include <QtCore/qobject.h>
|
||||||
|
|
||||||
|
#include <qmediaservice.h>
|
||||||
|
QT_USE_NAMESPACE
|
||||||
|
|
||||||
|
class FakeRadioTunerControl;
|
||||||
|
|
||||||
|
class FakeRadioService : public QMediaService
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
FakeRadioService(QObject *parent = 0);
|
||||||
|
~FakeRadioService();
|
||||||
|
|
||||||
|
QMediaControl *requestControl(const char* name);
|
||||||
|
void releaseControl(QMediaControl *);
|
||||||
|
|
||||||
|
private:
|
||||||
|
FakeRadioTunerControl *m_control;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // FAKERADIOSERVICE_H
|
||||||
84
src/plugins/fakeradio/fakeradioserviceplugin.cpp
Normal file
84
src/plugins/fakeradio/fakeradioserviceplugin.cpp
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
||||||
|
** All rights reserved.
|
||||||
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Toolkit.
|
||||||
|
**
|
||||||
|
** $QT_BEGIN_LICENSE:LGPL$
|
||||||
|
** GNU Lesser General Public License Usage
|
||||||
|
** This file may be used under the terms of the GNU Lesser General Public
|
||||||
|
** License version 2.1 as published by the Free Software Foundation and
|
||||||
|
** appearing in the file LICENSE.LGPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU Lesser
|
||||||
|
** General Public License version 2.1 requirements will be met:
|
||||||
|
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
|
**
|
||||||
|
** In addition, as a special exception, Nokia gives you certain additional
|
||||||
|
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||||
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU General
|
||||||
|
** Public License version 3.0 as published by the Free Software Foundation
|
||||||
|
** and appearing in the file LICENSE.GPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU General
|
||||||
|
** Public License version 3.0 requirements will be met:
|
||||||
|
** http://www.gnu.org/copyleft/gpl.html.
|
||||||
|
**
|
||||||
|
** Other Usage
|
||||||
|
** Alternatively, this file may be used in accordance with the terms and
|
||||||
|
** conditions contained in a signed written agreement between you and Nokia.
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
** $QT_END_LICENSE$
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include <QtCore/qstring.h>
|
||||||
|
#include <QtCore/qfile.h>
|
||||||
|
#include <QtCore/qdebug.h>
|
||||||
|
#include <QtCore/qdir.h>
|
||||||
|
|
||||||
|
#include "fakeradioserviceplugin.h"
|
||||||
|
#include "fakeradioservice.h"
|
||||||
|
|
||||||
|
#include <qmediaserviceprovider.h>
|
||||||
|
|
||||||
|
|
||||||
|
QStringList FakeRadioServicePlugin::keys() const
|
||||||
|
{
|
||||||
|
return QStringList() <<
|
||||||
|
QLatin1String(Q_MEDIASERVICE_RADIO);
|
||||||
|
}
|
||||||
|
|
||||||
|
QMediaService* FakeRadioServicePlugin::create(QString const& key)
|
||||||
|
{
|
||||||
|
if (key == QLatin1String(Q_MEDIASERVICE_RADIO))
|
||||||
|
return new FakeRadioService;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioServicePlugin::release(QMediaService *service)
|
||||||
|
{
|
||||||
|
delete service;
|
||||||
|
}
|
||||||
|
|
||||||
|
QList<QByteArray> FakeRadioServicePlugin::devices(const QByteArray &service) const
|
||||||
|
{
|
||||||
|
return QList<QByteArray>();
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FakeRadioServicePlugin::deviceDescription(const QByteArray &service, const QByteArray &device)
|
||||||
|
{
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Q_EXPORT_PLUGIN2(qtmedia_fakeradio, FakeRadioServicePlugin);
|
||||||
|
|
||||||
63
src/plugins/fakeradio/fakeradioserviceplugin.h
Normal file
63
src/plugins/fakeradio/fakeradioserviceplugin.h
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
||||||
|
** All rights reserved.
|
||||||
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Toolkit.
|
||||||
|
**
|
||||||
|
** $QT_BEGIN_LICENSE:LGPL$
|
||||||
|
** GNU Lesser General Public License Usage
|
||||||
|
** This file may be used under the terms of the GNU Lesser General Public
|
||||||
|
** License version 2.1 as published by the Free Software Foundation and
|
||||||
|
** appearing in the file LICENSE.LGPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU Lesser
|
||||||
|
** General Public License version 2.1 requirements will be met:
|
||||||
|
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
|
**
|
||||||
|
** In addition, as a special exception, Nokia gives you certain additional
|
||||||
|
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||||
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU General
|
||||||
|
** Public License version 3.0 as published by the Free Software Foundation
|
||||||
|
** and appearing in the file LICENSE.GPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU General
|
||||||
|
** Public License version 3.0 requirements will be met:
|
||||||
|
** http://www.gnu.org/copyleft/gpl.html.
|
||||||
|
**
|
||||||
|
** Other Usage
|
||||||
|
** Alternatively, this file may be used in accordance with the terms and
|
||||||
|
** conditions contained in a signed written agreement between you and Nokia.
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
** $QT_END_LICENSE$
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef FAKERADIOSERVICEPLUGIN_H
|
||||||
|
#define FAKERADIOSERVICEPLUGIN_H
|
||||||
|
|
||||||
|
#include <qmediaserviceproviderplugin.h>
|
||||||
|
|
||||||
|
QT_USE_NAMESPACE
|
||||||
|
|
||||||
|
class FakeRadioServicePlugin : public QMediaServiceProviderPlugin, public QMediaServiceSupportedDevicesInterface
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
Q_INTERFACES(QMediaServiceSupportedDevicesInterface)
|
||||||
|
public:
|
||||||
|
QStringList keys() const;
|
||||||
|
QMediaService* create(QString const& key);
|
||||||
|
void release(QMediaService *service);
|
||||||
|
|
||||||
|
QList<QByteArray> devices(const QByteArray &service) const;
|
||||||
|
QString deviceDescription(const QByteArray &service, const QByteArray &device);
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // FAKERADIOSERVICEPLUGIN_H
|
||||||
335
src/plugins/fakeradio/fakeradiotunercontrol.cpp
Normal file
335
src/plugins/fakeradio/fakeradiotunercontrol.cpp
Normal file
@@ -0,0 +1,335 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
||||||
|
** All rights reserved.
|
||||||
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Toolkit.
|
||||||
|
**
|
||||||
|
** $QT_BEGIN_LICENSE:LGPL$
|
||||||
|
** GNU Lesser General Public License Usage
|
||||||
|
** This file may be used under the terms of the GNU Lesser General Public
|
||||||
|
** License version 2.1 as published by the Free Software Foundation and
|
||||||
|
** appearing in the file LICENSE.LGPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU Lesser
|
||||||
|
** General Public License version 2.1 requirements will be met:
|
||||||
|
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
|
**
|
||||||
|
** In addition, as a special exception, Nokia gives you certain additional
|
||||||
|
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||||
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU General
|
||||||
|
** Public License version 3.0 as published by the Free Software Foundation
|
||||||
|
** and appearing in the file LICENSE.GPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU General
|
||||||
|
** Public License version 3.0 requirements will be met:
|
||||||
|
** http://www.gnu.org/copyleft/gpl.html.
|
||||||
|
**
|
||||||
|
** Other Usage
|
||||||
|
** Alternatively, this file may be used in accordance with the terms and
|
||||||
|
** conditions contained in a signed written agreement between you and Nokia.
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
** $QT_END_LICENSE$
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#include "fakeradiotunercontrol.h"
|
||||||
|
#include "fakeradioservice.h"
|
||||||
|
|
||||||
|
#include <QtCore/qdebug.h>
|
||||||
|
|
||||||
|
FakeRadioTunerControl::FakeRadioTunerControl(QObject *parent)
|
||||||
|
:QRadioTunerControl(parent)
|
||||||
|
{
|
||||||
|
m_state = QRadioTuner::StoppedState;
|
||||||
|
m_freqMin = 520000;
|
||||||
|
m_freqMax = 108000000;
|
||||||
|
m_currentBand = QRadioTuner::FM;
|
||||||
|
m_currentFreq = 0;
|
||||||
|
m_stereo = true;
|
||||||
|
m_stereoMode = QRadioTuner::Auto;
|
||||||
|
m_signalStrength = 0;
|
||||||
|
m_volume = 50;
|
||||||
|
m_muted = false;
|
||||||
|
|
||||||
|
m_searching = false;
|
||||||
|
m_forward = true;
|
||||||
|
m_searchTimer = new QTimer(this);
|
||||||
|
m_searchTimer->setSingleShot(true);
|
||||||
|
connect(m_searchTimer, SIGNAL(timeout()), this, SLOT(searchEnded()));
|
||||||
|
|
||||||
|
QTimer::singleShot(300, this, SLOT(delayedInit()));
|
||||||
|
|
||||||
|
qsrand(QTime::currentTime().msec());
|
||||||
|
}
|
||||||
|
|
||||||
|
FakeRadioTunerControl::~FakeRadioTunerControl()
|
||||||
|
{
|
||||||
|
m_searchTimer->stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FakeRadioTunerControl::isAvailable() const
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
QtMultimediaKit::AvailabilityError FakeRadioTunerControl::availabilityError() const
|
||||||
|
{
|
||||||
|
return QtMultimediaKit::NoError;
|
||||||
|
}
|
||||||
|
|
||||||
|
QRadioTuner::State FakeRadioTunerControl::state() const
|
||||||
|
{
|
||||||
|
return m_state;
|
||||||
|
}
|
||||||
|
|
||||||
|
QRadioTuner::Band FakeRadioTunerControl::band() const
|
||||||
|
{
|
||||||
|
return m_currentBand;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FakeRadioTunerControl::isBandSupported(QRadioTuner::Band b) const
|
||||||
|
{
|
||||||
|
switch (b) {
|
||||||
|
case QRadioTuner::FM:
|
||||||
|
if (m_freqMin <= 87500000 && m_freqMax >= 108000000)
|
||||||
|
return true;
|
||||||
|
break;
|
||||||
|
case QRadioTuner::LW:
|
||||||
|
if (m_freqMin <= 148500 && m_freqMax >= 283500)
|
||||||
|
return true;
|
||||||
|
case QRadioTuner::AM:
|
||||||
|
if (m_freqMin <= 520000 && m_freqMax >= 1610000)
|
||||||
|
return true;
|
||||||
|
default:
|
||||||
|
if (m_freqMin <= 1711000 && m_freqMax >= 30000000)
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioTunerControl::setBand(QRadioTuner::Band b)
|
||||||
|
{
|
||||||
|
if (isBandSupported(b)) {
|
||||||
|
m_currentBand = b;
|
||||||
|
emit bandChanged(m_currentBand);
|
||||||
|
|
||||||
|
int f = m_currentFreq;
|
||||||
|
QPair<int, int> fRange = frequencyRange(m_currentBand);
|
||||||
|
|
||||||
|
if (f < fRange.first)
|
||||||
|
f = fRange.first;
|
||||||
|
if (f > fRange.second)
|
||||||
|
f = fRange.second;
|
||||||
|
|
||||||
|
if (f != m_currentFreq) {
|
||||||
|
m_currentFreq = f;
|
||||||
|
emit frequencyChanged(m_currentFreq);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int FakeRadioTunerControl::frequency() const
|
||||||
|
{
|
||||||
|
return m_currentFreq;
|
||||||
|
}
|
||||||
|
|
||||||
|
int FakeRadioTunerControl::frequencyStep(QRadioTuner::Band b) const
|
||||||
|
{
|
||||||
|
int step = 0;
|
||||||
|
|
||||||
|
if (b == QRadioTuner::FM)
|
||||||
|
step = 100000; // 100kHz steps
|
||||||
|
else if (b == QRadioTuner::LW)
|
||||||
|
step = 1000; // 1kHz steps
|
||||||
|
else if (b == QRadioTuner::AM)
|
||||||
|
step = 1000; // 1kHz steps
|
||||||
|
else if (b == QRadioTuner::SW)
|
||||||
|
step = 500; // 500Hz steps
|
||||||
|
|
||||||
|
return step;
|
||||||
|
}
|
||||||
|
|
||||||
|
QPair<int,int> FakeRadioTunerControl::frequencyRange(QRadioTuner::Band b) const
|
||||||
|
{
|
||||||
|
if (b == QRadioTuner::FM)
|
||||||
|
return qMakePair<int,int>(87500000,108000000);
|
||||||
|
else if (b == QRadioTuner::LW)
|
||||||
|
return qMakePair<int,int>(148500,283500);
|
||||||
|
else if (b == QRadioTuner::AM)
|
||||||
|
return qMakePair<int,int>(520000,1710000);
|
||||||
|
else if (b == QRadioTuner::SW)
|
||||||
|
return qMakePair<int,int>(1711111,30000000);
|
||||||
|
|
||||||
|
return qMakePair<int,int>(0,0);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioTunerControl::setFrequency(int frequency)
|
||||||
|
{
|
||||||
|
qint64 f = frequency;
|
||||||
|
QPair<int, int> fRange = frequencyRange(m_currentBand);
|
||||||
|
|
||||||
|
if (frequency < fRange.first)
|
||||||
|
f = fRange.first;
|
||||||
|
if (frequency > fRange.second)
|
||||||
|
f = fRange.second;
|
||||||
|
|
||||||
|
m_currentFreq = f;
|
||||||
|
emit frequencyChanged(m_currentFreq);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FakeRadioTunerControl::isStereo() const
|
||||||
|
{
|
||||||
|
return m_stereo;
|
||||||
|
}
|
||||||
|
|
||||||
|
QRadioTuner::StereoMode FakeRadioTunerControl::stereoMode() const
|
||||||
|
{
|
||||||
|
return m_stereoMode;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioTunerControl::setStereoMode(QRadioTuner::StereoMode mode)
|
||||||
|
{
|
||||||
|
bool stereo = true;
|
||||||
|
|
||||||
|
if (mode == QRadioTuner::ForceMono)
|
||||||
|
stereo = false;
|
||||||
|
else
|
||||||
|
stereo = true;
|
||||||
|
|
||||||
|
m_stereo = stereo;
|
||||||
|
m_stereoMode = mode;
|
||||||
|
|
||||||
|
emit stereoStatusChanged(stereo);
|
||||||
|
}
|
||||||
|
|
||||||
|
int FakeRadioTunerControl::signalStrength() const
|
||||||
|
{
|
||||||
|
return m_signalStrength;
|
||||||
|
}
|
||||||
|
|
||||||
|
int FakeRadioTunerControl::volume() const
|
||||||
|
{
|
||||||
|
return m_volume;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioTunerControl::setVolume(int volume)
|
||||||
|
{
|
||||||
|
int v = volume;
|
||||||
|
|
||||||
|
if (v < 0)
|
||||||
|
v = 0;
|
||||||
|
if (100 > v)
|
||||||
|
v = 100;
|
||||||
|
|
||||||
|
m_volume = v;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FakeRadioTunerControl::isMuted() const
|
||||||
|
{
|
||||||
|
return m_muted;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioTunerControl::setMuted(bool muted)
|
||||||
|
{
|
||||||
|
if (muted != m_muted) {
|
||||||
|
m_muted = muted;
|
||||||
|
emit mutedChanged(m_muted);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool FakeRadioTunerControl::isSearching() const
|
||||||
|
{
|
||||||
|
return m_searching;
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioTunerControl::cancelSearch()
|
||||||
|
{
|
||||||
|
m_searching = false;
|
||||||
|
m_searchTimer->stop();
|
||||||
|
emit searchingChanged(m_searching);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioTunerControl::searchForward()
|
||||||
|
{
|
||||||
|
m_forward = true;
|
||||||
|
performSearch();
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioTunerControl::searchBackward()
|
||||||
|
{
|
||||||
|
m_forward = false;
|
||||||
|
performSearch();
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioTunerControl::start()
|
||||||
|
{
|
||||||
|
if (isAvailable() && m_state != QRadioTuner::ActiveState) {
|
||||||
|
m_state = QRadioTuner::ActiveState;
|
||||||
|
emit stateChanged(m_state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioTunerControl::stop()
|
||||||
|
{
|
||||||
|
if (m_state != QRadioTuner::StoppedState) {
|
||||||
|
m_state = QRadioTuner::StoppedState;
|
||||||
|
emit stateChanged(m_state);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QRadioTuner::Error FakeRadioTunerControl::error() const
|
||||||
|
{
|
||||||
|
return QRadioTuner::NoError;
|
||||||
|
}
|
||||||
|
|
||||||
|
QString FakeRadioTunerControl::errorString() const
|
||||||
|
{
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioTunerControl::delayedInit()
|
||||||
|
{
|
||||||
|
m_signalStrength = 50;
|
||||||
|
emit signalStrengthChanged(m_signalStrength);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioTunerControl::performSearch()
|
||||||
|
{
|
||||||
|
m_searching = true;
|
||||||
|
m_searchTimer->start(qrand() % 1000);
|
||||||
|
emit searchingChanged(m_searching);
|
||||||
|
}
|
||||||
|
|
||||||
|
void FakeRadioTunerControl::searchEnded()
|
||||||
|
{
|
||||||
|
int minFreq, maxFreq, newFreq;
|
||||||
|
QPair<int, int> fRange = frequencyRange(m_currentBand);
|
||||||
|
|
||||||
|
if (m_forward) {
|
||||||
|
minFreq = m_currentFreq;
|
||||||
|
maxFreq = fRange.second;
|
||||||
|
} else {
|
||||||
|
minFreq = fRange.first;
|
||||||
|
maxFreq = m_currentFreq;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((qreal)(maxFreq - minFreq) / (qreal)(fRange.second - fRange.first) < 0.02) { // don't want to do anything if we have less than 2% of the range to move
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
newFreq = (qrand() % (maxFreq - minFreq)) + minFreq;
|
||||||
|
newFreq -= newFreq % frequencyStep(m_currentBand);
|
||||||
|
|
||||||
|
m_searching = false;
|
||||||
|
m_currentFreq = newFreq;
|
||||||
|
emit searchingChanged(m_searching);
|
||||||
|
emit frequencyChanged(m_currentFreq);
|
||||||
|
}
|
||||||
123
src/plugins/fakeradio/fakeradiotunercontrol.h
Normal file
123
src/plugins/fakeradio/fakeradiotunercontrol.h
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
/****************************************************************************
|
||||||
|
**
|
||||||
|
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
|
||||||
|
** All rights reserved.
|
||||||
|
** Contact: Nokia Corporation (qt-info@nokia.com)
|
||||||
|
**
|
||||||
|
** This file is part of the Qt Toolkit.
|
||||||
|
**
|
||||||
|
** $QT_BEGIN_LICENSE:LGPL$
|
||||||
|
** GNU Lesser General Public License Usage
|
||||||
|
** This file may be used under the terms of the GNU Lesser General Public
|
||||||
|
** License version 2.1 as published by the Free Software Foundation and
|
||||||
|
** appearing in the file LICENSE.LGPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU Lesser
|
||||||
|
** General Public License version 2.1 requirements will be met:
|
||||||
|
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||||
|
**
|
||||||
|
** In addition, as a special exception, Nokia gives you certain additional
|
||||||
|
** rights. These rights are described in the Nokia Qt LGPL Exception
|
||||||
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||||||
|
**
|
||||||
|
** GNU General Public License Usage
|
||||||
|
** Alternatively, this file may be used under the terms of the GNU General
|
||||||
|
** Public License version 3.0 as published by the Free Software Foundation
|
||||||
|
** and appearing in the file LICENSE.GPL included in the packaging of this
|
||||||
|
** file. Please review the following information to ensure the GNU General
|
||||||
|
** Public License version 3.0 requirements will be met:
|
||||||
|
** http://www.gnu.org/copyleft/gpl.html.
|
||||||
|
**
|
||||||
|
** Other Usage
|
||||||
|
** Alternatively, this file may be used in accordance with the terms and
|
||||||
|
** conditions contained in a signed written agreement between you and Nokia.
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
**
|
||||||
|
** $QT_END_LICENSE$
|
||||||
|
**
|
||||||
|
****************************************************************************/
|
||||||
|
|
||||||
|
#ifndef FAKERADIOTUNERCONTROL_H
|
||||||
|
#define FAKERADIOTUNERCONTROL_H
|
||||||
|
|
||||||
|
#include <QtCore/qobject.h>
|
||||||
|
#include <QtCore/qtimer.h>
|
||||||
|
#include <QtCore/qdatetime.h>
|
||||||
|
|
||||||
|
#include <qradiotunercontrol.h>
|
||||||
|
|
||||||
|
QT_USE_NAMESPACE
|
||||||
|
|
||||||
|
class FakeRadioService;
|
||||||
|
|
||||||
|
class FakeRadioTunerControl : public QRadioTunerControl
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
FakeRadioTunerControl(QObject *parent = 0);
|
||||||
|
~FakeRadioTunerControl();
|
||||||
|
|
||||||
|
bool isAvailable() const;
|
||||||
|
QtMultimediaKit::AvailabilityError availabilityError() const;
|
||||||
|
|
||||||
|
QRadioTuner::State state() const;
|
||||||
|
|
||||||
|
QRadioTuner::Band band() const;
|
||||||
|
void setBand(QRadioTuner::Band b);
|
||||||
|
bool isBandSupported(QRadioTuner::Band b) const;
|
||||||
|
|
||||||
|
int frequency() const;
|
||||||
|
int frequencyStep(QRadioTuner::Band b) const;
|
||||||
|
QPair<int,int> frequencyRange(QRadioTuner::Band b) const;
|
||||||
|
void setFrequency(int frequency);
|
||||||
|
|
||||||
|
bool isStereo() const;
|
||||||
|
QRadioTuner::StereoMode stereoMode() const;
|
||||||
|
void setStereoMode(QRadioTuner::StereoMode mode);
|
||||||
|
|
||||||
|
int signalStrength() const;
|
||||||
|
|
||||||
|
int volume() const;
|
||||||
|
void setVolume(int volume);
|
||||||
|
|
||||||
|
bool isMuted() const;
|
||||||
|
void setMuted(bool muted);
|
||||||
|
|
||||||
|
bool isSearching() const;
|
||||||
|
void cancelSearch();
|
||||||
|
|
||||||
|
void searchForward();
|
||||||
|
void searchBackward();
|
||||||
|
|
||||||
|
void start();
|
||||||
|
void stop();
|
||||||
|
|
||||||
|
QRadioTuner::Error error() const;
|
||||||
|
QString errorString() const;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void delayedInit();
|
||||||
|
void performSearch();
|
||||||
|
void searchEnded();
|
||||||
|
|
||||||
|
private: //data
|
||||||
|
QRadioTuner::State m_state;
|
||||||
|
QRadioTuner::Band m_currentBand;
|
||||||
|
qint64 m_freqMin;
|
||||||
|
qint64 m_freqMax;
|
||||||
|
qint64 m_currentFreq;
|
||||||
|
bool m_stereo;
|
||||||
|
QRadioTuner::StereoMode m_stereoMode;
|
||||||
|
int m_signalStrength;
|
||||||
|
int m_volume;
|
||||||
|
bool m_muted;
|
||||||
|
|
||||||
|
// searching
|
||||||
|
bool m_searching;
|
||||||
|
bool m_forward;
|
||||||
|
QTimer *m_searchTimer;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // FAKERADIOTUNERCONTROL_H
|
||||||
@@ -33,7 +33,8 @@ unix:!mac {
|
|||||||
SUBDIRS += audiocapture
|
SUBDIRS += audiocapture
|
||||||
}
|
}
|
||||||
|
|
||||||
!maemo*:SUBDIRS += v4l
|
# v4l is turned off because it is not supported in Qt 5
|
||||||
|
# !maemo*:SUBDIRS += v4l
|
||||||
|
|
||||||
contains(config_test_pulseaudio, yes) {
|
contains(config_test_pulseaudio, yes) {
|
||||||
SUBDIRS += pulseaudio
|
SUBDIRS += pulseaudio
|
||||||
@@ -44,3 +45,7 @@ mac:!simulator {
|
|||||||
SUBDIRS += audiocapture
|
SUBDIRS += audiocapture
|
||||||
!qpa: SUBDIRS += qt7
|
!qpa: SUBDIRS += qt7
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# fake radio to test the radio APIs
|
||||||
|
SUBDIRS += fakeradio
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user