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
QtPipeWire::QPipewireAudioSourceStream Struct Referencefinal

#include <qpipewire_audiosource_p.h>

Inheritance diagram for QtPipeWire::QPipewireAudioSourceStream:
Collaboration diagram for QtPipeWire::QPipewireAudioSourceStream:

Public Types

using SourceType = QPipewireAudioSource
using SampleFormat = QAudioFormat::SampleFormat
Public Types inherited from QtMultimediaPrivate::QPlatformAudioSourceStream
using AudioCallback = QPlatformAudioSource::AudioCallback
enum class  ShutdownPolicy

Public Member Functions

 QPipewireAudioSourceStream (QAudioDevice, const QAudioFormat &, std::optional< qsizetype > ringbufferSize, QPipewireAudioSource *parent, float volume, std::optional< int32_t > hardwareBufferFrames)
 ~QPipewireAudioSourceStream ()
bool open ()
bool start (QIODevice *device)
QIODevicestart ()
bool start (AudioCallback &&)
void stop (ShutdownPolicy)
void updateStreamIdle (bool idle) override
qsizetype bytesReady () const
bool deviceIsRingbufferReader () const
std::chrono::microseconds processedDuration () const
Public Member Functions inherited from QtPipeWire::QPipewireAudioStream
void suspend ()
void resume ()
bool hasStream () const

Private Member Functions

void processRingbuffer () noexcept QT_MM_NONBLOCKING override
void processCallback () noexcept QT_MM_NONBLOCKING override
void handleDeviceRemoved () override
void stateChanged (pw_stream_state old, pw_stream_state state, const char *error) override
void xrunOccurred (int) override

Additional Inherited Members

Protected Types inherited from QtPipeWire::QPipewireAudioStream
enum class  StreamType : uint8_t { Ringbuffer , Callback }
Protected Types inherited from QtMultimediaPrivate::QPlatformAudioIOStream
using NativeSampleFormat = QAudioHelperInternal::NativeSampleFormat
using QAutoResetEvent = QtPrivate::QAutoResetEvent
enum class  ShutdownPolicy : uint8_t { DrainRingbuffer , DiscardRingbuffer }
Protected Member Functions inherited from QtPipeWire::QPipewireAudioStream
 QPipewireAudioStream (const QAudioFormat &)
 ~QPipewireAudioStream ()
void createStream (QSpan< spa_dict_item > extraProperties, std::optional< int32_t > hardwareBufferFrames, const char *streamName, StreamType=StreamType::Ringbuffer)
bool connectStream (ObjectSerial target, spa_direction)
void disconnectStream ()
void resetStream ()
bool registerDeviceObserver (ObjectSerial)
void unregisterDeviceObserver ()
void performXRunDetection (uint64_t framesPerBuffer) noexcept QT_MM_NONBLOCKING
void addFramesHandled (uint64_t)
Protected Member Functions inherited from QtMultimediaPrivate::QPlatformAudioSourceStream
 QPlatformAudioSourceStream (QAudioDevice, const QAudioFormat &, std::optional< int > ringbufferSize, std::optional< int32_t > hardwareBufferFrames, float volume)
 ~QPlatformAudioSourceStream ()
uint64_t process (QSpan< const std::byte > hostBuffer, qsizetype numberOfFrames, std::optional< NativeSampleFormat >={}) noexcept QT_MM_NONBLOCKING
qsizetype bytesReady () const
std::chrono::microseconds processedDuration () const
void setQIODevice (QIODevice *device)
void createQIODeviceConnections (QIODevice *device)
void disconnectQIODeviceConnections ()
QIODevicecreateRingbufferReaderDevice ()
void pushToIODevice ()
bool deviceIsRingbufferReader () const
void finalizeQIODevice (ShutdownPolicy)
void emptyRingbuffer ()
template<typename ParentType>
void handleIOError (ParentType *parent)
QThreadthread () const
template<typename Functor>
void invokeOnAppThread (Functor &&f)
Protected Member Functions inherited from QtMultimediaPrivate::QPlatformAudioIOStream
 QPlatformAudioIOStream (QAudioDevice m_audioDevice, QAudioFormat m_format, std::optional< int > ringbufferSize, std::optional< int32_t > hardwareBufferFrames, float volume)
 ~QPlatformAudioIOStream ()
