VSF Documented
Data Structures | Macros | Typedefs | Functions
vsf_linux_devfs_alsa.c File Reference
#include "shell/sys/linux/vsf_linux_cfg.h"
#include "shell/sys/linux/include/unistd.h"
#include "shell/sys/linux/include/errno.h"
#include "shell/sys/linux/include/poll.h"
#include "shell/sys/linux/include/fcntl.h"
#include "shell/sys/linux/include/sys/mman.h"
#include "shell/sys/linux/include/sys/ioctl.h"
#include <limits.h>
#include <stdint.h>
#include <alsa/sound/type_compat.h>
#include <alsa/sound/uapi/asound.h>

Data Structures

struct  snd_pcm_hw_constraints
 
struct  pcm_format_data
 
struct  __snd_pcm_hw_rule
 
struct  vsf_linux_audio_control_priv_t
 
struct  vsf_linux_audio_timer_priv_t
 
struct  vsf_linux_audio_play_priv_t
 
struct  vsf_linux_audio_capture_priv_t
 

Macros

#define __VSF_FS_CLASS_INHERIT__
 
#define __VSF_AUDIO_CLASS_INHERIT__
 
#define __VSF_MEM_STREAM_CLASS_IMPLEMENT
 
#define __VSF_LINUX_FS_CLASS_INHERIT__
 
#define __VSF_LINUX_CLASS_INHERIT__
 
#define VSF_LINUX_AUDIO_CFG_MIN_PERIOD_US   (20 * 1000)
 
#define VSF_LINUX_AUDIO_CFG_MAX_PERIOD_US   (200 * 1000)
 
#define VSF_LINUX_AUDIO_CFG_MIN_PERIODS_CNT   2
 
#define VSF_LINUX_AUDIO_CFG_MAX_PERIODS_CNT   4
 

Typedefs

typedef int(* __snd_pcm_hw_rule_func_t) (struct snd_mask *masks, struct snd_interval *intervals, unsigned int mask, struct __snd_pcm_hw_rule *rule)
 
typedef struct vsf_linux_audio_control_priv_t vsf_linux_audio_control_priv_t
 
typedef struct vsf_linux_audio_timer_priv_t vsf_linux_audio_timer_priv_t
 
typedef struct vsf_linux_audio_play_priv_t vsf_linux_audio_play_priv_t
 
typedef struct vsf_linux_audio_capture_priv_t vsf_linux_audio_capture_priv_t
 

Functions

void __vsf_linux_rx_stream_init (vsf_linux_stream_priv_t *priv_tx)
 
void __vsf_linux_tx_stream_init (vsf_linux_stream_priv_t *priv_rx)
 
void __vsf_linux_tx_stream_drain (vsf_linux_stream_priv_t *priv_tx)
 
void __vsf_linux_rx_stream_drop (vsf_linux_stream_priv_t *priv_rx)
 
void __vsf_linux_tx_stream_drop (vsf_linux_stream_priv_t *priv_tx)
 
void __vsf_linux_tx_stream_fini (vsf_linux_stream_priv_t *priv_tx)
 
void __vsf_linux_rx_stream_fini (vsf_linux_stream_priv_t *priv_rx)
 
ssize_t __vsf_linux_stream_read (vsf_linux_fd_t *sfd, void *buf, size_t count)
 
ssize_t __vsf_linux_stream_write (vsf_linux_fd_t *sfd, const void *buf, size_t count)
 
int snd_mask_empty (const struct snd_mask *mask)
 
int snd_mask_eq (const struct snd_mask *mask, const struct snd_mask *v)
 
int snd_mask_test (const struct snd_mask *mask, unsigned int val)
 
void snd_mask_reset (struct snd_mask *mask, unsigned int val)
 
void snd_mask_intersect (struct snd_mask *mask, const struct snd_mask *v)
 
int snd_mask_single (const struct snd_mask *mask)
 
unsigned int snd_mask_min (const struct snd_mask *mask)
 
int snd_mask_refine (struct snd_mask *mask, const struct snd_mask *v)
 
int snd_interval_checkempty (const struct snd_interval *i)
 
int snd_interval_value (const struct snd_interval *i)
 
int snd_interval_single (const struct snd_interval *i)
 
int snd_interval_eq (const struct snd_interval *i1, const struct snd_interval *i2)
 
int snd_interval_refine (struct snd_interval *i, const struct snd_interval *v)
 
int params_update (struct snd_mask *masks, struct snd_interval *intervals, unsigned int *cmask, unsigned int flags, bool sefl_constraints)
 
int vsf_linux_fs_bind_audio_timer (char *path)
 
int vsf_linux_fs_bind_audio (char *path, int card_idx, vk_audio_dev_t *audio_dev)
 

Macro Definition Documentation

◆ __VSF_FS_CLASS_INHERIT__

#define __VSF_FS_CLASS_INHERIT__

◆ __VSF_AUDIO_CLASS_INHERIT__

#define __VSF_AUDIO_CLASS_INHERIT__

◆ __VSF_MEM_STREAM_CLASS_IMPLEMENT

