FreeRDP
rdpsnd_pulse.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winpr/crt.h>
#include <winpr/stream.h>
#include <winpr/cmdline.h>
#include <pulse/pulseaudio.h>
#include <freerdp/types.h>
#include <freerdp/codec/dsp.h>
#include "rdpsnd_main.h"

Macros

#define freerdp_rdpsnd_client_subsystem_entry   FREERDP_API freerdp_rdpsnd_client_subsystem_entry
 

Functions

static BOOL rdpsnd_pulse_format_supported (rdpsndDevicePlugin *device, const AUDIO_FORMAT *format)
 
static void rdpsnd_pulse_get_sink_info (pa_context *c, const pa_sink_info *i, int eol, void *userdata)
 
static void rdpsnd_pulse_context_state_callback (pa_context *context, void *userdata)
 
static BOOL rdpsnd_pulse_connect (rdpsndDevicePlugin *device)
 
static void rdpsnd_pulse_stream_success_callback (pa_stream *stream, int success, void *userdata)
 
static void rdpsnd_pulse_wait_for_operation (rdpsndPulsePlugin *pulse, pa_operation *operation)
 
static void rdpsnd_pulse_stream_state_callback (pa_stream *stream, void *userdata)
 
static void rdpsnd_pulse_stream_request_callback (pa_stream *stream, size_t length, void *userdata)
 
static void rdpsnd_pulse_close (rdpsndDevicePlugin *device)
 
static BOOL rdpsnd_pulse_set_format_spec (rdpsndPulsePlugin *pulse, const AUDIO_FORMAT *format)
 
static BOOL rdpsnd_pulse_open (rdpsndDevicePlugin *device, const AUDIO_FORMAT *format, UINT32 latency)
 
static void rdpsnd_pulse_free (rdpsndDevicePlugin *device)
 
static UINT32 rdpsnd_pulse_get_volume (rdpsndDevicePlugin *device)
 
static BOOL rdpsnd_pulse_set_volume (rdpsndDevicePlugin *device, UINT32 value)
 
static UINT rdpsnd_pulse_play (rdpsndDevicePlugin *device, const BYTE *data, size_t size)
 
static void rdpsnd_pulse_start (rdpsndDevicePlugin *device)
 
static UINT rdpsnd_pulse_parse_addin_args (rdpsndDevicePlugin *device, ADDIN_ARGV *args)
 
UINT freerdp_rdpsnd_client_subsystem_entry (PFREERDP_RDPSND_DEVICE_ENTRY_POINTS pEntryPoints)
 

Variables

static COMMAND_LINE_ARGUMENT_A rdpsnd_pulse_args []
 

Macro Definition Documentation

#define freerdp_rdpsnd_client_subsystem_entry   FREERDP_API freerdp_rdpsnd_client_subsystem_entry

Function Documentation

UINT freerdp_rdpsnd_client_subsystem_entry ( PFREERDP_RDPSND_DEVICE_ENTRY_POINTS  pEntryPoints)

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

static void rdpsnd_pulse_close ( rdpsndDevicePlugin *  device)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static BOOL rdpsnd_pulse_connect ( rdpsndDevicePlugin *  device)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static void rdpsnd_pulse_context_state_callback ( pa_context *  context,
void userdata 
)
static

Here is the caller graph for this function:

BOOL rdpsnd_pulse_format_supported ( rdpsndDevicePlugin *  device,
const AUDIO_FORMAT format 
)
static

Here is the caller graph for this function:

static void rdpsnd_pulse_free ( rdpsndDevicePlugin *  device)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static void rdpsnd_pulse_get_sink_info ( pa_context *  c,
const pa_sink_info *  i,
int  eol,
void userdata 
)
static

Here is the caller graph for this function:

static UINT32 rdpsnd_pulse_get_volume ( rdpsndDevicePlugin *  device)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static BOOL rdpsnd_pulse_open ( rdpsndDevicePlugin *  device,
const AUDIO_FORMAT format,
UINT32  latency 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpsnd_pulse_parse_addin_args ( rdpsndDevicePlugin *  device,
ADDIN_ARGV *  args 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code

Here is the call graph for this function:

Here is the caller graph for this function:

static UINT rdpsnd_pulse_play ( rdpsndDevicePlugin *  device,
const BYTE data,
size_t  size 
)
static

Here is the caller graph for this function:

static BOOL rdpsnd_pulse_set_format_spec ( rdpsndPulsePlugin *  pulse,
const AUDIO_FORMAT format 
)
static

Here is the call graph for this function:

Here is the caller graph for this function:

static BOOL rdpsnd_pulse_set_volume ( rdpsndDevicePlugin *  device,
UINT32  value 
)
static

Here is the caller graph for this function:

static void rdpsnd_pulse_start ( rdpsndDevicePlugin *  device)
static

Here is the caller graph for this function:

static void rdpsnd_pulse_stream_request_callback ( pa_stream *  stream,
size_t  length,
void userdata 
)
static

Here is the caller graph for this function:

static void rdpsnd_pulse_stream_state_callback ( pa_stream *  stream,
void userdata 
)
static

Here is the caller graph for this function:

static void rdpsnd_pulse_stream_success_callback ( pa_stream *  stream,
int  success,
void userdata 
)
static

Here is the caller graph for this function:

static void rdpsnd_pulse_wait_for_operation ( rdpsndPulsePlugin *  pulse,
pa_operation *  operation 
)
static

Here is the caller graph for this function:

Variable Documentation

COMMAND_LINE_ARGUMENT_A rdpsnd_pulse_args[]
static
Initial value:
=
{
{ "dev", COMMAND_LINE_VALUE_REQUIRED, "<device>", NULL, NULL, -1, NULL, "device" },
{ NULL, 0, NULL, NULL, NULL, -1, NULL, NULL }
}
#define COMMAND_LINE_VALUE_REQUIRED
Definition: winpr/include/winpr/cmdline.h:34
if availableBytes return NULL
Definition: TPCircularBuffer.h:104