Added QML API for getting the limits for a specific radio band.

Using properties for the frequency step, minimum and maximum
frequency of the currently selected band.
Also updated the declarative-radio example to use the minimum
and maximum frequencies to show a tuner band for the radio.

Change-Id: I9f28f10e98e008c14b10bdc12b0727086cd45f0b
Reviewed-on: http://codereview.qt.nokia.com/3829
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Dmytro Poplavskiy <dmytro.poplavskiy@nokia.com>
This commit is contained in:
Jonas Rabbe
2011-08-30 10:46:19 +10:00
committed by Qt by Nokia
parent 7535629ecb
commit 8e954ee246
3 changed files with 49 additions and 9 deletions

View File

@@ -46,11 +46,13 @@ Rectangle {
Radio { Radio {
id: radio id: radio
band: Radio.FM
} }
Column { Column {
anchors.fill: parent anchors.fill: parent
anchors.margins: 5 anchors.margins: 5
spacing: 5
Row { Row {
@@ -61,7 +63,7 @@ Rectangle {
height: 200 height: 200
verticalAlignment: Text.AlignVCenter verticalAlignment: Text.AlignVCenter
text: "" + radio.frequency / 1000 + " kHz"; text: "" + radio.frequency / 1000 + " kHz"
} }
Text { Text {
id: sig id: sig
@@ -74,6 +76,28 @@ Rectangle {
} }
} }
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 { Row {
spacing: 5 spacing: 5
@@ -119,7 +143,7 @@ Rectangle {
anchors.fill: parent anchors.fill: parent
onClicked: { onClicked: {
var f = radio.frequency; var f = radio.frequency;
f = f - radio.frequencyStep(Radio.FM); f = f - radio.frequencyStep;
radio.setFrequency(f); radio.setFrequency(f);
} }
} }
@@ -144,7 +168,7 @@ Rectangle {
anchors.fill: parent anchors.fill: parent
onClicked: { onClicked: {
var f = radio.frequency; var f = radio.frequency;
f = f + radio.frequencyStep(Radio.FM); f = f + radio.frequencyStep;
radio.setFrequency(f); radio.setFrequency(f);
} }
} }

View File

@@ -111,16 +111,26 @@ bool QDeclarativeRadio::searching() const
return m_radioTuner->isSearching(); 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 bool QDeclarativeRadio::isAvailable() const
{ {
return m_radioTuner->isAvailable(); return m_radioTuner->isAvailable();
} }
int QDeclarativeRadio::frequencyStep(QDeclarativeRadio::Band band) const
{
return m_radioTuner->frequencyStep(static_cast<QRadioTuner::Band>(band));
}
void QDeclarativeRadio::setBand(QDeclarativeRadio::Band band) void QDeclarativeRadio::setBand(QDeclarativeRadio::Band band)
{ {
m_radioTuner->setBand(static_cast<QRadioTuner::Band>(band)); m_radioTuner->setBand(static_cast<QRadioTuner::Band>(band));

View File

@@ -72,6 +72,9 @@ class QDeclarativeRadio : public QObject
Q_PROPERTY(int volume READ volume WRITE setVolume NOTIFY volumeChanged) Q_PROPERTY(int volume READ volume WRITE setVolume NOTIFY volumeChanged)
Q_PROPERTY(bool muted READ muted WRITE setMuted NOTIFY mutedChanged) Q_PROPERTY(bool muted READ muted WRITE setMuted NOTIFY mutedChanged)
Q_PROPERTY(bool searching READ searching NOTIFY searchingChanged) 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(State)
Q_ENUMS(Band) Q_ENUMS(Band)
Q_ENUMS(Error) Q_ENUMS(Error)
@@ -118,8 +121,11 @@ public:
int signalStrength() const; int signalStrength() const;
bool searching() const; bool searching() const;
int frequencyStep() const;
int minimumFrequency() const;
int maximumFrequency() const;
Q_INVOKABLE bool isAvailable() const; Q_INVOKABLE bool isAvailable() const;
Q_INVOKABLE int frequencyStep(QDeclarativeRadio::Band band) const;
public Q_SLOTS: public Q_SLOTS:
void setBand(QDeclarativeRadio::Band band); void setBand(QDeclarativeRadio::Band band);