MythTV  master
Public Member Functions | Static Public Member Functions | Private Slots | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
MythRAOPConnection Class Reference

#include <mythraopconnection.h>

Inheritance diagram for MythRAOPConnection:
Inheritance graph
[legend]
Collaboration diagram for MythRAOPConnection:
Collaboration graph
[legend]

Public Member Functions

 MythRAOPConnection (QObject *parent, QTcpSocket *socket, QByteArray id, int port)
 
 ~MythRAOPConnection () override
 
bool Init (void)
 
QTcpSocket * GetSocket ()
 
int GetDataPort () const
 
bool HasAudio ()
 

Static Public Member Functions

static QMap< QString, QString > decodeDMAP (const QByteArray &dmap)
 decodeDMAP: More...
 
static bool LoadKey (void)
 LoadKey. More...
 
static QString RSALastError (void)
 

Private Slots

void readClient (void)
 readClient: signal handler for RAOP client connection Handle initialisation of session More...
 
void udpDataReady (QByteArray buf, const QHostAddress &peer, quint16 port)
 Socket incoming data signal handler use for audio, control and timing socket. More...
 
void timeout (void)
 
void audioRetry (void)
 
void newEventClient (QTcpSocket *client)
 
void deleteEventClient ()
 
void ProcessAudio (void)
 

Private Member Functions

void ProcessSync (const QByteArray &buf)
 
void SendResendRequest (std::chrono::milliseconds timestamp, uint16_t expected, uint16_t got)
 SendResendRequest: Request RAOP client to resend missed RTP packets. More...
 
void ExpireResendRequests (std::chrono::milliseconds timestamp)
 ExpireResendRequests: Expire resend requests that are older than timestamp. More...
 
uint32_t decodeAudioPacket (uint8_t type, const QByteArray *buf, QList< AudioData > *dest)
 
int ExpireAudio (std::chrono::milliseconds timestamp)
 
void ResetAudio (void)
 
void ProcessRequest (const QStringList &header, const QByteArray &content)
 
void FinishAuthenticationResponse (RaopNetStream *stream, QTcpSocket *socket, QString &cseq)
 
bool CreateDecoder (void)
 
void DestroyDecoder (void)
 
bool OpenAudioDevice (void)
 
void CloseAudioDevice (void)
 
void StartAudioTimer (void)
 
void StopAudioTimer (void)
 
void CleanUp (void)
 
void SendTimeRequest (void)
 SendTimeRequest: Send a time request to the RAOP client. More...
 
void ProcessTimeResponse (const QByteArray &buf)
 ProcessTimeResponse: Calculate the network latency, we do not use the reference time send by itunes instead we measure the time lapsed between the request and the response the latency is calculated in ms. More...
 
std::chrono::milliseconds AudioCardLatency (void)
 AudioCardLatency: Description: Play silence and calculate audio latency between input / output. More...
 
std::chrono::milliseconds framesToMs (uint64_t frames) const
 framesDuration Description: return the duration in ms of frames More...
 
uint64_t MsToFrame (std::chrono::milliseconds millis) const
 
void SendNotification (bool update=false)
 

Static Private Member Functions

static void FinishResponse (RaopNetStream *stream, QTcpSocket *socket, QString &option, QString &cseq, QString &responseData)
 
static RawHash FindTags (const QStringList &lines)
 
static std::chrono::milliseconds NTPToLocal (uint32_t sec, uint32_t ticks)
 
static void microsecondsToNTP (std::chrono::microseconds usec, uint32_t &ntpSec, uint32_t &ntpTicks)
 
static void timevalToNTP (timeval t, uint32_t &ntpSec, uint32_t &ntpTicks)
 
static bool GetPacketType (const QByteArray &buf, uint8_t &type, uint16_t &seq, uint64_t &timestamp)
 
static QStringList splitLines (const QByteArray &lines)
 
static QString stringFromSeconds (int timeInSeconds)
 stringFromSeconds: More...
 

Private Attributes

QTimer * m_watchdogTimer {nullptr}
 
QTcpSocket * m_socket {nullptr}
 
RaopNetStreamm_textStream {nullptr}
 
QByteArray m_hardwareId
 
QStringList m_incomingHeaders
 
QByteArray m_incomingContent
 
bool m_incomingPartial {false}
 
int32_t m_incomingSize {0}
 
QHostAddress m_peerAddress
 
