struct snd_pcm_ioplug_callback

Overview

Callback table of ioplug Moreā€¦

#include <pcm_ioplug.h>

struct snd_pcm_ioplug_callback {
    // fields

    int(* start)(snd_pcm_ioplug_t *io);
    int(* stop)(snd_pcm_ioplug_t *io);
    snd_pcm_sframes_t(* pointer)(snd_pcm_ioplug_t *io);
    snd_pcm_sframes_t(* transfer)(snd_pcm_ioplug_t *io, const snd_pcm_channel_area_t *areas, snd_pcm_uframes_t offset, snd_pcm_uframes_t size);
    int(* close)(snd_pcm_ioplug_t *io);
    int(* hw_params)(snd_pcm_ioplug_t *io, snd_pcm_hw_params_t *params);
    int(* hw_free)(snd_pcm_ioplug_t *io);
    int(* sw_params)(snd_pcm_ioplug_t *io, snd_pcm_sw_params_t *params);
    int(* prepare)(snd_pcm_ioplug_t *io);
    int(* drain)(snd_pcm_ioplug_t *io);
    int(* pause)(snd_pcm_ioplug_t *io, int enable);
    int(* resume)(snd_pcm_ioplug_t *io);
    int(* poll_descriptors_count)(snd_pcm_ioplug_t *io);
    int(* poll_descriptors)(snd_pcm_ioplug_t *io, struct pollfd *pfd, unsigned int space);
    int(* poll_revents)(snd_pcm_ioplug_t *io, struct pollfd *pfd, unsigned int nfds, unsigned short *revents);
    void(* dump)(snd_pcm_ioplug_t *io, snd_output_t *out);
    int(* delay)(snd_pcm_ioplug_t *io, snd_pcm_sframes_t *delayp);
    snd_pcm_chmap_query_t**(* query_chmaps)(snd_pcm_ioplug_t *io);
    snd_pcm_chmap_t*(* get_chmap)(snd_pcm_ioplug_t *io);
    int(* set_chmap)(snd_pcm_ioplug_t *io, const snd_pcm_chmap_t *map);
};

Detailed Documentation

Callback table of ioplug

Fields

int(* start)(snd_pcm_ioplug_t *io)

start the PCM; required, called inside mutex lock

int(* stop)(snd_pcm_ioplug_t *io)

stop the PCM; required, called inside mutex lock

snd_pcm_sframes_t(* pointer)(snd_pcm_ioplug_t *io)

get the current DMA position; required, called inside mutex lock

snd_pcm_sframes_t(* transfer)(snd_pcm_ioplug_t *io, const snd_pcm_channel_area_t *areas, snd_pcm_uframes_t offset, snd_pcm_uframes_t size)

transfer the data; optional, called inside mutex lock

int(* close)(snd_pcm_ioplug_t *io)

close the PCM; optional

int(* hw_params)(snd_pcm_ioplug_t *io, snd_pcm_hw_params_t *params)

hw_params; optional

int(* hw_free)(snd_pcm_ioplug_t *io)

hw_free; optional

int(* sw_params)(snd_pcm_ioplug_t *io, snd_pcm_sw_params_t *params)

sw_params; optional

int(* prepare)(snd_pcm_ioplug_t *io)

prepare; optional

int(* drain)(snd_pcm_ioplug_t *io)

drain; optional

int(* pause)(snd_pcm_ioplug_t *io, int enable)

toggle pause; optional, called inside mutex lock

int(* resume)(snd_pcm_ioplug_t *io)

resume; optional

int(* poll_descriptors_count)(snd_pcm_ioplug_t *io)

poll descriptors count; optional

int(* poll_descriptors)(snd_pcm_ioplug_t *io, struct pollfd *pfd, unsigned int space)

poll descriptors; optional

int(* poll_revents)(snd_pcm_ioplug_t *io, struct pollfd *pfd, unsigned int nfds, unsigned short *revents)

mangle poll events; optional

void(* dump)(snd_pcm_ioplug_t *io, snd_output_t *out)

dump; optional

int(* delay)(snd_pcm_ioplug_t *io, snd_pcm_sframes_t *delayp)

get the delay for the running PCM; optional; since v1.0.1

snd_pcm_chmap_query_t**(* query_chmaps)(snd_pcm_ioplug_t *io)

query the channel maps; optional; since v1.0.2

snd_pcm_chmap_t*(* get_chmap)(snd_pcm_ioplug_t *io)

get the channel map; optional; since v1.0.2

int(* set_chmap)(snd_pcm_ioplug_t *io, const snd_pcm_chmap_t *map)

set the channel map; optional; since v1.0.2