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 <libmythtv/AirPlay/mythraopconnection.h>

Inheritance diagram for MythRAOPConnection:
[legend]
Collaboration diagram for MythRAOPConnection:
[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 76 of file mythraopconnection.cpp.

◆ ~MythRAOPConnection()

MythRAOPConnection::~MythRAOPConnection ( )
override

Definition at line 93 of file mythraopconnection.cpp.

Member Function Documentation

◆ AudioCardLatency()

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

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

Definition at line 1853 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ audioRetry

void MythRAOPConnection::audioRetry ( void  )
privateslot

Definition at line 880 of file mythraopconnection.cpp.

Referenced by StartAudioTimer().

◆ CleanUp()

void MythRAOPConnection::CleanUp ( void  )
private

Definition at line 142 of file mythraopconnection.cpp.

Referenced by ~MythRAOPConnection().

◆ CloseAudioDevice()

void MythRAOPConnection::CloseAudioDevice ( void  )
private

Definition at line 1823 of file mythraopconnection.cpp.

Referenced by CleanUp(), and OpenAudioDevice().

◆ CreateDecoder()

bool MythRAOPConnection::CreateDecoder ( void  )
private

Definition at line 1725 of file mythraopconnection.cpp.

Referenced by audioRetry(), and ProcessRequest().

◆ decodeAudioPacket()

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

Definition at line 650 of file mythraopconnection.cpp.

Referenced by udpDataReady().

◆ 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 1707 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ deleteEventClient

void MythRAOPConnection::deleteEventClient ( void  )
privateslot

Definition at line 1882 of file mythraopconnection.cpp.

Referenced by newEventClient().

◆ DestroyDecoder()

void MythRAOPConnection::DestroyDecoder ( void  )
private

Definition at line 1778 of file mythraopconnection.cpp.

Referenced by CleanUp(), and CreateDecoder().

◆ ExpireAudio()

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

Definition at line 840 of file mythraopconnection.cpp.

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

◆ 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 492 of file mythraopconnection.cpp.

Referenced by ProcessSync(), and ResetAudio().

◆ FindTags()

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

Definition at line 1639 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ FinishAuthenticationResponse()

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

Definition at line 1557 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ FinishResponse()

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

Definition at line 1575 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 1690 of file mythraopconnection.cpp.

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

◆ GetDataPort()

int MythRAOPConnection::GetDataPort ( ) const
inline

Definition at line 58 of file mythraopconnection.h.

◆ 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 615 of file mythraopconnection.cpp.

Referenced by udpDataReady().

◆ GetSocket()

QTcpSocket * MythRAOPConnection::GetSocket ( void  )
inline

Definition at line 57 of file mythraopconnection.h.

Referenced by MythRAOPDevice::DeleteAllClients().

◆ HasAudio()

bool MythRAOPConnection::HasAudio ( )
inline

Definition at line 59 of file mythraopconnection.h.

◆ Init()

bool MythRAOPConnection::Init ( void  )

Definition at line 203 of file mythraopconnection.cpp.

◆ 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 1596 of file mythraopconnection.cpp.

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

◆ microsecondsToNTP()

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

Definition at line 593 of file mythraopconnection.cpp.

Referenced by SendTimeRequest(), and timevalToNTP().

◆ MsToFrame()

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

Definition at line 1695 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ newEventClient

void MythRAOPConnection::newEventClient ( QTcpSocket *  client)
privateslot

Definition at line 1872 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ NTPToLocal()

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

Definition at line 588 of file mythraopconnection.cpp.

Referenced by ProcessTimeResponse().

◆ OpenAudioDevice()

bool MythRAOPConnection::OpenAudioDevice ( void  )
private

Definition at line 1787 of file mythraopconnection.cpp.

Referenced by audioRetry(), and ProcessRequest().

◆ ProcessAudio

void MythRAOPConnection::ProcessAudio ( void  )
privateslot

Definition at line 741 of file mythraopconnection.cpp.

Referenced by Init(), and udpDataReady().

◆ ProcessRequest()

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

Definition at line 964 of file mythraopconnection.cpp.

Referenced by readClient().

◆ ProcessSync()

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

Definition at line 371 of file mythraopconnection.cpp.

Referenced by udpDataReady().

◆ 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 550 of file mythraopconnection.cpp.

Referenced by udpDataReady().

◆ readClient

void MythRAOPConnection::readClient ( void  )
privateslot

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

Definition at line 897 of file mythraopconnection.cpp.

Referenced by Init().

◆ ResetAudio()

void MythRAOPConnection::ResetAudio ( void  )
private

Definition at line 863 of file mythraopconnection.cpp.

Referenced by CleanUp(), and ProcessRequest().

◆ RSALastError()

static QString MythRAOPConnection::RSALastError ( void  )
inlinestatic

Definition at line 62 of file mythraopconnection.h.

◆ SendNotification()

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

Definition at line 1896 of file mythraopconnection.cpp.

Referenced by ProcessRequest(), and ProcessSync().

◆ 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 451 of file mythraopconnection.cpp.

Referenced by udpDataReady().

◆ SendTimeRequest()

void MythRAOPConnection::SendTimeRequest ( void  )
private

SendTimeRequest: Send a time request to the RAOP client.

Definition at line 514 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ splitLines()

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

Definition at line 1657 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ StartAudioTimer()

void MythRAOPConnection::StartAudioTimer ( void  )
private

Definition at line 1829 of file mythraopconnection.cpp.

Referenced by OpenAudioDevice().

◆ StopAudioTimer()

void MythRAOPConnection::StopAudioTimer ( void  )
private

Definition at line 1839 of file mythraopconnection.cpp.

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

◆ 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 1679 of file mythraopconnection.cpp.

Referenced by ProcessRequest().

◆ timeout

void MythRAOPConnection::timeout ( void  )
privateslot

◆ timevalToNTP()

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

Definition at line 599 of file mythraopconnection.cpp.

◆ 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 260 of file mythraopconnection.cpp.

Referenced by Init(), and ProcessRequest().

Friends And Related Function Documentation

◆ MythRAOPDevice

friend class MythRAOPDevice
friend

Definition at line 50 of file mythraopconnection.h.

Member Data Documentation

◆ g_devPrivKey

EVP_PKEY * MythRAOPConnection::g_devPrivKey = nullptr
staticprivate

Definition at line 142 of file mythraopconnection.h.

Referenced by LoadKey(), and ProcessRequest().

◆ g_rsaLastError

QString MythRAOPConnection::g_rsaLastError
staticprivate

Definition at line 150 of file mythraopconnection.h.

Referenced by LoadKey().

◆ m_adjustedLatency

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

Definition at line 202 of file mythraopconnection.h.

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

◆ m_aesIV

QByteArray MythRAOPConnection::m_aesIV
private

Definition at line 141 of file mythraopconnection.h.

Referenced by decodeAudioPacket(), and ProcessRequest().

◆ m_allowVolumeControl

bool MythRAOPConnection::m_allowVolumeControl {true}
private

Definition at line 189 of file mythraopconnection.h.

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

◆ m_artwork

QByteArray MythRAOPConnection::m_artwork
private

Definition at line 219 of file mythraopconnection.h.

Referenced by ProcessRequest(), and SendNotification().

◆ m_audio

AudioOutput* MythRAOPConnection::m_audio {nullptr}
private

◆ m_audioFormat

QList<int> MythRAOPConnection::m_audioFormat
private

Definition at line 156 of file mythraopconnection.h.

Referenced by CreateDecoder(), and ProcessRequest().

◆ m_audioQueue

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

Definition at line 186 of file mythraopconnection.h.

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

◆ m_audioStarted

bool MythRAOPConnection::m_audioStarted {false}
private

Definition at line 203 of file mythraopconnection.h.

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

◆ m_audioTimer

QTimer* MythRAOPConnection::m_audioTimer {nullptr}
private

Definition at line 213 of file mythraopconnection.h.

Referenced by StartAudioTimer(), and StopAudioTimer().

◆ m_bufferLength

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

Definition at line 199 of file mythraopconnection.h.

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

◆ m_cardLatency

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

Definition at line 201 of file mythraopconnection.h.

Referenced by ProcessRequest(), and ProcessSync().

◆ m_cctx

EVP_CIPHER_CTX* MythRAOPConnection::m_cctx {nullptr}
private

Definition at line 149 of file mythraopconnection.h.

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

◆ m_channels

int MythRAOPConnection::m_channels {2}
private

◆ m_cipher

const EVP_CIPHER* MythRAOPConnection::m_cipher {nullptr}
private

◆ m_clientControlPort

int MythRAOPConnection::m_clientControlPort {0}
private

Definition at line 131 of file mythraopconnection.h.

Referenced by ProcessRequest(), and SendResendRequest().

◆ m_clientControlSocket

ServerPool* MythRAOPConnection::m_clientControlSocket {nullptr}
private

Definition at line 130 of file mythraopconnection.h.

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

◆ m_clientTimingPort

int MythRAOPConnection::m_clientTimingPort {0}
private

Definition at line 133 of file mythraopconnection.h.

Referenced by ProcessRequest(), and SendTimeRequest().

◆ m_clientTimingSocket

ServerPool* MythRAOPConnection::m_clientTimingSocket {nullptr}
private

Definition at line 132 of file mythraopconnection.h.

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

◆ m_clockSkew

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

Definition at line 210 of file mythraopconnection.h.

Referenced by ProcessTimeResponse().

◆ 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_currentTimestamp

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

Definition at line 196 of file mythraopconnection.h.

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

◆ m_dataPort

int MythRAOPConnection::m_dataPort
private

Definition at line 129 of file mythraopconnection.h.

Referenced by Init(), and ProcessRequest().

◆ m_dataSocket

ServerPool* MythRAOPConnection::m_dataSocket {nullptr}
private

Definition at line 128 of file mythraopconnection.h.

Referenced by CleanUp(), and Init().

◆ m_dequeueAudioTimer

QTimer* MythRAOPConnection::m_dequeueAudioTimer {nullptr}
private

Definition at line 184 of file mythraopconnection.h.

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

◆ m_dmap

DMAP MythRAOPConnection::m_dmap
private

Definition at line 220 of file mythraopconnection.h.

Referenced by ProcessRequest(), and SendNotification().

◆ m_eventClients

QList<QTcpSocket *> MythRAOPConnection::m_eventClients
private

Definition at line 136 of file mythraopconnection.h.

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

◆ m_eventPort

int MythRAOPConnection::m_eventPort {-1}
private

Definition at line 135 of file mythraopconnection.h.

Referenced by ProcessRequest().

◆ m_eventServer

ServerPool* MythRAOPConnection::m_eventServer {nullptr}
private

Definition at line 134 of file mythraopconnection.h.

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

◆ m_firstSend

bool MythRAOPConnection::m_firstSend {false}
private

Definition at line 227 of file mythraopconnection.h.

Referenced by SendNotification().

◆ m_frameRate

int MythRAOPConnection::m_frameRate {44100}
private

◆ m_framesPerPacket

int MythRAOPConnection::m_framesPerPacket {352}
private

Definition at line 183 of file mythraopconnection.h.

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

◆ m_hardwareId

QByteArray MythRAOPConnection::m_hardwareId
private

Definition at line 122 of file mythraopconnection.h.

Referenced by ProcessRequest().

◆ m_id

int MythRAOPConnection::m_id
private

Definition at line 226 of file mythraopconnection.h.

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

◆ m_incomingContent

QByteArray MythRAOPConnection::m_incomingContent
private

Definition at line 124 of file mythraopconnection.h.

Referenced by readClient().

◆ m_incomingHeaders

QStringList MythRAOPConnection::m_incomingHeaders
private

Definition at line 123 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_lastSequence

uint16_t MythRAOPConnection::m_lastSequence {0}
private

Definition at line 194 of file mythraopconnection.h.

Referenced by ProcessAudio().

◆ m_lastTimestamp

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

Definition at line 195 of file mythraopconnection.h.

Referenced by ProcessAudio(), and ProcessRequest().

◆ m_networkLatency

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

Definition at line 206 of file mythraopconnection.h.

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

◆ m_nextSequence

uint16_t MythRAOPConnection::m_nextSequence {0}
private

Definition at line 197 of file mythraopconnection.h.

Referenced by ProcessRequest(), and udpDataReady().

◆ m_nextTimestamp

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

Definition at line 198 of file mythraopconnection.h.

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

◆ m_nonce

QString MythRAOPConnection::m_nonce
private

Definition at line 223 of file mythraopconnection.h.

Referenced by FinishAuthenticationResponse(), and ProcessRequest().

◆ m_peerAddress

QHostAddress MythRAOPConnection::m_peerAddress
private

Definition at line 127 of file mythraopconnection.h.

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

◆ m_playbackStarted

bool MythRAOPConnection::m_playbackStarted {false}
private

Definition at line 228 of file mythraopconnection.h.

Referenced by CleanUp(), and ProcessRequest().

◆ m_progressCurrent

uint32_t MythRAOPConnection::m_progressCurrent {0}
private

Definition at line 217 of file mythraopconnection.h.

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

◆ m_progressEnd

uint32_t MythRAOPConnection::m_progressEnd {0}
private

Definition at line 218 of file mythraopconnection.h.

Referenced by ProcessRequest(), and SendNotification().

◆ m_progressStart

uint32_t MythRAOPConnection::m_progressStart {0}
private

Definition at line 216 of file mythraopconnection.h.

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

◆ m_queueLength

uint32_t MythRAOPConnection::m_queueLength {0}
private

Definition at line 187 of file mythraopconnection.h.

◆ 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_sampleSize

int MythRAOPConnection::m_sampleSize {16}
private

Definition at line 181 of file mythraopconnection.h.

Referenced by AudioCardLatency(), and ProcessRequest().

◆ m_seqNum

uint16_t MythRAOPConnection::m_seqNum {0}
private

Definition at line 192 of file mythraopconnection.h.

Referenced by SendResendRequest().

◆ m_sessionKey

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

Definition at line 143 of file mythraopconnection.h.

Referenced by decodeAudioPacket(), and ProcessRequest().

◆ 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_streamingStarted

bool MythRAOPConnection::m_streamingStarted {false}
private

◆ m_textStream

RaopNetStream* MythRAOPConnection::m_textStream {nullptr}
private

Definition at line 121 of file mythraopconnection.h.

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

◆ m_timeLastSync

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

Definition at line 200 of file mythraopconnection.h.

Referenced by ProcessAudio(), and ProcessSync().

◆ m_watchdogTimer

QTimer* MythRAOPConnection::m_watchdogTimer {nullptr}
private

Definition at line 118 of file mythraopconnection.h.

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


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