Sunshine master
Self-hosted game stream host for Moonlight.
platf::audio_control_t Class Referenceabstract

Platform audio controller that manages sinks and microphone capture. More...

#include <src/platform/common.h>

Inheritance diagram for platf::audio_control_t:
[legend]

Public Member Functions

virtual bool is_sink_available (const std::string &sink)=0
 Check if the audio sink is available in the system.
 
virtual std::unique_ptr< mic_tmicrophone (const std::uint8_t *mapping, int channels, std::uint32_t sample_rate, std::uint32_t frame_size, bool continuous, bool host_audio_enabled)=0
 Create a microphone capture stream for the requested layout.
 
virtual int set_sink (const std::string &sink)=0
 Update the sink value on the backend.
 
virtual std::optional< sink_tsink_info ()=0
 Query host and virtual sink names available to Sunshine.
 
virtual ~audio_control_t ()=default
 Destroy the audio control.
 

Detailed Description

Platform audio controller that manages sinks and microphone capture.

Constructor & Destructor Documentation

◆ ~audio_control_t()

virtual platf::audio_control_t::~audio_control_t ( )
virtualdefault

Destroy the audio control.

Reimplemented in platf::audio::audio_control_t.

Member Function Documentation

◆ is_sink_available()

virtual bool platf::audio_control_t::is_sink_available ( const std::string & sink)
pure virtual

Check if the audio sink is available in the system.

Parameters
sinkSink to be checked.
Returns
True if available, false otherwise.

Implemented in platf::audio::audio_control_t, platf::macos_audio_control_t, and platf::pa::server_t.

◆ microphone()

virtual std::unique_ptr< mic_t > platf::audio_control_t::microphone ( const std::uint8_t * mapping,
int channels,
std::uint32_t sample_rate,
std::uint32_t frame_size,
bool continuous,
bool host_audio_enabled )
pure virtual

Create a microphone capture stream for the requested layout.

Parameters
mappingOpus channel mapping table for the requested layout.
channelsNumber of audio channels in the stream.
sample_rateAudio sample rate in hertz.
frame_sizeNumber of samples captured per audio frame.
continuousWhether silent audio should continue to be emitted.
host_audio_enabledWhether host playback should remain enabled during capture.
Returns
Microphone capture object for the requested audio layout.

Implemented in platf::audio::audio_control_t, platf::macos_audio_control_t, and platf::pa::server_t.

◆ set_sink()

virtual int platf::audio_control_t::set_sink ( const std::string & sink)
pure virtual

Update the sink value on the backend.

Parameters
sinkAudio sink name to route or capture.
Returns
Status from updating sink.

Implemented in platf::audio::audio_control_t, platf::macos_audio_control_t, and platf::pa::server_t.

◆ sink_info()

virtual std::optional< sink_t > platf::audio_control_t::sink_info ( )
pure virtual

Query host and virtual sink names available to Sunshine.

Returns
Host and virtual sink names when the backend can report them.

Implemented in platf::audio::audio_control_t, platf::macos_audio_control_t, and platf::pa::server_t.


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