Output Interface
Overview
The output functions present an interface similar to the stdio functions on top of different underlying output destinations. More…
// typedefs typedef struct _snd_output snd_output_t; // enums enum snd_output_type_t; // global functions int snd_output_stdio_open( snd_output_t** outputp, const char* file, const char* mode ); int snd_output_stdio_attach( snd_output_t** outputp, FILE* fp, int _close ); int snd_output_buffer_open(snd_output_t** outputp); size_t snd_output_buffer_string( snd_output_t* output, char** buf ); int snd_output_close(snd_output_t* output); int snd_output_printf( snd_output_t* output, const char* format, ... ); int snd_output_vprintf( snd_output_t* output, const char* format, va_list args ); int snd_output_puts( snd_output_t* output, const char* str ); int snd_output_putc( snd_output_t* output, int c ); int snd_output_flush(snd_output_t* output);
Detailed Documentation
The output functions present an interface similar to the stdio functions on top of different underlying output destinations.
Many PCM debugging functions (snd_pcm_xxx_dump_xxx
) use such an output handle to be able to write not only to the screen but also to other destinations, e.g. to files or to memory buffers.
Typedefs
typedef struct _snd_output snd_output_t
Internal structure for an output object.
The ALSA library uses a pointer to this structure as a handle to an output object. Applications don’t access its contents directly.
Global Functions
int snd_output_stdio_open( snd_output_t** outputp, const char* file, const char* mode )
Creates a new output object writing to a file.
Parameters:
outputp |
The function puts the pointer to the new output object at the address specified by |
file |
The name of the file to open. |
mode |
The open mode, like |
Returns:
Zero if successful, otherwise a negative error code.
int snd_output_stdio_attach( snd_output_t** outputp, FILE* fp, int _close )
Creates a new output object using an existing stdio FILE
pointer.
Parameters:
outputp |
The function puts the pointer to the new output object at the address specified by |
fp |
The |
_close |
Close flag. Set this to 1 if snd_output_close should close |
Returns:
Zero if successful, otherwise a negative error code.
int snd_output_buffer_open(snd_output_t** outputp)
Creates a new output object with an auto-extending memory buffer.
Parameters:
outputp |
The function puts the pointer to the new output object at the address specified by |
Returns:
Zero if successful, otherwise a negative error code.
size_t snd_output_buffer_string( snd_output_t* output, char** buf )
Returns the address of the buffer of a SND_OUTPUT_BUFFER output handle.
The address of the buffer may become invalid when output functions or snd_output_close are called.
Parameters:
output |
The output handle. |
buf |
The functions puts the current address of the buffer at the address specified by |
Returns:
The current size of valid data in the buffer.
int snd_output_close(snd_output_t* output)
Closes an output handle.
Parameters:
output |
The output handle to be closed. |
Returns:
Zero if successful, otherwise a negative error code.
int snd_output_printf( snd_output_t* output, const char* format, ... )
Writes formatted output (like fprintf(3)
) to an output handle.
Parameters:
output |
The output handle. |
format |
Format string in |
… |
Other |
Returns:
The number of characters written, or a negative error code.
int snd_output_vprintf( snd_output_t* output, const char* format, va_list args )
Writes formatted output (like fprintf(3)
) to an output handle.
Parameters:
output |
The output handle. |
format |
Format string in |
args |
Other |
Returns:
The number of characters written, or a negative error code.
int snd_output_puts( snd_output_t* output, const char* str )
Writes a string to an output handle (like fputs(3)
).
Parameters:
output |
The output handle. |
str |
Pointer to the string. |
Returns:
Zero if successful, otherwise a negative error code or EOF
.
int snd_output_putc( snd_output_t* output, int c )
Writes a character to an output handle (like putc(3)
).
Parameters:
output |
The output handle. |
c |
The character. |
Returns:
Zero if successful, otherwise a negative error code or EOF
.
int snd_output_flush(snd_output_t* output)
Flushes an output handle (like fflush(3)).
If the underlying destination is a stdio stream, this function calls fflush
. If the underlying destination is a memory buffer, the write position is reset to the beginning of the buffer. =
:-o
Parameters:
output |
The output handle. |
Returns:
Zero if successful, otherwise EOF
.