libmpdclient
2.7
|
Asynchronous MPD connections. More...
Go to the source code of this file.
Enumerations | |
enum | mpd_async_event { MPD_ASYNC_EVENT_READ = 1, MPD_ASYNC_EVENT_WRITE = 2, MPD_ASYNC_EVENT_HUP = 4, MPD_ASYNC_EVENT_ERROR = 8 } |
Functions | |
mpd_malloc struct mpd_async * | mpd_async_new (int fd) |
void | mpd_async_free (struct mpd_async *async) |
mpd_pure enum mpd_error | mpd_async_get_error (const struct mpd_async *async) |
mpd_pure const char * | mpd_async_get_error_message (const struct mpd_async *async) |
mpd_pure int | mpd_async_get_system_error (const struct mpd_async *async) |
mpd_pure int | mpd_async_get_fd (const struct mpd_async *async) |
mpd_pure enum mpd_async_event | mpd_async_events (const struct mpd_async *async) |
bool | mpd_async_io (struct mpd_async *async, enum mpd_async_event events) |
bool | mpd_async_send_command_v (struct mpd_async *async, const char *command, va_list args) |
mpd_sentinel bool | mpd_async_send_command (struct mpd_async *async, const char *command,...) |
mpd_malloc char * | mpd_async_recv_line (struct mpd_async *async) |
Asynchronous MPD connections.
This class provides a very basic interface to MPD connections. It does not know much about the MPD protocol, it does not know any specific MPD command.
The constructor expects a socket descriptor which is already connected to MPD. The first thing it does is read the server's handshake code ("OK MPD 0.15.0").
Definition in file async.h.
enum mpd_async_event |
mpd_malloc struct mpd_async* mpd_async_new | ( | int | fd | ) | [read] |
Creates a new asynchronous MPD connection, based on a stream socket connected with MPD.
fd | the socket file descriptor of the stream connection to MPD |
void mpd_async_free | ( | struct mpd_async * | async | ) |
Closes the socket and frees memory.
After an error has occurred, this function returns the error code. If no error has occurred, it returns MPD_ERROR_SUCCESS.
mpd_pure const char* mpd_async_get_error_message | ( | const struct mpd_async * | async | ) |
If mpd_async_is_alive() returns false, this function returns the human readable error message which caused this. This message is optional, and may be NULL. The pointer is invalidated by mpd_async_free().
For MPD_ERROR_SERVER, the error message is encoded in UTF-8. MPD_ERROR_SYSTEM obtains its error message from the operating system, and thus the locale's character set (and probably language) is used. Keep that in mind when you print error messages.
mpd_pure int mpd_async_get_system_error | ( | const struct mpd_async * | async | ) |
Returns the error code from the operating system; on most operating systems, this is the errno value. Calling this function is only valid if mpd_async_get_error() returned MPD_ERROR_SYSTEM.
May be 0 if the operating system did not specify an error code.
mpd_pure int mpd_async_get_fd | ( | const struct mpd_async * | async | ) |
Returns the file descriptor which should be polled by the caller. Do not use the file descriptor for anything except polling! The file descriptor never changes during the lifetime of this mpd_async object.
mpd_pure enum mpd_async_event mpd_async_events | ( | const struct mpd_async * | async | ) |
Returns a bit mask of events which should be polled for.
bool mpd_async_io | ( | struct mpd_async * | async, |
enum mpd_async_event | events | ||
) |
Call this function when poll() has returned events for this object's file descriptor. libmpdclient will attempt to perform I/O operations.
bool mpd_async_send_command_v | ( | struct mpd_async * | async, |
const char * | command, | ||
va_list | args | ||
) |
Appends a command to the output buffer.
async | the connection |
command | the command name, followed by arguments, terminated by NULL |
args | the argument list |
mpd_sentinel bool mpd_async_send_command | ( | struct mpd_async * | async, |
const char * | command, | ||
... | |||
) |
Appends a command to the output buffer.
async | the connection |
command | the command name, followed by arguments, terminated by NULL |
mpd_malloc char* mpd_async_recv_line | ( | struct mpd_async * | async | ) |
Receives a line from the input buffer. The result will be null-terminated, without the newline character. The pointer is only valid until the next async function is called.
async | the connection |