Android-cuttlefish cvd tool
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
cuttlefish::AudioHandler Class Reference

#include <audio_handler.h>

Inheritance diagram for cuttlefish::AudioHandler:
Inheritance graph
[legend]
Collaboration diagram for cuttlefish::AudioHandler:
Collaboration graph
[legend]

Classes

struct  ControlDesc
 
struct  StreamDesc
 

Public Member Functions

 AudioHandler (std::unique_ptr< AudioServer > audio_server, std::shared_ptr< webrtc_streaming::AudioSink > audio_sink, std::shared_ptr< webrtc_streaming::AudioSource > audio_source, const std::vector< AudioStreamSettings > &stream_settings, const AudioMixerSettings &mixer_settings)
 
 ~AudioHandler () override
 
void Start ()
 
void StreamsInfo (StreamInfoCommand &cmd) override
 
void SetStreamParameters (StreamSetParamsCommand &cmd) override
 
void PrepareStream (StreamControlCommand &cmd) override
 
void ReleaseStream (StreamControlCommand &cmd) override
 
void StartStream (StreamControlCommand &cmd) override
 
void StopStream (StreamControlCommand &cmd) override
 
void ChmapsInfo (ChmapInfoCommand &cmd) override
 
void JacksInfo (JackInfoCommand &cmd) override
 
void ControlsInfo (ControlInfoCommand &cmd) override
 
void OnControlCommand (ControlCommand &cmd) override
 
void OnPlaybackBuffer (TxBuffer buffer) override
 
void OnCaptureBuffer (RxBuffer buffer) override
 
- Public Member Functions inherited from cuttlefish::AudioServerExecutor
virtual ~AudioServerExecutor ()=default
 
virtual void StreamsInfo (StreamInfoCommand &cmd)=0
 
virtual void SetStreamParameters (StreamSetParamsCommand &cmd)=0
 
virtual void PrepareStream (StreamControlCommand &cmd)=0
 
virtual void ReleaseStream (StreamControlCommand &cmd)=0
 
virtual void StartStream (StreamControlCommand &cmd)=0
 
virtual void StopStream (StreamControlCommand &cmd)=0
 
virtual void ChmapsInfo (ChmapInfoCommand &cmd)=0
 
virtual void JacksInfo (JackInfoCommand &cmd)=0
 
virtual void ControlsInfo (ControlInfoCommand &cmd)=0
 
virtual void OnControlCommand (ControlCommand &cmd)=0
 
virtual void OnPlaybackBuffer (TxBuffer buffer)=0
 
virtual void OnCaptureBuffer (RxBuffer buffer)=0
 

Private Member Functions

void Loop ()
 
bool IsCapture (uint32_t stream_id) const
 
AudioStatus HandleControlMute (ControlCommand &cmd)
 
AudioStatus HandleControlVolume (ControlCommand &cmd)
 

Private Attributes

std::unique_ptr< AudioServeraudio_server_
 
std::thread server_thread_
 
std::shared_ptr< webrtc_streaming::AudioSourceaudio_source_
 
std::vector< virtio_snd_pcm_infostreams_
 
std::vector< StreamDescstream_descs_ = {}
 
std::vector< virtio_snd_chmap_infochmaps_
 
std::vector< virtio_snd_ctl_infocontrols_
 
std::vector< ControlDesccontrols_to_streams_map_
 
std::unique_ptr< AudioMixeraudio_mixer_
 

Constructor & Destructor Documentation

◆ AudioHandler()

cuttlefish::AudioHandler::AudioHandler ( std::unique_ptr< AudioServer audio_server,
std::shared_ptr< webrtc_streaming::AudioSink audio_sink,
std::shared_ptr< webrtc_streaming::AudioSource audio_source,
const std::vector< AudioStreamSettings > &  stream_settings,
const AudioMixerSettings mixer_settings 
)

◆ ~AudioHandler()

cuttlefish::AudioHandler::~AudioHandler ( )
override

Member Function Documentation

◆ ChmapsInfo()

void cuttlefish::AudioHandler::ChmapsInfo ( ChmapInfoCommand cmd)
overridevirtual

◆ ControlsInfo()

void cuttlefish::AudioHandler::ControlsInfo ( ControlInfoCommand cmd)
overridevirtual

◆ HandleControlMute()

AudioStatus cuttlefish::AudioHandler::HandleControlMute ( ControlCommand cmd)
private

◆ HandleControlVolume()

AudioStatus cuttlefish::AudioHandler::HandleControlVolume ( ControlCommand cmd)
private

◆ IsCapture()

bool cuttlefish::AudioHandler::IsCapture ( uint32_t  stream_id) const
private

◆ JacksInfo()

void cuttlefish::AudioHandler::JacksInfo ( JackInfoCommand cmd)
overridevirtual

◆ Loop()

void cuttlefish::AudioHandler::Loop ( )
private

◆ OnCaptureBuffer()

void cuttlefish::AudioHandler::OnCaptureBuffer ( RxBuffer  buffer)
overridevirtual

◆ OnControlCommand()

void cuttlefish::AudioHandler::OnControlCommand ( ControlCommand cmd)
overridevirtual

◆ OnPlaybackBuffer()

void cuttlefish::AudioHandler::OnPlaybackBuffer ( TxBuffer  buffer)
overridevirtual

◆ PrepareStream()

void cuttlefish::AudioHandler::PrepareStream ( StreamControlCommand cmd)
overridevirtual

◆ ReleaseStream()

void cuttlefish::AudioHandler::ReleaseStream ( StreamControlCommand cmd)
overridevirtual

◆ SetStreamParameters()

void cuttlefish::AudioHandler::SetStreamParameters ( StreamSetParamsCommand cmd)
overridevirtual

◆ Start()

void cuttlefish::AudioHandler::Start ( )

◆ StartStream()

void cuttlefish::AudioHandler::StartStream ( StreamControlCommand cmd)
overridevirtual

◆ StopStream()

void cuttlefish::AudioHandler::StopStream ( StreamControlCommand cmd)
overridevirtual

◆ StreamsInfo()

void cuttlefish::AudioHandler::StreamsInfo ( StreamInfoCommand cmd)
overridevirtual

Member Data Documentation

◆ audio_mixer_

std::unique_ptr<AudioMixer> cuttlefish::AudioHandler::audio_mixer_
private

◆ audio_server_

std::unique_ptr<AudioServer> cuttlefish::AudioHandler::audio_server_
private

◆ audio_source_

std::shared_ptr<webrtc_streaming::AudioSource> cuttlefish::AudioHandler::audio_source_
private

◆ chmaps_

std::vector<virtio_snd_chmap_info> cuttlefish::AudioHandler::chmaps_
private

◆ controls_

std::vector<virtio_snd_ctl_info> cuttlefish::AudioHandler::controls_
private

◆ controls_to_streams_map_

std::vector<ControlDesc> cuttlefish::AudioHandler::controls_to_streams_map_
private

◆ server_thread_

std::thread cuttlefish::AudioHandler::server_thread_
private

◆ stream_descs_

std::vector<StreamDesc> cuttlefish::AudioHandler::stream_descs_ = {}
private

◆ streams_

std::vector<virtio_snd_pcm_info> cuttlefish::AudioHandler::streams_
private

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