QRadioTuner Class

The QRadioTuner class provides an interface to the systems analog radio device. More...

Header: #include <QRadioTuner>
qmake: QT += multimedia
Inherits: QMediaObject

This class is obsolete. It is provided to keep old source code working. We strongly advise against using it in new code.

Public Types

enum Band { AM, FM, SW, LW, FM2 }
enum Error { NoError, ResourceError, OpenError, OutOfRangeError }
enum SearchMode { SearchFast, SearchGetStationId }
enum State { ActiveState, StoppedState }
enum StereoMode { ForceStereo, ForceMono, Auto }

Properties

Public Functions

QRadioTuner(QObject *parent = nullptr)
virtual ~QRadioTuner()
Band band() const
Error error() const
QString errorString() const
int frequency() const
QPair<int, int> frequencyRange(Band band) const
int frequencyStep(Band band) const
bool isAntennaConnected() const
bool isBandSupported(Band band) const
bool isMuted() const
bool isSearching() const
bool isStereo() const
QRadioData *radioData() const
void setStereoMode(QRadioTuner::StereoMode mode)
int signalStrength() const
State state() const
StereoMode stereoMode() const
int volume() const

Reimplemented Public Functions

virtual QMultimedia::AvailabilityStatus availability() const override

Public Slots

void cancelSearch()
void searchAllStations(QRadioTuner::SearchMode searchMode = QRadioTuner::SearchFast)
void searchBackward()
void searchForward()
void setBand(Band band)
void setFrequency(int frequency)
void setMuted(bool muted)
void setVolume(int volume)
void start()
void stop()

Signals

void antennaConnectedChanged(bool connectionStatus)
void bandChanged(QRadioTuner::Band band)
void error(QRadioTuner::Error error)
void frequencyChanged(int frequency)
void mutedChanged(bool muted)
void searchingChanged(bool searching)
void signalStrengthChanged(int strength)
void stateChanged(QRadioTuner::State state)
void stationFound(int frequency, QString stationId)
void stereoStatusChanged(bool stereo)
void volumeChanged(int volume)

Detailed Description

You can control the systems analog radio device using this interface, for example:

 radio = new QRadioTuner;
 connect(radio, SIGNAL(frequencyChanged(int)), this, SLOT(freqChanged(int)));
 if (radio->isBandSupported(QRadioTuner::FM)) {
     radio->setBand(QRadioTuner::FM);
     radio->setFrequency(yourRadioStationFrequency);
     radio->setVolume(100);
     radio->start();
 }

The radio object will emit signals for any changes in state such as: bandChanged(), frequencyChanged(), stereoStatusChanged(), searchingChanged(), signalStrengthChanged(), volumeChanged(), mutedChanged().

You can change between the frequency bands using setBand() however it is recommended that you check to make sure the band is available first using isBandSupported().

See also QRadioData and Radio Overview.

Member Type Documentation

enum QRadioTuner::Band

Enumerates radio frequency bands.

ConstantValueDescription
QRadioTuner::AM0520 to 1610 kHz, 9 or 10kHz channel spacing, extended 1610 to 1710 kHz
QRadioTuner::FM187.5 to 108.0 MHz, except Japan 76-90 MHz
QRadioTuner::SW21.711 to 30.0 MHz, divided into 15 bands. 5kHz channel spacing
QRadioTuner::LW3148.5 to 283.5 kHz, 9kHz channel spacing (Europe, Africa, Asia)
QRadioTuner::FM24range not defined, used when area supports more than one FM range.

enum QRadioTuner::Error

Enumerates radio tuner error conditions.

ConstantValueDescription
QRadioTuner::NoError0No errors have occurred.
QRadioTuner::ResourceError1There is no radio service available.
QRadioTuner::OpenError2Unable to open radio device.
QRadioTuner::OutOfRangeError3An attempt to set a frequency or band that is not supported by radio device.

enum QRadioTuner::SearchMode

Enumerates how the radio tuner should search for stations.

ConstantValueDescription
QRadioTuner::SearchFast0Use only signal strength when searching.
QRadioTuner::SearchGetStationId1After finding a strong signal, wait for the RDS station id (PI) before continuing.

enum QRadioTuner::State

Enumerates radio tuner states.

ConstantValueDescription
QRadioTuner::ActiveState0The tuner is started and active.
QRadioTuner::StoppedState1The tuner device is stopped.

enum QRadioTuner::StereoMode

Enumerates radio tuner policy for receiving stereo signals.

ConstantValueDescription
QRadioTuner::ForceStereo0Provide stereo mode, converting if required.
QRadioTuner::ForceMono1Provide mono mode, converting if required.
QRadioTuner::Auto2Uses the stereo mode matching the station.

Property Documentation

antennaConnected : const bool

This property holds whether there is an antenna connected

Access functions:

bool isAntennaConnected() const

Notifier signal:

void antennaConnectedChanged(bool connectionStatus)

band : Band

This property holds the frequency band a radio tuner is tuned to.

Access functions:

Band band() const
void setBand(Band band)

Notifier signal:

void bandChanged(QRadioTuner::Band band)

See also QRadioTuner::Band.

frequency : int

This property holds the frequency in Hertz a radio tuner is tuned to.

Access functions:

int frequency() const
void setFrequency(int frequency)

Notifier signal:

void frequencyChanged(int frequency)

muted : bool

This property holds whether a radio tuner's audio output is muted.

Access functions:

bool isMuted() const
void setMuted(bool muted)

Notifier signal:

void mutedChanged(bool muted)

radioData : QRadioData* const

holds an instance of QRadioData

