85 void initControls() |
85 void initControls() |
86 { |
86 { |
87 Q_Q(QAudioCaptureSource); |
87 Q_Q(QAudioCaptureSource); |
88 |
88 |
89 if (service != 0) |
89 if (service != 0) |
90 audioEndpointSelector = qobject_cast<QAudioEndpointSelector*>(service->control(QAudioEndpointSelector_iid)); |
90 audioEndpointSelector = qobject_cast<QAudioEndpointSelector*>(service->requestControl(QAudioEndpointSelector_iid)); |
91 |
91 |
92 if (audioEndpointSelector) { |
92 if (audioEndpointSelector) { |
93 q->connect(audioEndpointSelector, SIGNAL(activeEndpointChanged(const QString&)), |
93 q->connect(audioEndpointSelector, SIGNAL(activeEndpointChanged(const QString&)), |
94 SIGNAL(activeAudioInputChanged(const QString&))); |
94 SIGNAL(activeAudioInputChanged(const QString&))); |
95 q->connect(audioEndpointSelector, SIGNAL(availableEndpointsChanged()), |
95 q->connect(audioEndpointSelector, SIGNAL(availableEndpointsChanged()), |
96 SIGNAL(availableAudioInputsChanged())); |
96 SIGNAL(availableAudioInputsChanged())); |
97 q->connect(audioEndpointSelector, SIGNAL(availableEndpointsChanged()), |
97 q->connect(audioEndpointSelector, SIGNAL(availableEndpointsChanged()), |
98 SLOT(statusChanged())); |
98 SLOT(statusChanged())); |
99 errorState = QtMediaServices::NoError; |
99 errorState = QtMultimedia::NoError; |
100 } |
100 } |
101 } |
101 } |
102 |
102 |
103 QAudioCaptureSourcePrivate():provider(0), audioEndpointSelector(0), errorState(QtMediaServices::ServiceMissingError) {} |
103 QAudioCaptureSourcePrivate():provider(0), audioEndpointSelector(0), errorState(QtMultimedia::ServiceMissingError) {} |
104 QMediaServiceProvider *provider; |
104 QMediaServiceProvider *provider; |
105 QAudioEndpointSelector *audioEndpointSelector; |
105 QAudioEndpointSelector *audioEndpointSelector; |
106 QtMediaServices::AvailabilityError errorState; |
106 QtMultimedia::AvailabilityError errorState; |
107 }; |
107 }; |
108 |
108 |
109 /*! |
109 /*! |
110 Construct a QAudioCaptureSource using the QMediaService from \a provider, with \a parent. |
110 Construct a QAudioCaptureSource using the QMediaService from \a provider, with \a parent. |
111 */ |
111 */ |
118 d->provider = provider; |
118 d->provider = provider; |
119 d->initControls(); |
119 d->initControls(); |
120 } |
120 } |
121 |
121 |
122 /*! |
122 /*! |
123 Construct a QAudioCaptureSource using the QMediaObject \a mediaObject, with \a parent. |
123 Destroys the audiocapturesource object. |
124 */ |
124 */ |
125 |
125 |
126 QAudioCaptureSource::QAudioCaptureSource(QMediaObject *mediaObject, QObject *parent) |
126 QAudioCaptureSource::~QAudioCaptureSource() |
127 :QMediaObject(*new QAudioCaptureSourcePrivate, parent, mediaObject->service()) |
|
128 { |
127 { |
129 Q_D(QAudioCaptureSource); |
128 Q_D(QAudioCaptureSource); |
130 |
129 |
131 d->provider = 0; |
130 if (d->service && d->audioEndpointSelector) |
132 d->initControls(); |
131 d->service->releaseControl(d->audioEndpointSelector); |
133 } |
|
134 |
|
135 /*! |
|
136 Destroys the audiocapturesource object. |
|
137 */ |
|
138 |
|
139 QAudioCaptureSource::~QAudioCaptureSource() |
|
140 { |
|
141 Q_D(QAudioCaptureSource); |
|
142 |
132 |
143 if (d->provider) |
133 if (d->provider) |
144 d->provider->releaseService(d->service); |
134 d->provider->releaseService(d->service); |
145 } |
135 } |
146 |
136 |
147 /*! |
137 /*! |
148 Returns the error state of the audio capture service. |
138 Returns the error state of the audio capture service. |
149 */ |
139 */ |
150 |
140 |
151 QtMediaServices::AvailabilityError QAudioCaptureSource::availabilityError() const |
141 QtMultimedia::AvailabilityError QAudioCaptureSource::availabilityError() const |
152 { |
142 { |
153 Q_D(const QAudioCaptureSource); |
143 Q_D(const QAudioCaptureSource); |
154 |
144 |
155 return d->errorState; |
145 return d->errorState; |
156 } |
146 } |
258 { |
248 { |
259 Q_D(QAudioCaptureSource); |
249 Q_D(QAudioCaptureSource); |
260 |
250 |
261 if (d->audioEndpointSelector) { |
251 if (d->audioEndpointSelector) { |
262 if (d->audioEndpointSelector->availableEndpoints().size() > 0) { |
252 if (d->audioEndpointSelector->availableEndpoints().size() > 0) { |
263 d->errorState = QtMediaServices::NoError; |
253 d->errorState = QtMultimedia::NoError; |
264 emit availabilityChanged(true); |
254 emit availabilityChanged(true); |
265 } else { |
255 } else { |
266 d->errorState = QtMediaServices::BusyError; |
256 d->errorState = QtMultimedia::BusyError; |
267 emit availabilityChanged(false); |
257 emit availabilityChanged(false); |
268 } |
258 } |
269 } else { |
259 } else { |
270 d->errorState = QtMediaServices::ServiceMissingError; |
260 d->errorState = QtMultimedia::ServiceMissingError; |
271 emit availabilityChanged(false); |
261 emit availabilityChanged(false); |
272 } |
262 } |
273 } |
263 } |
274 |
264 |
275 #include "moc_qaudiocapturesource.cpp" |
265 #include "moc_qaudiocapturesource.cpp" |