1/****************************************************************************
2**
3** Copyright (C) 2016 The Qt Company Ltd.
4** Contact: https://www.qt.io/licensing/
5**
6** This file is part of the Qt Toolkit.
7**
8** $QT_BEGIN_LICENSE:LGPL$
9** Commercial License Usage
10** Licensees holding valid commercial Qt licenses may use this file in
11** accordance with the commercial license agreement provided with the
12** Software or, alternatively, in accordance with the terms contained in
13** a written agreement between you and The Qt Company. For licensing terms
14** and conditions see https://www.qt.io/terms-conditions. For further
15** information use the contact form at https://www.qt.io/contact-us.
16**
17** GNU Lesser General Public License Usage
18** Alternatively, this file may be used under the terms of the GNU Lesser
19** General Public License version 3 as published by the Free Software
20** Foundation and appearing in the file LICENSE.LGPL3 included in the
21** packaging of this file. Please review the following information to
22** ensure the GNU Lesser General Public License version 3 requirements
23** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24**
25** GNU General Public License Usage
26** Alternatively, this file may be used under the terms of the GNU
27** General Public License version 2.0 or (at your option) the GNU General
28** Public license version 3 or any later version approved by the KDE Free
29** Qt Foundation. The licenses are as published by the Free Software
30** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31** included in the packaging of this file. Please review the following
32** information to ensure the GNU General Public License requirements will
33** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34** https://www.gnu.org/licenses/gpl-3.0.html.
35**
36** $QT_END_LICENSE$
37**
38****************************************************************************/
39
40#ifndef QDECLARATIVERADIODATA_P_H
41#define QDECLARATIVERADIODATA_P_H
42
43//
44// W A R N I N G
45// -------------
46//
47// This file is not part of the Qt API. It exists for the convenience
48// of other Qt classes. This header file may change from version to
49// version without notice, or even be removed.
50//
51// We mean it.
52//
53
54#include <qradiodata.h>
55#include <qradiotuner.h>
56#include <QtQml/qqml.h>
57
58QT_BEGIN_NAMESPACE
59
60class QDeclarativeRadioData : public QObject
61{
62 Q_OBJECT
63 Q_PROPERTY(QString stationId READ stationId NOTIFY stationIdChanged)
64 Q_PROPERTY(QDeclarativeRadioData::ProgramType programType READ programType NOTIFY programTypeChanged)
65 Q_PROPERTY(QString programTypeName READ programTypeName NOTIFY programTypeNameChanged)
66 Q_PROPERTY(QString stationName READ stationName NOTIFY stationNameChanged)
67 Q_PROPERTY(QString radioText READ radioText NOTIFY radioTextChanged)
68 Q_PROPERTY(bool alternativeFrequenciesEnabled READ alternativeFrequenciesEnabled
69 WRITE setAlternativeFrequenciesEnabled NOTIFY alternativeFrequenciesEnabledChanged)
70 Q_PROPERTY(Availability availability READ availability NOTIFY availabilityChanged)
71 Q_ENUMS(Error)
72 Q_ENUMS(ProgramType)
73 Q_ENUMS(Availability)
74
75public:
76
77 enum Error {
78 NoError = QRadioData::NoError,
79 ResourceError = QRadioData::ResourceError,
80 OpenError = QRadioData::OpenError,
81 OutOfRangeError = QRadioData::OutOfRangeError
82 };
83
84 enum ProgramType {
85 Undefined = QRadioData::Undefined,
86 News = QRadioData::News,
87 CurrentAffairs = QRadioData::CurrentAffairs,
88 Information = QRadioData::Information,
89 Sport = QRadioData::Sport,
90 Education = QRadioData::Education,
91 Drama = QRadioData::Drama,
92 Culture = QRadioData::Culture,
93 Science = QRadioData::Science,
94 Varied = QRadioData::Varied,
95 PopMusic = QRadioData::PopMusic,
96 RockMusic = QRadioData::RockMusic,
97 EasyListening = QRadioData::EasyListening,
98 LightClassical = QRadioData::LightClassical,
99 SeriousClassical = QRadioData::SeriousClassical,
100 OtherMusic = QRadioData::OtherMusic,
101 Weather = QRadioData::Weather,
102 Finance = QRadioData::Finance,
103 ChildrensProgrammes = QRadioData::ChildrensProgrammes,
104 SocialAffairs = QRadioData::SocialAffairs,
105 Religion = QRadioData::Religion,
106 PhoneIn = QRadioData::PhoneIn,
107 Travel = QRadioData::Travel,
108 Leisure = QRadioData::Leisure,
109 JazzMusic = QRadioData::JazzMusic,
110 CountryMusic = QRadioData::CountryMusic,
111 NationalMusic = QRadioData::NationalMusic,
112 OldiesMusic = QRadioData::OldiesMusic,
113 FolkMusic = QRadioData::FolkMusic,
114 Documentary = QRadioData::Documentary,
115 AlarmTest = QRadioData::AlarmTest,
116 Alarm = QRadioData::Alarm,
117 Talk = QRadioData::Talk,
118 ClassicRock = QRadioData::ClassicRock,
119 AdultHits = QRadioData::AdultHits,
120 SoftRock = QRadioData::SoftRock,
121 Top40 = QRadioData::Top40,
122 Soft = QRadioData::Soft,
123 Nostalgia = QRadioData::Nostalgia,
124 Classical = QRadioData::Classical,
125 RhythmAndBlues = QRadioData::RhythmAndBlues,
126 SoftRhythmAndBlues = QRadioData::SoftRhythmAndBlues,
127 Language = QRadioData::Language,
128 ReligiousMusic = QRadioData::ReligiousMusic,
129 ReligiousTalk = QRadioData::ReligiousTalk,
130 Personality = QRadioData::Personality,
131 Public = QRadioData::Public,
132 College = QRadioData::College
133 };
134
135 enum Availability {
136 Available = QMultimedia::Available,
137 Busy = QMultimedia::Busy,
138 Unavailable = QMultimedia::ServiceMissing,
139 ResourceMissing = QMultimedia::ResourceError
140 };
141
142 QDeclarativeRadioData(QObject *parent = 0);
143 QDeclarativeRadioData(QRadioTuner *tuner, QObject *parent = 0);
144 ~QDeclarativeRadioData();
145
146 QString stationId() const;
147 QDeclarativeRadioData::ProgramType programType() const;
148 QString programTypeName() const;
149 QString stationName() const;
150 QString radioText() const;
151 bool alternativeFrequenciesEnabled() const;
152
153 Q_INVOKABLE bool isAvailable() const {return availability() == Available;}
154 Availability availability() const;
155
156public Q_SLOTS:
157 void setAlternativeFrequenciesEnabled(bool enabled);
158
159Q_SIGNALS:
160 void stationIdChanged(QString stationId);
161 void programTypeChanged(QDeclarativeRadioData::ProgramType programType);
162 void programTypeNameChanged(QString programTypeName);
163 void stationNameChanged(QString stationName);
164 void radioTextChanged(QString radioText);
165 void alternativeFrequenciesEnabledChanged(bool enabled);
166
167 void availabilityChanged(Availability availability);
168
169 void errorChanged();
170 void error(QDeclarativeRadioData::Error errorCode);
171
172private Q_SLOTS:
173 void _q_programTypeChanged(QRadioData::ProgramType programType);
174 void _q_error(QRadioData::Error errorCode);
175 void _q_availabilityChanged(QMultimedia::AvailabilityStatus);
176
177private:
178 void connectSignals();
179
180 Q_DISABLE_COPY(QDeclarativeRadioData)
181
182 QRadioData *m_radioData;
183 QRadioTuner *m_radioTuner;
184};
185
186QT_END_NAMESPACE
187
188QML_DECLARE_TYPE(QT_PREPEND_NAMESPACE(QDeclarativeRadioData))
189
190#endif // QDECLARATIVERADIODATA_P_H
191

source code of qtmultimedia/src/imports/multimedia/qdeclarativeradiodata_p.h