void setVolume (float)
float volume () const
template<typename Functor>
auto visitRingbuffer (Functor &&f)
template<typename Functor>
auto visitRingbuffer (Functor &&f) const
void prepareRingbuffer (std::optional< int > ringbufferSize)
int ringbufferSizeInBytes ()
void requestStop ()
bool isStopRequested (std::memory_order memory_order=std::memory_order_relaxed) const
Static Protected Member Functions inherited from QtMultimediaPrivate::QPlatformAudioIOStream
static qsizetype inferRingbufferFrames (const std::optional< int > &ringbufferSize, const std::optional< int32_t > &hardwareBufferFrames, const QAudioFormat &)
static qsizetype inferRingbufferBytes (const std::optional< int > &ringbufferSize, const std::optional< int32_t > &hardwareBufferFrames, const QAudioFormat &)
Protected Attributes inherited from QtPipeWire::QPipewireAudioStream
const QAudioFormat m_format
pw_stream_events stream_events {}
PwStreamHandle m_stream
SharedObjectRemoveObserver m_deviceRemovalObserver
uint64_t m_expectedNextTick {}
std::atomic_bool m_skipNextTickDiscontinuity { true }
std::atomic_int m_xrunCount { 0 }
uint64_t m_totalNumberOfFrames {}
std::shared_ptr< QPipewireAudioStreamm_self
Protected Attributes inherited from QtMultimediaPrivate::QPlatformAudioIOStream
const QAudioDevice m_audioDevice
const QAudioFormat m_format
const std::optional< int32_t > m_hardwareBufferFrames

Detailed Description

Definition at line 39 of file qpipewire_audiosource_p.h.

Member Typedef Documentation

◆ SampleFormat

◆ SourceType

Constructor & Destructor Documentation

◆ QPipewireAudioSourceStream()

QtPipeWire::QPipewireAudioSourceStream::QPipewireAudioSourceStream ( QAudioDevice device,
const QAudioFormat & format,
std::optional< qsizetype > ringbufferSize,
QPipewireAudioSource * parent,
float volume,
std::optional< int32_t > hardwareBufferFrames )

Definition at line 22 of file qpipewire_audiosource.cpp.

References QPipewireAudioSourceStream().

Referenced by QPipewireAudioSourceStream().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ~QPipewireAudioSourceStream()

QtPipeWire::QPipewireAudioSourceStream::~QPipewireAudioSourceStream ( )
default

Member Function Documentation

◆ bytesReady()

qsizetype QtMultimediaPrivate::QPlatformAudioSourceStream::bytesReady ( ) const

Definition at line 254 of file qaudiosystem_platform_stream_support.cpp.

◆ deviceIsRingbufferReader()

bool QtMultimediaPrivate::QPlatformAudioSourceStream::deviceIsRingbufferReader ( ) const

Definition at line 263 of file qaudiosystem_platform_stream_support.cpp.

◆ handleDeviceRemoved()

void QtPipeWire::QPipewireAudioSourceStream::handleDeviceRemoved ( )
overrideprivatevirtual

Implements QtPipeWire::QPipewireAudioStream.

Definition at line 236 of file qpipewire_audiosource.cpp.

◆ open()

bool QtPipeWire::QPipewireAudioSourceStream::open ( )
inline

Definition at line 51 of file qpipewire_audiosource_p.h.

◆ processCallback()

void QtPipeWire::QPipewireAudioSourceStream::processCallback ( )
overrideprivatevirtualnoexcept

Implements QtPipeWire::QPipewireAudioStream.

Definition at line 209 of file qpipewire_audiosource.cpp.

◆ processedDuration()

std::chrono::microseconds QtMultimediaPrivate::QPlatformAudioSourceStream::processedDuration ( ) const

Definition at line 255 of file qaudiosystem_platform_stream_support.cpp.

◆ processRingbuffer()

void QtPipeWire::QPipewireAudioSourceStream::processRingbuffer ( )
overrideprivatevirtualnoexcept

Implements QtPipeWire::QPipewireAudioStream.

Definition at line 181 of file qpipewire_audiosource.cpp.

◆ start() [1/3]

QIODevice * QtPipeWire::QPipewireAudioSourceStream::start ( )

Definition at line 79 of file qpipewire_audiosource.cpp.

◆ start() [2/3]

bool QtPipeWire::QPipewireAudioSourceStream::start ( AudioCallback && audioCallback)

Definition at line 90 of file qpipewire_audiosource.cpp.

◆ start() [3/3]

bool QtPipeWire::QPipewireAudioSourceStream::start ( QIODevice * device)

Definition at line 51 of file qpipewire_audiosource.cpp.

◆ stateChanged()

void QtPipeWire::QPipewireAudioSourceStream::stateChanged ( pw_stream_state old,
pw_stream_state state,
const char * error )
overrideprivatevirtual

Implements QtPipeWire::QPipewireAudioStream.

Definition at line 242 of file qpipewire_audiosource.cpp.

◆ stop()

void QtPipeWire::QPipewireAudioSourceStream::stop ( ShutdownPolicy shutdownPolicy)

Definition at line 114 of file qpipewire_audiosource.cpp.

◆ updateStreamIdle()

void QtPipeWire::QPipewireAudioSourceStream::updateStreamIdle ( bool idle)
overridevirtual

◆ xrunOccurred()

void QtPipeWire::QPipewireAudioSourceStream::xrunOccurred ( int )
inlineoverrideprivatevirtual

Implements QtPipeWire::QPipewireAudioStream.

Definition at line 81 of file qpipewire_audiosource_p.h.


The documentation for this struct was generated from the following files: