Hardware Dependant Interface
Overview
The Hardware Dependant Interface. Moreā¦
// typedefs typedef struct _snd_hwdep_info snd_hwdep_info_t; typedef struct _snd_hwdep_dsp_status snd_hwdep_dsp_status_t; typedef struct _snd_hwdep_dsp_image snd_hwdep_dsp_image_t; typedef struct _snd_hwdep snd_hwdep_t; // enums enum snd_hwdep_iface_t; enum snd_hwdep_type_t; // global functions int snd_hwdep_open( snd_hwdep_t** hwdep, const char* name, int mode ); int snd_hwdep_close(snd_hwdep_t* hwdep); int snd_hwdep_poll_descriptors( snd_hwdep_t* hwdep, struct pollfd* pfds, unsigned int space ); int snd_hwdep_poll_descriptors_count(snd_hwdep_t* hwdep); int snd_hwdep_poll_descriptors_revents( snd_hwdep_t* hwdep, struct pollfd* pfds, unsigned int nfds, unsigned short* revents ); int snd_hwdep_nonblock( snd_hwdep_t* hwdep, int nonblock ); int snd_hwdep_info( snd_hwdep_t* hwdep, snd_hwdep_info_t* info ); int snd_hwdep_dsp_status( snd_hwdep_t* hwdep, snd_hwdep_dsp_status_t* status ); int snd_hwdep_dsp_load( snd_hwdep_t* hwdep, snd_hwdep_dsp_image_t* block ); int snd_hwdep_ioctl( snd_hwdep_t* hwdep, unsigned int request, void* arg ); ssize_t snd_hwdep_write( snd_hwdep_t* hwdep, const void* buffer, size_t size ); ssize_t snd_hwdep_read( snd_hwdep_t* hwdep, void* buffer, size_t size ); size_t snd_hwdep_info_sizeof(void); int snd_hwdep_info_malloc(snd_hwdep_info_t** ptr); void snd_hwdep_info_free(snd_hwdep_info_t* obj); void snd_hwdep_info_copy( snd_hwdep_info_t* dst, const snd_hwdep_info_t* src ); unsigned int snd_hwdep_info_get_device(const snd_hwdep_info_t* obj); int snd_hwdep_info_get_card(const snd_hwdep_info_t* obj); const char* snd_hwdep_info_get_id(const snd_hwdep_info_t* obj); const char* snd_hwdep_info_get_name(const snd_hwdep_info_t* obj); snd_hwdep_iface_t snd_hwdep_info_get_iface(const snd_hwdep_info_t* obj); void snd_hwdep_info_set_device( snd_hwdep_info_t* obj, unsigned int val ); size_t snd_hwdep_dsp_status_sizeof(void); int snd_hwdep_dsp_status_malloc(snd_hwdep_dsp_status_t** ptr); void snd_hwdep_dsp_status_free(snd_hwdep_dsp_status_t* obj); void snd_hwdep_dsp_status_copy( snd_hwdep_dsp_status_t* dst, const snd_hwdep_dsp_status_t* src ); unsigned int snd_hwdep_dsp_status_get_version(const snd_hwdep_dsp_status_t* obj); const char* snd_hwdep_dsp_status_get_id(const snd_hwdep_dsp_status_t* obj); unsigned int snd_hwdep_dsp_status_get_num_dsps(const snd_hwdep_dsp_status_t* obj); unsigned int snd_hwdep_dsp_status_get_dsp_loaded(const snd_hwdep_dsp_status_t* obj); unsigned int snd_hwdep_dsp_status_get_chip_ready(const snd_hwdep_dsp_status_t* obj); size_t snd_hwdep_dsp_image_sizeof(void); int snd_hwdep_dsp_image_malloc(snd_hwdep_dsp_image_t** ptr); void snd_hwdep_dsp_image_free(snd_hwdep_dsp_image_t* obj); void snd_hwdep_dsp_image_copy( snd_hwdep_dsp_image_t* dst, const snd_hwdep_dsp_image_t* src ); unsigned int snd_hwdep_dsp_image_get_index(const snd_hwdep_dsp_image_t* obj); const char* snd_hwdep_dsp_image_get_name(const snd_hwdep_dsp_image_t* obj); const void* snd_hwdep_dsp_image_get_image(const snd_hwdep_dsp_image_t* obj); size_t snd_hwdep_dsp_image_get_length(const snd_hwdep_dsp_image_t* obj); void snd_hwdep_dsp_image_set_index( snd_hwdep_dsp_image_t* obj, unsigned int _index ); void snd_hwdep_dsp_image_set_name( snd_hwdep_dsp_image_t* obj, const char* name ); void snd_hwdep_dsp_image_set_image( snd_hwdep_dsp_image_t* obj, void* buffer ); void snd_hwdep_dsp_image_set_length( snd_hwdep_dsp_image_t* obj, size_t length ); // macros #define SND_HWDEP_DLSYM_VERSION #define SND_HWDEP_OPEN_DUPLEX #define SND_HWDEP_OPEN_NONBLOCK #define SND_HWDEP_OPEN_READ #define SND_HWDEP_OPEN_WRITE #define snd_hwdep_dsp_image_alloca(ptr) #define snd_hwdep_dsp_status_alloca(ptr) #define snd_hwdep_info_alloca(ptr)
Detailed Documentation
The Hardware Dependant Interface.
Typedefs
typedef struct _snd_hwdep_info snd_hwdep_info_t
HwDep information container
typedef struct _snd_hwdep_dsp_status snd_hwdep_dsp_status_t
HwDep DSP status container
typedef struct _snd_hwdep_dsp_image snd_hwdep_dsp_image_t
HwDep DSP image container
typedef struct _snd_hwdep snd_hwdep_t
HwDep handle
Global Functions
int snd_hwdep_open( snd_hwdep_t** hwdep, const char* name, int mode )
Opens a new connection to the HwDep interface.
Opens a new connection to the HwDep interface specified with an ASCII identifier and mode.
Parameters:
hwdep |
Returned handle (NULL if not wanted) |
name |
ASCII identifier of the HwDep handle |
mode |
Open mode |
Returns:
0 on success otherwise a negative error code
int snd_hwdep_close(snd_hwdep_t* hwdep)
close HwDep handle
Closes the specified HwDep handle and frees all associated resources.
Parameters:
hwdep |
HwDep handle |
Returns:
0 on success otherwise a negative error code
int snd_hwdep_poll_descriptors( snd_hwdep_t* hwdep, struct pollfd* pfds, unsigned int space )
get poll descriptors
Parameters:
hwdep |
HwDep handle |
pfds |
array of poll descriptors |
space |
space in the poll descriptor array |
Returns:
count of filled descriptors
int snd_hwdep_poll_descriptors_count(snd_hwdep_t* hwdep)
get count of poll descriptors for HwDep handle
Parameters:
hwdep |
HwDep handle |
Returns:
count of poll descriptors
int snd_hwdep_poll_descriptors_revents( snd_hwdep_t* hwdep, struct pollfd* pfds, unsigned int nfds, unsigned short* revents )
get returned events from poll descriptors
Parameters:
hwdep |
HwDep handle |
pfds |
array of poll descriptors |
nfds |
count of poll descriptors |
revents |
returned events |
Returns:
zero if success, otherwise a negative error code
int snd_hwdep_nonblock( snd_hwdep_t* hwdep, int nonblock )
set nonblock mode
Parameters:
hwdep |
HwDep handle |
nonblock |
0 = block, 1 = nonblock mode |
Returns:
0 on success otherwise a negative error code
int snd_hwdep_info( snd_hwdep_t* hwdep, snd_hwdep_info_t* info )
get information about HwDep handle
Parameters:
hwdep |
HwDep handle |
info |
pointer to a snd_hwdep_info_t structure to be filled |
Returns:
0 on success otherwise a negative error code
int snd_hwdep_dsp_status( snd_hwdep_t* hwdep, snd_hwdep_dsp_status_t* status )
get the DSP status information
Parameters:
hwdep |
HwDep handle |
info |
pointer to a snd_hwdep_dsp_status_t structure to be filled |
Returns:
0 on success otherwise a negative error code
int snd_hwdep_dsp_load( snd_hwdep_t* hwdep, snd_hwdep_dsp_image_t* block )
load the DSP block
Parameters:
hwdep |
HwDep handle |
block |
pointer to a snd_hwdep_dsp_image_t structure to transfer |
Returns:
0 on success otherwise a negative error code
int snd_hwdep_ioctl( snd_hwdep_t* hwdep, unsigned int request, void* arg )
do hardware dependent ioctl
Parameters:
hwdep |
HwDep handle |
request |
ioctl command |
arg |
ioctl argument |
Returns:
0 on success otherwise a negative error code
ssize_t snd_hwdep_write( snd_hwdep_t* hwdep, const void* buffer, size_t size )
write bytes using HwDep handle
Parameters:
hwdep |
HwDep handle |
buffer |
buffer containing bytes to write |
size |
output buffer size in bytes |
ssize_t snd_hwdep_read( snd_hwdep_t* hwdep, void* buffer, size_t size )
read bytes using HwDep handle
Parameters:
hwdep |
HwDep handle |
buffer |
buffer to store the input bytes |
size |
input buffer size in bytes |
size_t snd_hwdep_info_sizeof(void)
get size of the snd_hwdep_info_t structure in bytes
Returns:
size of the snd_hwdep_info_t structure in bytes
int snd_hwdep_info_malloc(snd_hwdep_info_t** ptr)
allocate a new snd_hwdep_info_t structure
Allocates a new snd_hwdep_info_t structure using the standard malloc C library function.
Parameters:
info |
returned pointer |
Returns:
0 on success otherwise a negative error code if fails
void snd_hwdep_info_free(snd_hwdep_info_t* obj)
frees the snd_hwdep_info_t structure
Frees the given snd_hwdep_info_t structure using the standard free C library function.
Parameters:
info |
pointer to the snd_hwdep_info_t structure to free |
void snd_hwdep_info_copy( snd_hwdep_info_t* dst, const snd_hwdep_info_t* src )
copy one snd_hwdep_info_t structure to another
Parameters:
dst |
destination snd_hwdep_info_t structure |
src |
source snd_hwdep_info_t structure |
unsigned int snd_hwdep_info_get_device(const snd_hwdep_info_t* obj)
get hwdep device number
Parameters:
info |
pointer to a snd_hwdep_info_t structure |
Returns:
hwdep device number
int snd_hwdep_info_get_card(const snd_hwdep_info_t* obj)
get hwdep card number
Parameters:
obj |
pointer to a snd_hwdep_info_t structure |
Returns:
hwdep card number
const char* snd_hwdep_info_get_id(const snd_hwdep_info_t* obj)
get hwdep driver identifier
Parameters:
obj |
pointer to a snd_hwdep_info_t structure |
Returns:
hwdep driver identifier
const char* snd_hwdep_info_get_name(const snd_hwdep_info_t* obj)
get hwdep driver name
Parameters:
obj |
pointer to a snd_hwdep_info_t structure |
Returns:
hwdep driver name
snd_hwdep_iface_t snd_hwdep_info_get_iface(const snd_hwdep_info_t* obj)
get hwdep protocol interface
Parameters:
obj |
pointer to a snd_hwdep_info_t structure |
Returns:
hwdep protocol interface
void snd_hwdep_info_set_device( snd_hwdep_info_t* obj, unsigned int val )
set hwdep device number
Parameters:
obj |
pointer to a snd_hwdep_info_t structure |
val |
hwdep device |
size_t snd_hwdep_dsp_status_sizeof(void)
get size of the snd_hwdep_dsp_status_t structure in bytes
Returns:
size of the snd_hwdep_dsp_status_t structure in bytes
int snd_hwdep_dsp_status_malloc(snd_hwdep_dsp_status_t** ptr)
allocate a new snd_hwdep_dsp_status_t structure
Allocates a new snd_hwdep_dsp_status_t structure using the standard malloc C library function.
Parameters:
info |
returned pointer |
Returns:
0 on success otherwise a negative error code if fails
void snd_hwdep_dsp_status_free(snd_hwdep_dsp_status_t* obj)
frees the snd_hwdep_dsp_status_t structure
Frees the given snd_hwdep_dsp_status_t structure using the standard free C library function.
Parameters:
info |
pointer to the snd_hwdep_dsp_status_t structure to free |
void snd_hwdep_dsp_status_copy( snd_hwdep_dsp_status_t* dst, const snd_hwdep_dsp_status_t* src )
copy one snd_hwdep_dsp_status_t structure to another
Parameters:
dst |
destination snd_hwdep_dsp_status_t structure |
src |
source snd_hwdep_dsp_status_t structure |
unsigned int snd_hwdep_dsp_status_get_version(const snd_hwdep_dsp_status_t* obj)
get the driver version of dsp loader
Parameters:
obj |
pointer to a snd_hwdep_dsp_status_t structure |
Returns:
the driver version
const char* snd_hwdep_dsp_status_get_id(const snd_hwdep_dsp_status_t* obj)
get the driver id of dsp loader
Parameters:
obj |
pointer to a snd_hwdep_dsp_status_t structure |
Returns:
the driver id string
unsigned int snd_hwdep_dsp_status_get_num_dsps(const snd_hwdep_dsp_status_t* obj)
get number of dsp blocks
Parameters:
obj |
pointer to a snd_hwdep_dsp_status_t structure |
Returns:
number of dsp blocks
unsigned int snd_hwdep_dsp_status_get_dsp_loaded(const snd_hwdep_dsp_status_t* obj)
get the bit flags of the loaded dsp blocks
Parameters:
info |
pointer to a snd_hwdep_dsp_status_t structure |
Returns:
the big flags of the loaded dsp blocks
unsigned int snd_hwdep_dsp_status_get_chip_ready(const snd_hwdep_dsp_status_t* obj)
get the chip status of dsp loader
Parameters:
obj |
pointer to a snd_hwdep_dsp_status_t structure |
Returns:
non-zero if all DSP blocks are loaded and the chip is ready
size_t snd_hwdep_dsp_image_sizeof(void)
get size of the snd_hwdep_dsp_image_t structure in bytes
Returns:
size of the snd_hwdep_dsp_image_t structure in bytes
int snd_hwdep_dsp_image_malloc(snd_hwdep_dsp_image_t** ptr)
allocate a new snd_hwdep_dsp_image_t structure
Allocates a new snd_hwdep_dsp_image_t structure using the standard malloc C library function.
Parameters:
info |
returned pointer |
Returns:
0 on success otherwise a negative error code if fails
void snd_hwdep_dsp_image_free(snd_hwdep_dsp_image_t* obj)
frees the snd_hwdep_dsp_image_t structure
Frees the given snd_hwdep_dsp_image_t structure using the standard free C library function.
Parameters:
info |
pointer to the snd_hwdep_dsp_image_t structure to free |
void snd_hwdep_dsp_image_copy( snd_hwdep_dsp_image_t* dst, const snd_hwdep_dsp_image_t* src )
copy one snd_hwdep_dsp_image_t structure to another
Parameters:
dst |
destination snd_hwdep_dsp_image_t structure |
src |
source snd_hwdep_dsp_image_t structure |
unsigned int snd_hwdep_dsp_image_get_index(const snd_hwdep_dsp_image_t* obj)
get the DSP block index
Parameters:
obj |
pointer to a snd_hwdep_dsp_image_t structure |
Returns:
the index of the DSP block
const char* snd_hwdep_dsp_image_get_name(const snd_hwdep_dsp_image_t* obj)
get the name of the DSP block
Parameters:
obj |
pointer to a snd_hwdep_dsp_image_t structure |
Returns:
the name string of the DSP block
const void* snd_hwdep_dsp_image_get_image(const snd_hwdep_dsp_image_t* obj)
get the image pointer of the DSP block
Parameters:
obj |
pointer to a snd_hwdep_dsp_image_t structure |
Returns:
the image pointer of the DSP block
size_t snd_hwdep_dsp_image_get_length(const snd_hwdep_dsp_image_t* obj)
get the length of the DSP block
Parameters:
obj |
pointer to a snd_hwdep_dsp_image_t structure |
Returns:
the length of the DSP block in bytes
void snd_hwdep_dsp_image_set_index( snd_hwdep_dsp_image_t* obj, unsigned int _index )
set the DSP block index
Parameters:
obj |
pointer to a snd_hwdep_dsp_image_t structure |
index |
the index value to set |
void snd_hwdep_dsp_image_set_name( snd_hwdep_dsp_image_t* obj, const char* name )
set the name of the DSP block
Parameters:
obj |
pointer to a snd_hwdep_dsp_image_t structure |
name |
the name string |
void snd_hwdep_dsp_image_set_image( snd_hwdep_dsp_image_t* obj, void* buffer )
set the DSP block image pointer
Parameters:
obj |
pointer to a snd_hwdep_dsp_image_t structure |
image |
the DSP image pointer |
void snd_hwdep_dsp_image_set_length( snd_hwdep_dsp_image_t* obj, size_t length )
set the DSP block length
Parameters:
obj |
pointer to a snd_hwdep_dsp_image_t structure |
length |
the length of the DSP block |
Macros
#define SND_HWDEP_DLSYM_VERSION
dlsym version for interface entry callback
#define SND_HWDEP_OPEN_DUPLEX
open for reading and writing
#define SND_HWDEP_OPEN_NONBLOCK
open mode flag: open in nonblock mode
#define SND_HWDEP_OPEN_READ
open for reading
#define SND_HWDEP_OPEN_WRITE
open for writing
#define snd_hwdep_dsp_image_alloca(ptr)
allocate snd_hwdep_dsp_image_t container on stack
#define snd_hwdep_dsp_status_alloca(ptr)
allocate snd_hwdep_dsp_status_t container on stack
#define snd_hwdep_info_alloca(ptr)
allocate snd_hwdep_info_t container on stack