kodi
Public Member Functions | Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | List of all members
ActiveAE::CActiveAESink Class Reference
Inheritance diagram for ActiveAE::CActiveAESink:
Inheritance graph
[legend]
Collaboration diagram for ActiveAE::CActiveAESink:
Collaboration graph
[legend]

Public Member Functions

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

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 (std::string &driver)
 
void GetDeviceFriendlyName (const 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
 
std::chrono::milliseconds m_extTimeout
 
std::chrono::minutes m_silenceTimeOut {std::chrono::minutes::zero()}
 
bool m_extError
 
std::chrono::milliseconds m_extSilenceTimeout
 
bool m_extAppFocused
 
bool m_extStreaming
 
XbmcThreads::EndTime m_extSilenceTimer
 
CSampleBuffer m_sampleOfSilence
 
enum ActiveAE::CActiveAESink:: { ... }  m_swapState
 
std::vector< uint8_t > m_mergeBuffer
 
std::string m_deviceFriendlyName
 
std::string m_device
 
std::vector< AE::AESinkInfom_sinkInfoList
 
std::unique_ptr< IAESinkm_sink
 
AEAudioFormat m_sinkFormat
 
AEAudioFormat m_requestedFormat
 
CEngineStatsm_stats
 
float m_volume
 
int m_sinkLatency
 
std::unique_ptr< CAEBitstreamPackerm_packer
 
bool m_needIecPack {false}
 
bool m_streamNoise
 

Member Function Documentation

◆ 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

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