ServerPoolm_dataSocket {nullptr}
 
int m_dataPort
 
ServerPoolm_clientControlSocket {nullptr}
 
int m_clientControlPort {0}
 
ServerPoolm_clientTimingSocket {nullptr}
 
int m_clientTimingPort {0}
 
ServerPoolm_eventServer {nullptr}
 
int m_eventPort {-1}
 
QList< QTcpSocket * > m_eventClients
 
QMap< uint16_t, std::chrono::milliseconds > m_resends
 
QByteArray m_aesIV
 
std::vector< uint8_t > m_sessionKey
 
const EVP_CIPHER * m_cipher {nullptr}
 
EVP_CIPHER_CTX * m_cctx {nullptr}
 
AudioOutputm_audio {nullptr}
 
const AVCodec * m_codec {nullptr}
 
AVCodecContext * m_codecContext {nullptr}
 
QList< int > m_audioFormat
 
int m_channels {2}
 
int m_sampleSize {16}
 
int m_frameRate {44100}
 
int m_framesPerPacket {352}
 
QTimer * m_dequeueAudioTimer {nullptr}
 
QMap< std::chrono::milliseconds, AudioPacketm_audioQueue
 
uint32_t m_queueLength {0}
 
bool m_streamingStarted {false}
 
bool m_allowVolumeControl {true}
 
uint16_t m_seqNum {0}
 
uint16_t m_lastSequence {0}
 
std::chrono::milliseconds m_lastTimestamp {0ms}
 
std::chrono::milliseconds m_currentTimestamp {0ms}
 
uint16_t m_nextSequence {0}
 
std::chrono::milliseconds m_nextTimestamp {0ms}
 
std::chrono::milliseconds m_bufferLength {0ms}
 
std::chrono::milliseconds m_timeLastSync {0ms}
 
std::chrono::milliseconds m_cardLatency {-1ms}
 
std::chrono::milliseconds m_adjustedLatency {-1ms}
 
bool m_audioStarted {false}
 
std::chrono::milliseconds m_networkLatency {0ms}
 
std::chrono::milliseconds m_clockSkew {0ms}
 
QTimer * m_audioTimer {nullptr}
 
uint32_t m_progressStart {0}
 
uint32_t m_progressCurrent {0}
 
uint32_t m_progressEnd {0}
 
QByteArray m_artwork
 
DMAP m_dmap
 
QString m_nonce
 
int m_id
 
bool m_firstSend {false}
 
bool m_playbackStarted {false}
 

Static Private Attributes

static EVP_PKEY * g_devPrivKey = nullptr
 
static QString g_rsaLastError
 

Friends

class MythRAOPDevice
 

Detailed Description

Definition at line 46 of file mythraopconnection.h.

Constructor & Destructor Documentation

◆ MythRAOPConnection()

MythRAOPConnection::MythRAOPConnection ( QObject *  parent,
QTcpSocket *  socket,
QByteArray  id,
int  port 
)

Definition at line 75 of file mythraopconnection.cpp.

◆ ~MythRAOPConnection()

MythRAOPConnection::~MythRAOPConnection ( )
override

Definition at line 91 of file mythraopconnection.cpp.

Member Function Documentation

◆ Init()

bool MythRAOPConnection::Init ( void  )

Definition at line 201 of file mythraopconnection.cpp.

◆ GetSocket()

QTcpSocket* MythRAOPConnection::GetSocket ( )
inline

Definition at line 57 of file mythraopconnection.h.

Referenced by MythRAOPDevice::DeleteAllClients().

◆ GetDataPort()

int MythRAOPConnection::GetDataPort ( ) const
inline

Definition at line 58 of file mythraopconnection.h.

◆ HasAudio()

bool MythRAOPConnection::HasAudio ( )
inline

Definition at line 59 of file mythraopconnection.h.

◆ decodeDMAP()

QMap< QString, QString > MythRAOPConnection::decodeDMAP ( const QByteArray &  dmap)
static

decodeDMAP:

Usage: decodeDMAP(QByteArray &dmap) Description: decode the DMAP (Digital Media Access Protocol) object. The object returned is a map of the dmap tags and their associated content

Definition at line 1709 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ LoadKey()

bool MythRAOPConnection::LoadKey ( void  )
static

LoadKey.

Load RSA key into static variable for re-using it later The RSA key is resident in memory for the entire duration of the application as such RSA_free is never called on it.