#define __VSF_MEM_STREAM_CLASS_IMPLEMENT

◆ __VSF_LINUX_FS_CLASS_INHERIT__

#define __VSF_LINUX_FS_CLASS_INHERIT__

◆ __VSF_LINUX_CLASS_INHERIT__

#define __VSF_LINUX_CLASS_INHERIT__

◆ VSF_LINUX_AUDIO_CFG_MIN_PERIOD_US

#define VSF_LINUX_AUDIO_CFG_MIN_PERIOD_US   (20 * 1000)

◆ VSF_LINUX_AUDIO_CFG_MAX_PERIOD_US

#define VSF_LINUX_AUDIO_CFG_MAX_PERIOD_US   (200 * 1000)

◆ VSF_LINUX_AUDIO_CFG_MIN_PERIODS_CNT

#define VSF_LINUX_AUDIO_CFG_MIN_PERIODS_CNT   2

◆ VSF_LINUX_AUDIO_CFG_MAX_PERIODS_CNT

#define VSF_LINUX_AUDIO_CFG_MAX_PERIODS_CNT   4

Typedef Documentation

◆ __snd_pcm_hw_rule_func_t

typedef int(* __snd_pcm_hw_rule_func_t) (struct snd_mask *masks, struct snd_interval *intervals, unsigned int mask, struct __snd_pcm_hw_rule *rule)

◆ vsf_linux_audio_control_priv_t

◆ vsf_linux_audio_timer_priv_t

◆ vsf_linux_audio_play_priv_t

◆ vsf_linux_audio_capture_priv_t

Function Documentation

◆ __vsf_linux_rx_stream_init()

void __vsf_linux_rx_stream_init ( vsf_linux_stream_priv_t *  priv_tx)
extern

◆ __vsf_linux_tx_stream_init()

void __vsf_linux_tx_stream_init ( vsf_linux_stream_priv_t *  priv_rx)
extern

◆ __vsf_linux_tx_stream_drain()

void __vsf_linux_tx_stream_drain ( vsf_linux_stream_priv_t *  priv_tx)
extern

◆ __vsf_linux_rx_stream_drop()

void __vsf_linux_rx_stream_drop ( vsf_linux_stream_priv_t *  priv_rx)
extern

◆ __vsf_linux_tx_stream_drop()

void __vsf_linux_tx_stream_drop ( vsf_linux_stream_priv_t *  priv_tx)
extern

◆ __vsf_linux_tx_stream_fini()

void __vsf_linux_tx_stream_fini ( vsf_linux_stream_priv_t *  priv_tx)
extern

◆ __vsf_linux_rx_stream_fini()

void __vsf_linux_rx_stream_fini ( vsf_linux_stream_priv_t *  priv_rx)
extern

◆ __vsf_linux_stream_read()

ssize_t __vsf_linux_stream_read ( vsf_linux_fd_t sfd,
void *  buf,
size_t  count 
)
extern

◆ __vsf_linux_stream_write()

ssize_t __vsf_linux_stream_write ( vsf_linux_fd_t sfd,
const void *  buf,
size_t  count 
)
extern

◆ snd_mask_empty()

int snd_mask_empty ( const struct snd_mask *  mask)

◆ snd_mask_eq()

int snd_mask_eq ( const struct snd_mask *  mask,
const struct snd_mask *  v 
)

◆ snd_mask_test()

int snd_mask_test ( const struct snd_mask *  mask,
unsigned int  val 
)

◆ snd_mask_reset()

void snd_mask_reset ( struct snd_mask *  mask,
unsigned int  val 
)

◆ snd_mask_intersect()

void snd_mask_intersect ( struct snd_mask *  mask,
const struct snd_mask *  v 
)

◆ snd_mask_single()

int snd_mask_single ( const struct snd_mask *  mask)

◆ snd_mask_min()

unsigned int snd_mask_min ( const struct snd_mask *  mask)

◆ snd_mask_refine()

int snd_mask_refine ( struct snd_mask *  mask,
const struct snd_mask *  v 
)

◆ snd_interval_checkempty()

int snd_interval_checkempty ( const struct snd_interval *  i)

◆ snd_interval_value()

int snd_interval_value ( const struct snd_interval *  i)

◆ snd_interval_single()

int snd_interval_single ( const struct snd_interval *  i)

◆ snd_interval_eq()

int snd_interval_eq ( const struct snd_interval *  i1,
const struct snd_interval *  i2 
)

◆ snd_interval_refine()

int snd_interval_refine ( struct snd_interval *  i,
const struct snd_interval *  v 
)

◆ params_update()

int params_update ( struct snd_mask *  masks,
struct snd_interval *  intervals,
unsigned int *  cmask,
unsigned int  flags,
bool  sefl_constraints 
)

◆ vsf_linux_fs_bind_audio_timer()

int vsf_linux_fs_bind_audio_timer ( char *  path)

◆ vsf_linux_fs_bind_audio()

int vsf_linux_fs_bind_audio ( char *  path,
int  card_idx,
vk_audio_dev_t audio_dev 
)