Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qplatformaudiodecoder.cpp
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
5
6#include <QtCore/qthread.h>
7
9
10QPlatformAudioDecoder::QPlatformAudioDecoder(QAudioDecoder *parent) : q(parent) { }
11
12QPlatformAudioDecoder::~QPlatformAudioDecoder() = default;
13
14void QPlatformAudioDecoder::error(int error, const QString &errorString)
15{
16 if (error == m_error && errorString == m_errorString)
17 return;
18 m_error = QAudioDecoder::Error(error);
19 m_errorString = errorString;
20
21 if (m_error != QAudioDecoder::NoError) {
22 setIsDecoding(false);
23 emit q->error(m_error);
24 }
25}
26
27void QPlatformAudioDecoder::bufferAvailableChanged(bool available)
28{
29 if (m_bufferAvailable == available)
30 return;
31 m_bufferAvailable = available;
32
33 if (!q->thread()->isCurrentThread())
34 QMetaObject::invokeMethod(q, "bufferAvailableChanged", Qt::QueuedConnection, Q_ARG(bool, available));
35 else
36 emit q->bufferAvailableChanged(available);
37}
38
39void QPlatformAudioDecoder::bufferReady()
40{
41 if (!q->thread()->isCurrentThread())
42 QMetaObject::invokeMethod(q, "bufferReady", Qt::QueuedConnection);
43 else
44 emit q->bufferReady();
45}
46
47void QPlatformAudioDecoder::sourceChanged()
48{
49 emit q->sourceChanged();
50}
51
52void QPlatformAudioDecoder::formatChanged(const QAudioFormat &format)
53{
54 emit q->formatChanged(format);
55}
56
57void QPlatformAudioDecoder::finished()
58{
59 durationChanged(-1);
60 setIsDecoding(false);
61 emit q->finished();
62}
63
64void QPlatformAudioDecoder::positionChanged(qint64 position)
65{
66 if (m_position == position)
67 return;
68 m_position = position;
69 emit q->positionChanged(position);
70}
71
72void QPlatformAudioDecoder::durationChanged(qint64 duration)
73{
74 if (m_duration == duration)
75 return;
76 m_duration = duration;
77 emit q->durationChanged(duration);
78}
79
80QT_END_NAMESPACE
81
82#include "moc_qplatformaudiodecoder_p.cpp"
Combined button and popup list for selecting options.