Definition at line 1594 of file mythraopconnection.cpp.

Referenced by MythRAOPDevice::Create(), Init(), and ProcessRequest().

◆ RSALastError()

static QString MythRAOPConnection::RSALastError ( void  )
inlinestatic

Definition at line 62 of file mythraopconnection.h.

◆ readClient

void MythRAOPConnection::readClient ( void  )
privateslot

readClient: signal handler for RAOP client connection Handle initialisation of session

Definition at line 891 of file mythraopconnection.cpp.

Referenced by Init().

◆ udpDataReady

void MythRAOPConnection::udpDataReady ( QByteArray  buf,
const QHostAddress &  peer,
quint16  port 
)
privateslot

Socket incoming data signal handler use for audio, control and timing socket.

Definition at line 258 of file mythraopconnection.cpp.

Referenced by Init(), and ProcessRequest().

◆ timeout

void MythRAOPConnection::timeout ( void  )
privateslot

Definition at line 868 of file mythraopconnection.cpp.

Referenced by Init().

◆ audioRetry

void MythRAOPConnection::audioRetry ( void  )
privateslot

Definition at line 874 of file mythraopconnection.cpp.

Referenced by StartAudioTimer().

◆ newEventClient

void MythRAOPConnection::newEventClient ( QTcpSocket *  client)
privateslot

Definition at line 1873 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ deleteEventClient

void MythRAOPConnection::deleteEventClient ( )
privateslot

Definition at line 1883 of file mythraopconnection.cpp.

Referenced by newEventClient().

◆ ProcessSync()

void MythRAOPConnection::ProcessSync ( const QByteArray &  buf)
private

Definition at line 369 of file mythraopconnection.cpp.

Referenced by udpDataReady().

◆ SendResendRequest()

void MythRAOPConnection::SendResendRequest ( std::chrono::milliseconds  timestamp,
uint16_t  expected,
uint16_t  got 
)
private

SendResendRequest: Request RAOP client to resend missed RTP packets.

Definition at line 449 of file mythraopconnection.cpp.

Referenced by udpDataReady().

◆ ExpireResendRequests()

void MythRAOPConnection::ExpireResendRequests ( std::chrono::milliseconds  timestamp)
private

ExpireResendRequests: Expire resend requests that are older than timestamp.

Those requests are expired when audio with older timestamp has already been played

Definition at line 488 of file mythraopconnection.cpp.

Referenced by ProcessSync(), and ResetAudio().

◆ decodeAudioPacket()

uint32_t MythRAOPConnection::decodeAudioPacket ( uint8_t  type,
const QByteArray *  buf,
QList< AudioData > *  dest 
)
private

Definition at line 646 of file mythraopconnection.cpp.

Referenced by udpDataReady().

◆ ExpireAudio()

int MythRAOPConnection::ExpireAudio ( std::chrono::milliseconds  timestamp)
private

Definition at line 834 of file mythraopconnection.cpp.

Referenced by ProcessAudio(), ProcessSync(), and ResetAudio().

◆ ResetAudio()

void MythRAOPConnection::ResetAudio ( void  )
private

Definition at line 857 of file mythraopconnection.cpp.

Referenced by CleanUp(), and ProcessRequest().

◆ ProcessRequest()

void MythRAOPConnection::ProcessRequest ( const QStringList &  header,
const QByteArray &  content 
)
private

Definition at line 961 of file mythraopconnection.cpp.

Referenced by readClient().

◆ FinishResponse()

void MythRAOPConnection::FinishResponse ( RaopNetStream stream,
QTcpSocket *  socket,
QString &  option,
QString &  cseq,
QString &  responseData 
)
staticprivate

Definition at line 1573 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ FinishAuthenticationResponse()

void MythRAOPConnection::FinishAuthenticationResponse ( RaopNetStream stream,
QTcpSocket *  socket,
QString &  cseq 
)
private

Definition at line 1555 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ FindTags()

RawHash MythRAOPConnection::FindTags ( const QStringList &  lines)
staticprivate

Definition at line 1637 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ CreateDecoder()

bool MythRAOPConnection::CreateDecoder ( void  )
private

Definition at line 1727 of file mythraopconnection.cpp.

Referenced by audioRetry(), and ProcessRequest().

◆ DestroyDecoder()

void MythRAOPConnection::DestroyDecoder ( void  )
private

