6#include <private/qplatformaudiodevices_p.h>
8#include <QtCore/qdebug.h>
12QAudioStateChangeNotifier::QAudioStateChangeNotifier(QObject *parent) : QObject(parent) { }
14QPlatformAudioEndpointBase::QPlatformAudioEndpointBase(QObject *parent)
15 : QAudioStateChangeNotifier(parent)
19void QPlatformAudioEndpointBase::setError(QAudio::Error err)
24 emit errorChanged(err);
27void QPlatformAudioEndpointBase::updateStreamState(QAudio::State state)
29 if (m_streamState == state)
32 m_streamState = state;
36void QPlatformAudioEndpointBase::updateStreamIdle(
bool idle, EmitStateSignal emitStateSignal)
38 if (idle == m_streamIsIdle)
40 m_streamIsIdle = idle;
42 if (emitStateSignal == EmitStateSignal::True)
46void QPlatformAudioEndpointBase::inferState()
53 using State = QtAudio::State;
55 State oldState = m_inferredState;
57 switch (m_streamState) {
58 case State::StoppedState:
59 m_inferredState = State::StoppedState;
61 case State::SuspendedState:
62 m_inferredState = State::SuspendedState;
64 case State::ActiveState:
65 m_inferredState = m_streamIsIdle ? State::IdleState : State::ActiveState;
68 case State::IdleState:
69 qCritical() <<
"Users should not be able to set the state to Idle!";
70 Q_UNREACHABLE_RETURN();
73 if (oldState != m_inferredState)
74 emit stateChanged(m_inferredState);
77QPlatformAudioSink::QPlatformAudioSink(QObject *parent) : QPlatformAudioEndpointBase(parent) { }
79qreal QPlatformAudioSink::volume()
const
84QPlatformAudioSource::QPlatformAudioSource(QObject *parent) : QPlatformAudioEndpointBase(parent) { }
88#include "moc_qaudiosystem_p.cpp"
Combined button and popup list for selecting options.