The instance of QRadioData is already bound to this instance of QRadioTuner.

Access functions:

QRadioData *radioData() const

searching : const bool

This property holds whether a radio tuner is currently scanning for a signal.

Access functions:

bool isSearching() const

Notifier signal:

void searchingChanged(bool searching)

See also searchForward(), searchBackward(), and cancelSearch().

signalStrength : const int

This property holds the strength of the current radio signal as a percentage.

Access functions:

int signalStrength() const

Notifier signal:

void signalStrengthChanged(int strength)

state : const State

Return the current radio tuner state.

Access functions:

State state() const

Notifier signal:

void stateChanged(QRadioTuner::State state)

See also QRadioTuner::State.

stereo : const bool

This property holds whether a radio tuner is receiving a stereo signal.

Access functions:

bool isStereo() const

Notifier signal:

void stereoStatusChanged(bool stereo)

stereoMode : StereoMode

This property holds the stereo mode of a radio tuner.

Access functions:

StereoMode stereoMode() const
void setStereoMode(QRadioTuner::StereoMode mode)

volume : int

This property holds the volume of a radio tuner's audio output as a percentage.

Access functions:

int volume() const
void setVolume(int volume)

Notifier signal:

void volumeChanged(int volume)

Member Function Documentation

QRadioTuner::QRadioTuner(QObject *parent = nullptr)

Constructs a radio tuner based on a media service allocated by the default media service provider.

The parent is passed to QMediaObject.

[signal] void QRadioTuner::bandChanged(QRadioTuner::Band band)

Signals a radio tuner's band has changed.

Note: Notifier signal for property band.

[slot] void QRadioTuner::cancelSearch()

Stops scanning for a signal.

See also searchForward(), searchBackward(), and searching.

[signal] void QRadioTuner::error(QRadioTuner::Error error)

Signals that an error occurred.

Note: Signal error is overloaded in this class. To connect to this signal by using the function pointer syntax, Qt provides a convenient helper for obtaining the function pointer as shown in this example:

 connect(radioTuner, QOverload<QRadioTuner::Error>::of(&QRadioTuner::error),
     [=](QRadioTuner::Error error){ /* ... */ });

[signal] void QRadioTuner::frequencyChanged(int frequency)

Signals that the frequency a radio tuner is tuned to has changed.

Note: Notifier signal for property frequency.

[signal] void QRadioTuner::mutedChanged(bool muted)

Signals that the muted state of a radio tuner's audio output has changed.

Note: Notifier signal for property muted.

[slot] void QRadioTuner::searchAllStations(QRadioTuner::SearchMode searchMode = QRadioTuner::SearchFast)

Search all stations in current band

Emits QRadioTuner::stationFound(int, QString) for every found station. After searching is completed, QRadioTuner::searchingChanged(bool) is emitted (false). If searchMode is set to SearchGetStationId, searching waits for station id (PI) on each frequency.

See also searchForward(), searchBackward(), and searching.

[slot] void QRadioTuner::searchBackward()

Starts a backwards scan for a signal, starting from the current frequency.

See also searchForward(), cancelSearch(), and searching.

[slot] void QRadioTuner::searchForward()

Starts a forward scan for a signal, starting from the current frequency.

See also searchBackward(), cancelSearch(), and searching.

[signal] void QRadioTuner::searchingChanged(bool searching)

Signals that the searching state of a radio tuner has changed.

Note: Notifier signal for property searching.

[slot] void QRadioTuner::setBand(Band band)

Sets a radio tuner's frequency band.

Changing the band will reset the frequency to the new band's minimum frequency.

Note: Setter function for property band.

See also band().

[slot] void QRadioTuner::setFrequency(int frequency)

Sets a radio tuner's frequency.

If the tuner is set to a frequency outside the current band, the band will be changed to one occupied by the new frequency.

Note: Setter function for property frequency.

See also frequency().

[signal] void QRadioTuner::signalStrengthChanged(int strength)

Signals that the strength of the signal received by a radio tuner has changed.

Note: Notifier signal for property signalStrength.

[slot] void QRadioTuner::start()

Activate the radio device.

[signal] void QRadioTuner::stateChanged(QRadioTuner::State state)

This signal is emitted when the state changes to state.

Note: Notifier signal for property state.

[signal] void QRadioTuner::stationFound(int frequency, QString stationId)

Signals that a station was found in frequency with stationId Program Identification code.

[signal] void QRadioTuner::stereoStatusChanged(bool stereo)

Signals that the stereo state of a radio tuner has changed.

Note: Notifier signal for property stereo.

[slot] void QRadioTuner::stop()

Deactivate the radio device.

[signal] void QRadioTuner::volumeChanged(int volume)

Signals that the volume of a radio tuner's audio output has changed.

Note: Notifier signal for property volume.

[virtual] QRadioTuner::~QRadioTuner()

Destroys a radio tuner.

[override virtual] QMultimedia::AvailabilityStatus QRadioTuner::availability() const

Reimplements: QMediaObject::availability() const.

Returns the availability of the radio tuner.

Error QRadioTuner::error() const

Returns the error state of a radio tuner.

See also errorString().

QString QRadioTuner::errorString() const

Returns a description of a radio tuner's error state.

See also error().

QPair<int, int> QRadioTuner::frequencyRange(Band band) const

Returns a frequency band's minimum and maximum frequency.

int QRadioTuner::frequencyStep(Band band) const

Returns the number of Hertz to increment the frequency by when stepping through frequencies within a given band.

bool QRadioTuner::isBandSupported(Band band) const

Identifies if a frequency band is supported by a radio tuner.

Returns true if the band is supported, and false if it is not.