Definition at line 1779 of file mythraopconnection.cpp.

Referenced by CleanUp(), and CreateDecoder().

◆ OpenAudioDevice()

bool MythRAOPConnection::OpenAudioDevice ( void  )
private

Definition at line 1788 of file mythraopconnection.cpp.

Referenced by audioRetry(), and ProcessRequest().

◆ CloseAudioDevice()

void MythRAOPConnection::CloseAudioDevice ( void  )
private

Definition at line 1824 of file mythraopconnection.cpp.

Referenced by CleanUp(), and OpenAudioDevice().

◆ StartAudioTimer()

void MythRAOPConnection::StartAudioTimer ( void  )
private

Definition at line 1830 of file mythraopconnection.cpp.

Referenced by OpenAudioDevice().

◆ StopAudioTimer()

void MythRAOPConnection::StopAudioTimer ( void  )
private

Definition at line 1840 of file mythraopconnection.cpp.

Referenced by audioRetry(), CleanUp(), and OpenAudioDevice().

◆ CleanUp()

void MythRAOPConnection::CleanUp ( void  )
private

Definition at line 140 of file mythraopconnection.cpp.

Referenced by ~MythRAOPConnection().

◆ SendTimeRequest()

void MythRAOPConnection::SendTimeRequest ( void  )
private

SendTimeRequest: Send a time request to the RAOP client.

Definition at line 510 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ ProcessTimeResponse()

void MythRAOPConnection::ProcessTimeResponse ( const QByteArray &  buf)
private

ProcessTimeResponse: Calculate the network latency, we do not use the reference time send by itunes instead we measure the time lapsed between the request and the response the latency is calculated in ms.

Definition at line 546 of file mythraopconnection.cpp.

Referenced by udpDataReady().

◆ NTPToLocal()

std::chrono::milliseconds MythRAOPConnection::NTPToLocal ( uint32_t  sec,
uint32_t  ticks 
)
staticprivate

Definition at line 584 of file mythraopconnection.cpp.

Referenced by ProcessTimeResponse().

◆ microsecondsToNTP()

void MythRAOPConnection::microsecondsToNTP ( std::chrono::microseconds  usec,
uint32_t &  ntpSec,
uint32_t &  ntpTicks 
)
staticprivate

Definition at line 589 of file mythraopconnection.cpp.

Referenced by SendTimeRequest(), and timevalToNTP().

◆ timevalToNTP()

void MythRAOPConnection::timevalToNTP ( timeval  t,
uint32_t &  ntpSec,
uint32_t &  ntpTicks 
)
staticprivate

Definition at line 595 of file mythraopconnection.cpp.

◆ GetPacketType()

bool MythRAOPConnection::GetPacketType ( const QByteArray &  buf,
uint8_t &  type,
uint16_t seq,
uint64_t &  timestamp 
)
staticprivate
Parameters
bufA pointer to the received data.
typeThe type of this packet.
seqThe sequence number of this packet. This value is not always set.
timestampThe frame number of the first frame in this packet. NOT milliseconds. This value is not always set.
Returns
true if the packet header was successfully parsed.

Definition at line 611 of file mythraopconnection.cpp.

Referenced by udpDataReady().

◆ AudioCardLatency()

std::chrono::milliseconds MythRAOPConnection::AudioCardLatency ( void  )
private

AudioCardLatency: Description: Play silence and calculate audio latency between input / output.

Definition at line 1854 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ splitLines()

QStringList MythRAOPConnection::splitLines ( const QByteArray &  lines)
staticprivate

Definition at line 1655 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ stringFromSeconds()

QString MythRAOPConnection::stringFromSeconds ( int  timeInSeconds)
staticprivate

stringFromSeconds:

Usage: stringFromSeconds(timeInSeconds) Description: create a string in the format HH:mm:ss from a duration in seconds HH: will not be displayed if there's less than one hour

Definition at line 1681 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ framesToMs()

std::chrono::milliseconds MythRAOPConnection::framesToMs ( uint64_t  frames) const
private

framesDuration Description: return the duration in ms of frames

Definition at line 1692 of file mythraopconnection.cpp.

Referenced by ProcessAudio(), ProcessRequest(), ProcessSync(), and udpDataReady().

◆ MsToFrame()

uint64_t MythRAOPConnection::MsToFrame ( std::chrono::milliseconds  millis) const
private

Definition at line 1697 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ SendNotification()

