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::QPipewireAudioStream Struct Referenceabstract

#include <qpipewire_audiostream_p.h>

Inheritance diagram for QtPipeWire::QPipewireAudioStream:
Collaboration diagram for QtPipeWire::QPipewireAudioStream:

Public Member Functions

void suspend ()
void resume ()
bool hasStream () const

Protected Types

enum class  StreamType : uint8_t { Ringbuffer , Callback }

Protected Member Functions

 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 ()
virtual void processRingbuffer ()=0
virtual void processCallback ()=0
virtual void stateChanged (pw_stream_state oldState, pw_stream_state state, const char *error)=0
bool registerDeviceObserver (ObjectSerial)
void unregisterDeviceObserver ()
virtual void handleDeviceRemoved ()=0
void performXRunDetection (uint64_t framesPerBuffer) noexcept QT_MM_NONBLOCKING
virtual void xrunOccurred (int xrunCount)=0
void addFramesHandled (uint64_t)

Protected Attributes

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

Friends

class QAudioContextManager

Detailed Description

Definition at line 31 of file qpipewire_audiostream_p.h.

Member Enumeration Documentation

◆ StreamType

enum class QtPipeWire::QPipewireAudioStream::StreamType : uint8_t
strongprotected
Enumerator
Ringbuffer 
Callback 

Definition at line 41 of file qpipewire_audiostream_p.h.

Constructor & Destructor Documentation

◆ QPipewireAudioStream()

QtPipeWire::QPipewireAudioStream::QPipewireAudioStream ( const QAudioFormat & format)
explicitprotected

Definition at line 34 of file qpipewire_audiostream.cpp.

◆ ~QPipewireAudioStream()

QtPipeWire::QPipewireAudioStream::~QPipewireAudioStream ( )
protected

Definition at line 38 of file qpipewire_audiostream.cpp.

References resetStream().

Here is the call graph for this function:

Member Function Documentation

◆ addFramesHandled()

void QtPipeWire::QPipewireAudioStream::addFramesHandled ( uint64_t arg)
protected

Definition at line 233 of file qpipewire_audiostream.cpp.

◆ connectStream()

bool QtPipeWire::QPipewireAudioStream::connectStream ( ObjectSerial target,
spa_direction direction )
protected

Definition at line 90 of file qpipewire_audiostream.cpp.

References QtPipeWire::make_error_code(), and registerDeviceObserver().

Here is the call graph for this function:

◆ createStream()

void QtPipeWire::QPipewireAudioStream::createStream ( QSpan< spa_dict_item > extraProperties,
std::optional< int32_t > hardwareBufferFrames,
const char * streamName,
StreamType type = StreamType::Ringbuffer )
protected

Definition at line 43 of file qpipewire_audiostream.cpp.

References Callback, QtPipeWire::make_error_code(), processCallback(), processRingbuffer(), Ringbuffer, stateChanged(), and stream_events.

Here is the call graph for this function:

◆ disconnectStream()

void QtPipeWire::QPipewireAudioStream::disconnectStream ( )
protected

Definition at line 148 of file qpipewire_audiostream.cpp.

References QtPipeWire::make_error_code().

Here is the call graph for this function:

◆ handleDeviceRemoved()

virtual void QtPipeWire::QPipewireAudioStream::handleDeviceRemoved ( )
protectedpure virtual

◆ hasStream()

bool QtPipeWire::QPipewireAudioStream::hasStream ( ) const

Definition at line 165 of file qpipewire_audiostream.cpp.

◆ performXRunDetection()

void QtPipeWire::QPipewireAudioStream::performXRunDetection ( uint64_t framesPerBuffer)
protectednoexcept

Definition at line 188 of file qpipewire_audiostream.cpp.

◆ processCallback()

virtual void QtPipeWire::QPipewireAudioStream::processCallback ( )
protectedpure virtual

Implemented in QtPipeWire::QPipewireAudioSinkStream, and QtPipeWire::QPipewireAudioSourceStream.

Referenced by createStream().

Here is the caller graph for this function:

