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#include "qaudiosystem.h"
41
42QT_BEGIN_NAMESPACE
43
44/*!
45 \class QAbstractAudioDeviceInfo
46 \brief The QAbstractAudioDeviceInfo class is a base class for audio backends.
47
48 \ingroup multimedia
49 \ingroup multimedia_audio
50 \inmodule QtMultimedia
51
52 This class implements the audio functionality for
53 QAudioDeviceInfo, i.e., QAudioDeviceInfo keeps a
54 QAbstractAudioDeviceInfo and routes function calls to it. For a
55 description of the functionality that QAbstractAudioDeviceInfo
56 implements, you can read the class and functions documentation of
57 QAudioDeviceInfo.
58
59 \sa QAudioDeviceInfo
60 \sa QAbstractAudioOutput, QAbstractAudioInput
61*/
62
63/*!
64 \fn virtual QAudioFormat QAbstractAudioDeviceInfo::preferredFormat() const
65 Returns the recommended settings to use.
66*/
67
68/*!
69 \fn virtual bool QAbstractAudioDeviceInfo::isFormatSupported(const QAudioFormat& format) const
70 Returns true if \a format is available from audio device.
71*/
72
73/*!
74 \fn virtual QString QAbstractAudioDeviceInfo::deviceName() const
75 Returns the audio device name.
76*/
77
78/*!
79 \fn virtual QStringList QAbstractAudioDeviceInfo::supportedCodecs()
80 Returns the list of currently available codecs.
81*/
82
83/*!
84 \fn virtual QList<int> QAbstractAudioDeviceInfo::supportedSampleRates()
85 Returns the list of currently available sample rates.
86*/
87
88/*!
89 \fn virtual QList<int> QAbstractAudioDeviceInfo::supportedChannelCounts()
90 Returns the list of currently available channels.
91*/
92
93/*!
94 \fn virtual QList<int> QAbstractAudioDeviceInfo::supportedSampleSizes()
95 Returns the list of currently available sample sizes.
96*/
97
98/*!
99 \fn virtual QList<QAudioFormat::Endian> QAbstractAudioDeviceInfo::supportedByteOrders()
100 Returns the list of currently available byte orders.
101*/
102
103/*!
104 \fn virtual QList<QAudioFormat::SampleType> QAbstractAudioDeviceInfo::supportedSampleTypes()
105 Returns the list of currently available sample types.
106*/
107
108/*!
109 \class QAbstractAudioOutput
110 \brief The QAbstractAudioOutput class is a base class for audio backends.
111
112 \ingroup multimedia
113 \inmodule QtMultimedia
114
115 QAbstractAudioOutput implements audio functionality for
116 QAudioOutput, i.e., QAudioOutput routes function calls to
117 QAbstractAudioOutput. For a description of the functionality that
118 is implemented, see the QAudioOutput class and function
119 descriptions.
120
121 \sa QAudioOutput
122*/
123
124/*!
125 \fn virtual void QAbstractAudioOutput::start(QIODevice* device)
126 Uses the \a device as the QIODevice to transfer data.
127*/
128
129/*!
130 \fn virtual QIODevice* QAbstractAudioOutput::start()
131 Returns a pointer to the QIODevice being used to handle
132 the data transfer. This QIODevice can be used to write() audio data directly.
133*/
134
135/*!
136 \fn virtual void QAbstractAudioOutput::stop()
137 Stops the audio output.
138*/
139
140/*!
141 \fn virtual void QAbstractAudioOutput::reset()
142 Drops all audio data in the buffers, resets buffers to zero.
143*/
144
145/*!
146 \fn virtual void QAbstractAudioOutput::suspend()
147 Stops processing audio data, preserving buffered audio data.
148*/
149
150/*!
151 \fn virtual void QAbstractAudioOutput::resume()
152 Resumes processing audio data after a suspend()
153*/
154
155/*!
156 \fn virtual int QAbstractAudioOutput::bytesFree() const
157 Returns the free space available in bytes in the audio buffer.
158*/
159
160/*!
161 \fn virtual int QAbstractAudioOutput::periodSize() const
162 Returns the period size in bytes.
163*/
164
165/*!
166 \fn virtual void QAbstractAudioOutput::setBufferSize(int value)
167 Sets the audio buffer size to \a value in bytes.
168*/
169
170/*!
171 \fn virtual int QAbstractAudioOutput::bufferSize() const
172 Returns the audio buffer size in bytes.
173*/
174
175/*!
176 \fn virtual void QAbstractAudioOutput::setNotifyInterval(int ms)
177 Sets the interval for notify() signal to be emitted. This is based on the \a ms
178 of audio data processed not on actual real-time. The resolution of the timer
179 is platform specific.
180*/
181
182/*!
183 \fn virtual int QAbstractAudioOutput::notifyInterval() const
184 Returns the notify interval in milliseconds.
185*/
186
187/*!
188 \fn virtual qint64 QAbstractAudioOutput::processedUSecs() const
189 Returns the amount of audio data processed since start() was called in milliseconds.
190*/
191
192/*!
193 \fn virtual qint64 QAbstractAudioOutput::elapsedUSecs() const
194 Returns the milliseconds since start() was called, including time in Idle and suspend states.
195*/
196
197/*!
198 \fn virtual QAudio::Error QAbstractAudioOutput::error() const
199 Returns the error state.
200*/
201
202/*!
203 \fn virtual QAudio::State QAbstractAudioOutput::state() const
204 Returns the state of audio processing.
205*/
206
207/*!
208 \fn virtual void QAbstractAudioOutput::setFormat(const QAudioFormat& fmt)
209 Set the QAudioFormat to use to \a fmt.
210 Setting the format is only allowable while in QAudio::StoppedState.
211*/
212
213/*!
214 \fn virtual QAudioFormat QAbstractAudioOutput::format() const
215 Returns the QAudioFormat being used.
216*/
217
218/*!
219 \fn virtual void QAbstractAudioOutput::setVolume(qreal volume)
220 Sets the volume.
221 Where \a volume is between 0.0 and 1.0.
222*/
223
224/*!
225 \fn virtual qreal QAbstractAudioOutput::volume() const
226 Returns the volume in the range 0.0 and 1.0.
227*/
228
229/*!
230 \fn QAbstractAudioOutput::errorChanged(QAudio::Error error)
231 This signal is emitted when the \a error state has changed.
232*/
233
234/*!
235 \fn QAbstractAudioOutput::stateChanged(QAudio::State state)
236 This signal is emitted when the device \a state has changed.
237*/
238
239/*!
240 \fn QAbstractAudioOutput::notify()
241 This signal is emitted when x ms of audio data has been processed
242 the interval set by setNotifyInterval(x).
243*/
244
245
246/*!
247 \class QAbstractAudioInput
248 \brief The QAbstractAudioInput class provides access for QAudioInput to access the audio
249 device provided by the plugin.
250
251 \ingroup multimedia
252 \inmodule QtMultimedia
253
254 QAudioDeviceInput keeps an instance of QAbstractAudioInput and
255 routes calls to functions of the same name to QAbstractAudioInput.
256 This means that it is QAbstractAudioInput that implements the
257 audio functionality. For a description of the functionality, see
258 the QAudioInput class description.
259
260 \sa QAudioInput
261*/
262
263/*!
264 \fn virtual void QAbstractAudioInput::start(QIODevice* device)
265 Uses the \a device as the QIODevice to transfer data.
266*/
267
268/*!
269 \fn virtual QIODevice* QAbstractAudioInput::start()
270 Returns a pointer to the QIODevice being used to handle
271 the data transfer. This QIODevice can be used to read() audio data directly.
272*/
273
274/*!
275 \fn virtual void QAbstractAudioInput::stop()
276 Stops the audio input.
277*/
278
279/*!
280 \fn virtual void QAbstractAudioInput::reset()
281 Drops all audio data in the buffers, resets buffers to zero.
282*/
283
284/*!
285 \fn virtual void QAbstractAudioInput::suspend()
286 Stops processing audio data, preserving buffered audio data.
287*/
288
289/*!
290 \fn virtual void QAbstractAudioInput::resume()
291 Resumes processing audio data after a suspend().
292*/
293
294/*!
295 \fn virtual int QAbstractAudioInput::bytesReady() const
296 Returns the amount of audio data available to read in bytes.
297*/
298
299/*!
300 \fn virtual int QAbstractAudioInput::periodSize() const
301 Returns the period size in bytes.
302*/
303
304/*!
305 \fn virtual void QAbstractAudioInput::setBufferSize(int value)
306 Sets the audio buffer size to \a value in milliseconds.
307*/
308
309/*!
310 \fn virtual int QAbstractAudioInput::bufferSize() const
311 Returns the audio buffer size in milliseconds.
312*/
313
314/*!
315 \fn virtual void QAbstractAudioInput::setNotifyInterval(int ms)
316 Sets the interval for notify() signal to be emitted. This is based
317 on the \a ms of audio data processed not on actual real-time.
318 The resolution of the timer is platform specific.
319*/
320
321/*!
322 \fn virtual int QAbstractAudioInput::notifyInterval() const
323 Returns the notify interval in milliseconds.
324*/
325
326/*!
327 \fn virtual qint64 QAbstractAudioInput::processedUSecs() const
328 Returns the amount of audio data processed since start() was called in milliseconds.
329*/
330
331/*!
332 \fn virtual qint64 QAbstractAudioInput::elapsedUSecs() const
333 Returns the milliseconds since start() was called, including time in Idle and suspend states.
334*/
335
336/*!
337 \fn virtual QAudio::Error QAbstractAudioInput::error() const
338 Returns the error state.
339*/
340
341/*!
342 \fn virtual QAudio::State QAbstractAudioInput::state() const
343 Returns the state of audio processing.
344*/
345
346/*!
347 \fn virtual void QAbstractAudioInput::setFormat(const QAudioFormat& fmt)
348 Set the QAudioFormat to use to \a fmt.
349 Setting the format is only allowable while in QAudio::StoppedState.
350*/
351
352/*!
353 \fn virtual QAudioFormat QAbstractAudioInput::format() const
354 Returns the QAudioFormat being used
355*/
356
357/*!
358 \fn QAbstractAudioInput::errorChanged(QAudio::Error error)
359 This signal is emitted when the \a error state has changed.
360*/
361
362/*!
363 \fn QAbstractAudioInput::stateChanged(QAudio::State state)
364 This signal is emitted when the device \a state has changed.
365*/
366
367/*!
368 \fn QAbstractAudioInput::notify()
369 This signal is emitted when x ms of audio data has been processed
370 the interval set by setNotifyInterval(x).
371*/
372
373
374QT_END_NAMESPACE
375
376#include "moc_qaudiosystem.cpp"
377

source code of qtmultimedia/src/multimedia/audio/qaudiosystem.cpp