void MythRAOPConnection::SendNotification ( bool  update = false)
private

Definition at line 1897 of file mythraopconnection.cpp.

Referenced by ProcessRequest(), and ProcessSync().

◆ ProcessAudio

void MythRAOPConnection::ProcessAudio ( void  )
privateslot

Definition at line 737 of file mythraopconnection.cpp.

Referenced by Init(), and udpDataReady().

Friends And Related Function Documentation

◆ MythRAOPDevice

friend class MythRAOPDevice
friend

Definition at line 50 of file mythraopconnection.h.

Member Data Documentation

◆ m_watchdogTimer

QTimer* MythRAOPConnection::m_watchdogTimer {nullptr}
private

Definition at line 118 of file mythraopconnection.h.

Referenced by CleanUp(), Init(), ProcessRequest(), and udpDataReady().

◆ m_socket

QTcpSocket* MythRAOPConnection::m_socket {nullptr}
private

Definition at line 120 of file mythraopconnection.h.

Referenced by Init(), ProcessRequest(), readClient(), timeout(), and ~MythRAOPConnection().

◆ m_textStream

RaopNetStream* MythRAOPConnection::m_textStream {nullptr}
private

Definition at line 121 of file mythraopconnection.h.

Referenced by Init(), ProcessRequest(), and ~MythRAOPConnection().

◆ m_hardwareId

QByteArray MythRAOPConnection::m_hardwareId
private

Definition at line 122 of file mythraopconnection.h.

Referenced by ProcessRequest().

◆ m_incomingHeaders

QStringList MythRAOPConnection::m_incomingHeaders
private

Definition at line 123 of file mythraopconnection.h.

Referenced by readClient().

◆ m_incomingContent

QByteArray MythRAOPConnection::m_incomingContent
private

Definition at line 124 of file mythraopconnection.h.

Referenced by readClient().

◆ m_incomingPartial

bool MythRAOPConnection::m_incomingPartial {false}
private

Definition at line 125 of file mythraopconnection.h.

Referenced by readClient().

◆ m_incomingSize

int32_t MythRAOPConnection::m_incomingSize {0}
private

Definition at line 126 of file mythraopconnection.h.

Referenced by readClient().

◆ m_peerAddress

QHostAddress MythRAOPConnection::m_peerAddress
private

Definition at line 127 of file mythraopconnection.h.

Referenced by ProcessRequest(), SendResendRequest(), and SendTimeRequest().

◆ m_dataSocket

ServerPool* MythRAOPConnection::m_dataSocket {nullptr}
private

Definition at line 128 of file mythraopconnection.h.

Referenced by CleanUp(), and Init().

◆ m_dataPort

int MythRAOPConnection::m_dataPort
private

Definition at line 129 of file mythraopconnection.h.

Referenced by Init(), and ProcessRequest().

◆ m_clientControlSocket

ServerPool* MythRAOPConnection::m_clientControlSocket {nullptr}
private

Definition at line 130 of file mythraopconnection.h.

Referenced by CleanUp(), ProcessRequest(), SendResendRequest(), and SendTimeRequest().

◆ m_clientControlPort

int MythRAOPConnection::m_clientControlPort {0}
private

Definition at line 131 of file mythraopconnection.h.

Referenced by ProcessRequest(), and SendResendRequest().

◆ m_clientTimingSocket

ServerPool* MythRAOPConnection::m_clientTimingSocket {nullptr}
private

Definition at line 132 of file mythraopconnection.h.

Referenced by CleanUp(), ProcessRequest(), and SendTimeRequest().

◆ m_clientTimingPort

int MythRAOPConnection::m_clientTimingPort {0}
private

Definition at line 133 of file mythraopconnection.h.

Referenced by ProcessRequest(), and SendTimeRequest().

◆ m_eventServer

ServerPool* MythRAOPConnection::m_eventServer {nullptr}
private

Definition at line 134 of file mythraopconnection.h.

Referenced by ProcessRequest(), and ~MythRAOPConnection().

◆ m_eventPort

int MythRAOPConnection::m_eventPort {-1}
private

Definition at line 135 of file mythraopconnection.h.

Referenced by ProcessRequest().

◆ m_eventClients

QList<QTcpSocket *> MythRAOPConnection::m_eventClients
private

Definition at line 136 of file mythraopconnection.h.

Referenced by newEventClient(), ProcessRequest(), and ~MythRAOPConnection().