◆ processRingbuffer()

virtual void QtPipeWire::QPipewireAudioStream::processRingbuffer ( )
protectedpure virtual

Implemented in QtPipeWire::QPipewireAudioSinkStream, and QtPipeWire::QPipewireAudioSourceStream.

Referenced by createStream().

Here is the caller graph for this function:

◆ registerDeviceObserver()

bool QtPipeWire::QPipewireAudioStream::registerDeviceObserver ( ObjectSerial nodeSerial)
nodiscardprotected

Definition at line 170 of file qpipewire_audiostream.cpp.

Referenced by connectStream().

Here is the caller graph for this function:

◆ resetStream()

void QtPipeWire::QPipewireAudioStream::resetStream ( )
protected

Definition at line 157 of file qpipewire_audiostream.cpp.

Referenced by ~QPipewireAudioStream().

Here is the caller graph for this function:

◆ resume()

void QtPipeWire::QPipewireAudioStream::resume ( )

Definition at line 138 of file qpipewire_audiostream.cpp.

References QtPipeWire::make_error_code().

Here is the call graph for this function:

◆ stateChanged()

virtual void QtPipeWire::QPipewireAudioStream::stateChanged ( pw_stream_state oldState,
pw_stream_state state,
const char * error )
protectedpure virtual

Implemented in QtPipeWire::QPipewireAudioSinkStream, and QtPipeWire::QPipewireAudioSourceStream.

Referenced by createStream().

Here is the caller graph for this function:

◆ suspend()

void QtPipeWire::QPipewireAudioStream::suspend ( )

Definition at line 129 of file qpipewire_audiostream.cpp.

References QtPipeWire::make_error_code().

Here is the call graph for this function:

◆ unregisterDeviceObserver()

void QtPipeWire::QPipewireAudioStream::unregisterDeviceObserver ( )
protected

Definition at line 181 of file qpipewire_audiostream.cpp.

◆ xrunOccurred()

virtual void QtPipeWire::QPipewireAudioStream::xrunOccurred ( int xrunCount)
protectedpure virtual

◆ QAudioContextManager

friend class QAudioContextManager
friend

Definition at line 91 of file qpipewire_audiostream_p.h.

Member Data Documentation

◆ m_deviceRemovalObserver

SharedObjectRemoveObserver QtPipeWire::QPipewireAudioStream::m_deviceRemovalObserver
protected

Definition at line 76 of file qpipewire_audiostream_p.h.

◆ m_expectedNextTick

uint64_t QtPipeWire::QPipewireAudioStream::m_expectedNextTick {}
protected

Definition at line 83 of file qpipewire_audiostream_p.h.

◆ m_format

const QAudioFormat QtPipeWire::QPipewireAudioStream::m_format
protected

Definition at line 39 of file qpipewire_audiostream_p.h.

◆ m_self

std::shared_ptr<QPipewireAudioStream> QtPipeWire::QPipewireAudioStream::m_self
protected

Definition at line 92 of file qpipewire_audiostream_p.h.

◆ m_skipNextTickDiscontinuity

std::atomic_bool QtPipeWire::QPipewireAudioStream::m_skipNextTickDiscontinuity { true }
protected

Definition at line 84 of file qpipewire_audiostream_p.h.

◆ m_stream

PwStreamHandle QtPipeWire::QPipewireAudioStream::m_stream
protected

Definition at line 70 of file qpipewire_audiostream_p.h.

◆ m_totalNumberOfFrames

uint64_t QtPipeWire::QPipewireAudioStream::m_totalNumberOfFrames {}
protected

Definition at line 89 of file qpipewire_audiostream_p.h.

◆ m_xrunCount

std::atomic_int QtPipeWire::QPipewireAudioStream::m_xrunCount { 0 }
protected

Definition at line 85 of file qpipewire_audiostream_p.h.

◆ stream_events

pw_stream_events QtPipeWire::QPipewireAudioStream::stream_events {}
protected

Definition at line 69 of file qpipewire_audiostream_p.h.

Referenced by createStream().


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