FreeRDP
|
#include <freerdp/config.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winpr/crt.h>
#include <winpr/cmdline.h>
#include <winpr/sysinfo.h>
#include <winpr/collections.h>
#include <alsa/asoundlib.h>
#include <freerdp/types.h>
#include <freerdp/codec/dsp.h>
#include <freerdp/channels/log.h>
#include "rdpsnd_main.h"
Macros | |
#define | SND_PCM_CHECK(_func, _status) |
Functions | |
static int | rdpsnd_alsa_set_hw_params (rdpsndAlsaPlugin *alsa) |
static int | rdpsnd_alsa_set_sw_params (rdpsndAlsaPlugin *alsa) |
static int | rdpsnd_alsa_validate_params (rdpsndAlsaPlugin *alsa) |
static int | rdpsnd_alsa_set_params (rdpsndAlsaPlugin *alsa) |
static BOOL | rdpsnd_alsa_set_format (rdpsndDevicePlugin *device, const AUDIO_FORMAT *format, UINT32 latency) |
static void | rdpsnd_alsa_close_mixer (rdpsndAlsaPlugin *alsa) |
static BOOL | rdpsnd_alsa_open_mixer (rdpsndAlsaPlugin *alsa) |
static void | rdpsnd_alsa_pcm_close (rdpsndAlsaPlugin *alsa) |
static BOOL | rdpsnd_alsa_open (rdpsndDevicePlugin *device, const AUDIO_FORMAT *format, UINT32 latency) |
static void | rdpsnd_alsa_close (rdpsndDevicePlugin *device) |
static void | rdpsnd_alsa_free (rdpsndDevicePlugin *device) |
static BOOL | rdpsnd_alsa_format_supported (rdpsndDevicePlugin *device, const AUDIO_FORMAT *format) |
static UINT32 | rdpsnd_alsa_get_volume (rdpsndDevicePlugin *device) |
static BOOL | rdpsnd_alsa_set_volume (rdpsndDevicePlugin *device, UINT32 value) |
static UINT | rdpsnd_alsa_play (rdpsndDevicePlugin *device, const BYTE *data, size_t size) |
static UINT | rdpsnd_alsa_parse_addin_args (rdpsndDevicePlugin *device, const ADDIN_ARGV *args) |
FREERDP_ENTRY_POINT (UINT VCAPITYPE alsa_freerdp_rdpsnd_client_subsystem_entry(PFREERDP_RDPSND_DEVICE_ENTRY_POINTS pEntryPoints)) | |
#define SND_PCM_CHECK | ( | _func, | |
_status | |||
) |
FREERDP_ENTRY_POINT | ( | UINT VCAPITYPE | alsa_freerdp_rdpsnd_client_subsystem_entry PFREERDP_RDPSND_DEVICE_ENTRY_POINTS pEntryPoints | ) |
Function description
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
Function description
|
static |
|
static |
|
static |
ALSA Parameters
http://www.alsa-project.org/main/index.php/FramesPeriods
buffer_size = period_size * periods period_bytes = period_size * bytes_per_frame bytes_per_frame = channels * bytes_per_sample
A frame is equivalent of one sample being played, irrespective of the number of channels or the number of bits
A period is the number of frames in between each hardware interrupt.
The buffer size always has to be greater than one period size. Commonly this is (2 * period_size), but some hardware can do 8 periods per buffer. It is also possible for the buffer size to not be an integer multiple of the period size.
|
static |
|
static |
|
static |
|
static |