Sunshine latest
Self-hosted game stream host for Moonlight.
audio.cpp File Reference

Definitions for Windows audio capture. More...

#include <audioclient.h>
#include <avrt.h>
#include <mmdeviceapi.h>
#include <newdev.h>
#include <roapi.h>
#include <synchapi.h>
#include "misc.h"
#include "src/config.h"
#include "src/logging.h"
#include "src/platform/common.h"
#include "PolicyConfig.h"
Include dependency graph for audio.cpp:

Classes

class  platf::audio::audio_control_t
 
class  platf::audio::audio_notification_t
 
class  platf::audio::co_init_t
 
struct  platf::audio::format_t
 
class  platf::audio::mic_wasapi_t
 
class  platf::audio::prop_var_t
 

Typedefs

using platf::audio::audio_capture_t = util::safe_ptr<IAudioCaptureClient, Release<IAudioCaptureClient>>
 
using platf::audio::audio_client_t = util::safe_ptr<IAudioClient, Release<IAudioClient>>
 
using platf::audio::collection_t = util::safe_ptr<IMMDeviceCollection, Release<IMMDeviceCollection>>
 
using platf::audio::device_enum_t = util::safe_ptr<IMMDeviceEnumerator, Release<IMMDeviceEnumerator>>
 
using platf::audio::device_t = util::safe_ptr<IMMDevice, Release<IMMDevice>>
 
using platf::audio::handle_t = util::safe_ptr_v2<void, BOOL, CloseHandle>
 
using platf::audio::policy_t = util::safe_ptr<IPolicyConfig, Release<IPolicyConfig>>
 
using platf::audio::prop_t = util::safe_ptr<IPropertyStore, Release<IPropertyStore>>
 
using platf::audio::wave_format_t = util::safe_ptr<WAVEFORMATEX, co_task_free<WAVEFORMATEX>>
 
using platf::audio::wstring_t = util::safe_ptr<WCHAR, co_task_free<WCHAR>>
 

Functions

std::unique_ptr< audio_control_tplatf::audio_control ()
 
template<class T >
void platf::audio::co_task_free (T *p)
 
device_t platf::audio::default_device (device_enum_t &device_enum)
 
 DEFINE_PROPERTYKEY (PKEY_Device_DeviceDesc, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 2)
 
 DEFINE_PROPERTYKEY (PKEY_Device_FriendlyName, 0xa45c254e, 0xdf1c, 0x4efd, 0x80, 0x20, 0x67, 0xd1, 0x46, 0xa8, 0x50, 0xe0, 14)
 
 DEFINE_PROPERTYKEY (PKEY_DeviceInterface_FriendlyName, 0x026e516e, 0xb814, 0x414b, 0x83, 0xcd, 0x85, 0x6d, 0x6f, 0xef, 0x48, 0x22, 2)
 
std::unique_ptr< deinit_tplatf::init ()
 
int platf::dxgi::init ()
 
audio_client_t platf::audio::make_audio_client (device_t &device, const format_t &format)
 
template<class T >
void platf::audio::Release (T *p)
 

Variables

const std::array< const format_t, 3 > platf::audio::formats
 

Detailed Description

Definitions for Windows audio capture.

Variable Documentation

◆ formats

const std::array<const format_t, 3> platf::audio::formats
Initial value:
= {
format_t {
2,
"Stereo",
waveformat_mask_stereo,
create_virtual_sink_waveformats<2>(),
},
6,
"Surround 5.1",
waveformat_mask_surround51_with_backspeakers,
create_virtual_sink_waveformats<6>(),
},
format_t {
8,
"Surround 7.1",
waveformat_mask_surround71,
create_virtual_sink_waveformats<8>(),
},
}
Definition audio.cpp:240