Input Interface
Overview
The input functions present an interface similar to the stdio functions on top of different underlying input sources. More…
// typedefs typedef struct _snd_input snd_input_t; // enums enum snd_input_type_t; // global functions int snd_input_stdio_open( snd_input_t** inputp, const char* file, const char* mode ); int snd_input_stdio_attach( snd_input_t** inputp, FILE* fp, int _close ); int snd_input_buffer_open( snd_input_t** inputp, const char* buffer, ssize_t size ); int snd_input_close(snd_input_t* input); int snd_input_scanf( snd_input_t* input, const char* format, ... ); char* snd_input_gets( snd_input_t* input, char* str, size_t size ); int snd_input_getc(snd_input_t* input); int snd_input_ungetc( snd_input_t* input, int c );
Detailed Documentation
The input functions present an interface similar to the stdio functions on top of different underlying input sources.
The snd_config_load function uses such an input handle to be able to load configurations not only from standard files but also from other sources, e.g. from memory buffers.
Typedefs
typedef struct _snd_input snd_input_t
Internal structure for an input object.
The ALSA library uses a pointer to this structure as a handle to an input object. Applications don’t access its contents directly.
Global Functions
int snd_input_stdio_open( snd_input_t** inputp, const char* file, const char* mode )
Creates a new input object reading from a file.
Parameters:
inputp |
The functions puts the pointer to the new input object at the address specified by |
file |
The name of the file to read from. |
mode |
The open mode, like |
Returns:
Zero if successful, otherwise a negative error code.
int snd_input_stdio_attach( snd_input_t** inputp, FILE* fp, int _close )
Creates a new input object using an existing stdio FILE
pointer.
Parameters:
inputp |
The function puts the pointer to the new input object at the address specified by |
fp |
The |
_close |
Close flag. Set this to 1 if snd_input_close should close |
Returns:
Zero if successful, otherwise a negative error code.
int snd_input_buffer_open( snd_input_t** inputp, const char* buffer, ssize_t size )
Creates a new input object from a memory buffer.
This functions creates a copy of the input buffer, so the application is not required to preserve the buffer after this function has been called.
Parameters:
inputp |
The function puts the pointer to the new input object at the address specified by |
buf |
Address of the input buffer. |
size |
Size of the input buffer. |
Returns:
Zero if successful, otherwise a negative error code.
int snd_input_close(snd_input_t* input)
Closes an input handle.
Parameters:
input |
The input handle to be closed. |
Returns:
Zero if successful, otherwise a negative error code.
int snd_input_scanf( snd_input_t* input, const char* format, ... )
Reads formatted input (like fscanf(3)
) from an input handle.
Bug Reading from a memory buffer doesn’t work.
Parameters:
input |
The input handle. |
format |
Format string in |
… |
Other |
Returns:
The number of input items assigned, or EOF
.
char* snd_input_gets( snd_input_t* input, char* str, size_t size )
Reads a line from an input handle (like fgets(3)
).
Like fgets
, the returned string is zero-terminated, and contains the new-line character '\n'
if the line fits into the buffer.
Parameters:
input |
The input handle. |
str |
Address of the destination buffer. |
size |
The size of the destination buffer. |
Returns:
Pointer to the buffer if successful, otherwise NULL
.
int snd_input_getc(snd_input_t* input)
Reads a character from an input handle (like fgetc(3)
).
Parameters:
input |
The input handle. |
Returns:
The character read, or EOF
on end of file or error.
int snd_input_ungetc( snd_input_t* input, int c )
Puts the last character read back to an input handle (like ungetc(3)
).
Parameters:
input |
The input handle. |
c |
The character to push back. |
Returns:
The character pushed back, or EOF
on error.