Kodi Documentation  18.0
Kodi is an open source media player and entertainment hub.
ActiveAE::CActiveAESink Class Reference

#include <ActiveAESink.h>

Inheritance diagram for ActiveAE::CActiveAESink:
CThread

Public Member Functions

 CActiveAESink (CEvent *inMsgEvent)
 
void EnumerateSinkList (bool force)
 
void EnumerateOutputDevices (AEDeviceList &devices, bool passthrough)
 
void Start ()
 
void Dispose ()
 
AEDeviceType GetDeviceType (const std::string &device)
 
bool HasPassthroughDevice ()
 
bool SupportsFormat (const std::string &device, AEAudioFormat &format)
 

Public Attributes

CSinkControlProtocol m_controlPort
 
CSinkDataProtocol m_dataPort
 

Protected Types

enum  { CHECK_SWAP, NEED_CONVERT, NEED_BYTESWAP, SKIP_SWAP }
 

Protected Member Functions

void Process () override
 
void StateMachine (int signal, Protocol *port, Message *msg)
 
void PrintSinks ()
 
void GetDeviceFriendlyName (std::string &device)
 
void OpenSink ()
 
void ReturnBuffers ()
 
void SetSilenceTimer ()
 
bool NeedIECPacking ()
 
unsigned int OutputSamples (CSampleBuffer *samples)
 
void SwapInit (CSampleBuffer *samples)
 
void GenerateNoise ()
 

Protected Attributes

CEvent m_outMsgEvent
 
CEventm_inMsgEvent
 
int m_state
 
bool m_bStateMachineSelfTrigger
 
int m_extTimeout
 
int m_silenceTimeOut
 
bool m_extError
 
unsigned int m_extSilenceTimeout
 
bool m_extAppFocused
 
bool m_extStreaming
 
XbmcThreads::EndTime m_extSilenceTimer
 
CSampleBuffer m_sampleOfSilence
 
enum ActiveAE::CActiveAESink:: { ... }  m_swapState
 
std::string m_deviceFriendlyName
 
std::string m_device
 
std::vector< AE::AESinkInfom_sinkInfoList
 
IAESinkm_sink
 
AEAudioFormat m_sinkFormat
 
AEAudioFormat m_requestedFormat
 
CEngineStatsm_stats
 
float m_volume
 
int m_sinkLatency
 
CAEBitstreamPackerm_packer
 
bool m_needIecPack
 
bool m_streamNoise
 

Member Enumeration Documentation

§ anonymous enum

anonymous enum
protected
Enumerator
CHECK_SWAP 
NEED_CONVERT 
NEED_BYTESWAP 
SKIP_SWAP 

Constructor & Destructor Documentation

§ CActiveAESink()

CActiveAESink::CActiveAESink ( CEvent inMsgEvent)
explicit

Member Function Documentation

§ Dispose()

void CActiveAESink::Dispose ( )

§ EnumerateOutputDevices()

void CActiveAESink::EnumerateOutputDevices ( AEDeviceList devices,
bool  passthrough 
)

§ EnumerateSinkList()

void CActiveAESink::EnumerateSinkList ( bool  force)

§ GenerateNoise()

void CActiveAESink::GenerateNoise ( )
protected

§ GetDeviceFriendlyName()

void CActiveAESink::GetDeviceFriendlyName ( std::string &  device)
protected

§ GetDeviceType()

AEDeviceType CActiveAESink::GetDeviceType ( const std::string &  device)

§ HasPassthroughDevice()

bool CActiveAESink::HasPassthroughDevice ( )

§ NeedIECPacking()

bool CActiveAESink::NeedIECPacking ( )
protected

§ OpenSink()

void CActiveAESink::OpenSink ( )
protected

§ OutputSamples()

unsigned int CActiveAESink::OutputSamples ( CSampleBuffer samples)
protected

§ PrintSinks()

void CActiveAESink::PrintSinks ( )
protected

§ Process()

void CActiveAESink::Process ( void  )
overrideprotectedvirtual

Reimplemented from CThread.

§ ReturnBuffers()

void CActiveAESink::ReturnBuffers ( )
protected

§ SetSilenceTimer()

void CActiveAESink::SetSilenceTimer ( )
protected

§ Start()

void CActiveAESink::Start ( )

§ StateMachine()

void CActiveAESink::StateMachine ( int  signal,
Protocol port,
Message msg 
)
protected
Todo:
use max raw packet size, for now use max size of an IEC packed packet maxIECPpacket > maxRawPacket for raw packets frameSize is set to 1

§ SupportsFormat()

bool CActiveAESink::SupportsFormat ( const std::string &  device,
AEAudioFormat format 
)

§ SwapInit()

void CActiveAESink::SwapInit ( CSampleBuffer samples)
protected

Member Data Documentation

§ m_bStateMachineSelfTrigger

bool ActiveAE::CActiveAESink::m_bStateMachineSelfTrigger
protected

§ m_controlPort

CSinkControlProtocol ActiveAE::CActiveAESink::m_controlPort

§ m_dataPort

CSinkDataProtocol ActiveAE::CActiveAESink::m_dataPort

§ m_device

std::string ActiveAE::CActiveAESink::m_device
protected

§ m_deviceFriendlyName

std::string ActiveAE::CActiveAESink::m_deviceFriendlyName
protected

§ m_extAppFocused

bool ActiveAE::CActiveAESink::m_extAppFocused
protected

§ m_extError

bool ActiveAE::CActiveAESink::m_extError
protected

§ m_extSilenceTimeout

unsigned int ActiveAE::CActiveAESink::m_extSilenceTimeout
protected

§ m_extSilenceTimer

XbmcThreads::EndTime ActiveAE::CActiveAESink::m_extSilenceTimer
protected

§ m_extStreaming

bool ActiveAE::CActiveAESink::m_extStreaming
protected

§ m_extTimeout

int ActiveAE::CActiveAESink::m_extTimeout
protected

§ m_inMsgEvent

CEvent* ActiveAE::CActiveAESink::m_inMsgEvent
protected

§ m_needIecPack

bool ActiveAE::CActiveAESink::m_needIecPack
protected

§ m_outMsgEvent

CEvent ActiveAE::CActiveAESink::m_outMsgEvent
protected

§ m_packer

CAEBitstreamPacker* ActiveAE::CActiveAESink::m_packer
protected

§ m_requestedFormat

AEAudioFormat ActiveAE::CActiveAESink::m_requestedFormat
protected

§ m_sampleOfSilence

CSampleBuffer ActiveAE::CActiveAESink::m_sampleOfSilence
protected

§ m_silenceTimeOut

int ActiveAE::CActiveAESink::m_silenceTimeOut
protected

§ m_sink

IAESink* ActiveAE::CActiveAESink::m_sink
protected

§ m_sinkFormat

AEAudioFormat ActiveAE::CActiveAESink::m_sinkFormat
protected

§ m_sinkInfoList

std::vector<AE::AESinkInfo> ActiveAE::CActiveAESink::m_sinkInfoList
protected

§ m_sinkLatency

int ActiveAE::CActiveAESink::m_sinkLatency
protected

§ m_state

int ActiveAE::CActiveAESink::m_state
protected

§ m_stats

CEngineStats* ActiveAE::CActiveAESink::m_stats
protected

§ m_streamNoise

bool ActiveAE::CActiveAESink::m_streamNoise
protected

§ m_swapState

enum { ... } ActiveAE::CActiveAESink::m_swapState

§ m_volume

float ActiveAE::CActiveAESink::m_volume
protected

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