◆ m_resends

QMap<uint16_t,std::chrono::milliseconds> MythRAOPConnection::m_resends
private

Definition at line 139 of file mythraopconnection.h.

Referenced by ExpireResendRequests(), SendResendRequest(), and udpDataReady().

◆ m_aesIV

QByteArray MythRAOPConnection::m_aesIV
private

Definition at line 141 of file mythraopconnection.h.

Referenced by decodeAudioPacket(), and ProcessRequest().

◆ g_devPrivKey

EVP_PKEY * MythRAOPConnection::g_devPrivKey = nullptr
staticprivate

Definition at line 142 of file mythraopconnection.h.

Referenced by LoadKey(), and ProcessRequest().

◆ m_sessionKey

std::vector<uint8_t> MythRAOPConnection::m_sessionKey
private

Definition at line 143 of file mythraopconnection.h.

Referenced by decodeAudioPacket(), and ProcessRequest().

◆ m_cipher

const EVP_CIPHER* MythRAOPConnection::m_cipher {nullptr}
private

◆ m_cctx

EVP_CIPHER_CTX* MythRAOPConnection::m_cctx {nullptr}
private

◆ g_rsaLastError

QString MythRAOPConnection::g_rsaLastError
staticprivate

Definition at line 150 of file mythraopconnection.h.

Referenced by LoadKey().

◆ m_audio

AudioOutput* MythRAOPConnection::m_audio {nullptr}
private

◆ m_codec

const AVCodec* MythRAOPConnection::m_codec {nullptr}
private

Definition at line 153 of file mythraopconnection.h.

Referenced by audioRetry(), CreateDecoder(), DestroyDecoder(), and udpDataReady().

◆ m_codecContext

AVCodecContext* MythRAOPConnection::m_codecContext {nullptr}
private

◆ m_audioFormat

QList<int> MythRAOPConnection::m_audioFormat
private

Definition at line 155 of file mythraopconnection.h.

Referenced by CreateDecoder(), and ProcessRequest().

◆ m_channels

int MythRAOPConnection::m_channels {2}
private

◆ m_sampleSize

int MythRAOPConnection::m_sampleSize {16}
private

Definition at line 157 of file mythraopconnection.h.

Referenced by AudioCardLatency(), and ProcessRequest().

◆ m_frameRate

int MythRAOPConnection::m_frameRate {44100}
private

◆ m_framesPerPacket

int MythRAOPConnection::m_framesPerPacket {352}
private

Definition at line 159 of file mythraopconnection.h.

Referenced by ProcessAudio(), ProcessRequest(), and ProcessSync().

◆ m_dequeueAudioTimer

QTimer* MythRAOPConnection::m_dequeueAudioTimer {nullptr}
private

Definition at line 160 of file mythraopconnection.h.

Referenced by CleanUp(), Init(), and ProcessAudio().

◆ m_audioQueue

QMap<std::chrono::milliseconds, AudioPacket> MythRAOPConnection::m_audioQueue
private

Definition at line 162 of file mythraopconnection.h.

Referenced by ExpireAudio(), ProcessAudio(), ProcessSync(), and udpDataReady().

◆ m_queueLength

uint32_t MythRAOPConnection::m_queueLength {0}
private

Definition at line 163 of file mythraopconnection.h.

◆ m_streamingStarted

bool MythRAOPConnection::m_streamingStarted {false}
private

◆ m_allowVolumeControl

bool MythRAOPConnection::m_allowVolumeControl {true}
private

Definition at line 165 of file mythraopconnection.h.

Referenced by Init(), OpenAudioDevice(), and ProcessRequest().

◆ m_seqNum

uint16_t MythRAOPConnection::m_seqNum {0}
private

Definition at line 168 of file mythraopconnection.h.

Referenced by SendResendRequest().

◆ m_lastSequence

uint16_t MythRAOPConnection::m_lastSequence {0}
private

Definition at line 170 of file mythraopconnection.h.

Referenced by ProcessAudio().

◆ m_lastTimestamp

std::chrono::milliseconds MythRAOPConnection::m_lastTimestamp {0ms}
private

Definition at line 171 of file mythraopconnection.h.

Referenced by ProcessAudio(), and ProcessRequest().

◆ m_currentTimestamp

std::chrono::milliseconds MythRAOPConnection::m_currentTimestamp {0ms}
private

Definition at line 172 of file mythraopconnection.h.

Referenced by ProcessAudio(), ProcessRequest(), ProcessSync(), and udpDataReady().

◆ m_nextSequence

uint16_t MythRAOPConnection::m_nextSequence {0}
private

Definition at line 173 of file mythraopconnection.h.

Referenced by ProcessRequest(), and udpDataReady().

◆ m_nextTimestamp

std::chrono::milliseconds MythRAOPConnection::m_nextTimestamp {0ms}
private

Definition at line 174 of file mythraopconnection.h.

Referenced by ProcessRequest(), ProcessSync(), and udpDataReady().

◆ m_bufferLength

std::chrono::milliseconds MythRAOPConnection::m_bufferLength {0ms}
private

Definition at line 175 of file mythraopconnection.h.

Referenced by ProcessAudio(), ProcessRequest(), and ProcessSync().

◆ m_timeLastSync

std::chrono::milliseconds MythRAOPConnection::m_timeLastSync {0ms}
private

Definition at line 176 of file mythraopconnection.h.

Referenced by ProcessAudio(), and ProcessSync().

◆ m_cardLatency

std::chrono::milliseconds MythRAOPConnection::m_cardLatency {-1ms}
private

Definition at line 177 of file mythraopconnection.h.

Referenced by ProcessRequest(), and ProcessSync().

◆ m_adjustedLatency

std::chrono::milliseconds MythRAOPConnection::m_adjustedLatency {-1ms}
private

Definition at line 178 of file mythraopconnection.h.

Referenced by ProcessAudio(), ProcessRequest(), and ProcessSync().

◆ m_audioStarted

bool MythRAOPConnection::m_audioStarted {false}
private

Definition at line 179 of file mythraopconnection.h.

Referenced by ProcessAudio(), ProcessRequest(), ProcessSync(), and ResetAudio().

◆ m_networkLatency

std::chrono::milliseconds MythRAOPConnection::m_networkLatency {0ms}
private

Definition at line 182 of file mythraopconnection.h.

Referenced by ProcessRequest(), ProcessSync(), and ProcessTimeResponse().

◆ m_clockSkew

std::chrono::milliseconds MythRAOPConnection::m_clockSkew {0ms}
private

Definition at line 186 of file mythraopconnection.h.

Referenced by ProcessTimeResponse().

◆ m_audioTimer

QTimer* MythRAOPConnection::m_audioTimer {nullptr}
private

Definition at line 189 of file mythraopconnection.h.

Referenced by StartAudioTimer(), and StopAudioTimer().

◆ m_progressStart

uint32_t MythRAOPConnection::m_progressStart {0}
private

Definition at line 192 of file mythraopconnection.h.

Referenced by ProcessRequest(), ProcessSync(), and SendNotification().

◆ m_progressCurrent

uint32_t MythRAOPConnection::m_progressCurrent {0}
private

Definition at line 193 of file mythraopconnection.h.

Referenced by ProcessRequest(), ProcessSync(), and SendNotification().

◆ m_progressEnd

uint32_t MythRAOPConnection::m_progressEnd {0}
private

Definition at line 194 of file mythraopconnection.h.

Referenced by ProcessRequest(), and SendNotification().

◆ m_artwork

QByteArray MythRAOPConnection::m_artwork
private

Definition at line 195 of file mythraopconnection.h.

Referenced by ProcessRequest(), and SendNotification().

◆ m_dmap

DMAP MythRAOPConnection::m_dmap
private

Definition at line 196 of file mythraopconnection.h.

Referenced by ProcessRequest(), and SendNotification().

◆ m_nonce

QString MythRAOPConnection::m_nonce
private

Definition at line 199 of file mythraopconnection.h.

Referenced by FinishAuthenticationResponse(), and ProcessRequest().

◆ m_id

int MythRAOPConnection::m_id
private

Definition at line 202 of file mythraopconnection.h.

Referenced by MythRAOPConnection(), SendNotification(), and ~MythRAOPConnection().

◆ m_firstSend

bool MythRAOPConnection::m_firstSend {false}
private

Definition at line 203 of file mythraopconnection.h.

Referenced by SendNotification().

◆ m_playbackStarted

bool MythRAOPConnection::m_playbackStarted {false}
private

Definition at line 204 of file mythraopconnection.h.

Referenced by CleanUp(), and ProcessRequest().


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