33 struct xmms_ipc_msg_St {
44 static unsigned char empty[16] = {0,};
63 xmms_ipc_msg_update_length (
xmmsv_t *bb)
164 xmms_ipc_msg_set_cmd (msg, cmd);
165 xmms_ipc_msg_set_object (msg,
object);
185 unsigned int ret, len;
205 *disconnected =
true;
211 *disconnected =
true;
217 return (len == msg->xfered);
231 unsigned int ret, len, rlen;
240 len += xmms_ipc_msg_get_length (msg);
242 if (msg->xfered == len) {
249 rlen = len - msg->xfered;
250 if (rlen >
sizeof (buf))
261 *disconnected =
true;
265 }
else if (ret == 0) {
267 *disconnected =
true;
285 xmms_ipc_msg_update_length (msg->bb);
int xmms_ipc_transport_read(xmms_ipc_transport_t *ipct, char *buffer, int len)
#define XMMS_IPC_MSG_HEAD_LEN
#define x_return_val_if_fail(expr, val)
void xmmsv_unref(xmmsv_t *val)
Decreases the references for the xmmsv_t When the number of references reaches 0 it will be freed...
bool xmms_socket_error_recoverable(void)
bool xmms_ipc_msg_read_transport(xmms_ipc_msg_t *msg, xmms_ipc_transport_t *transport, bool *disconnected)
Try to read message from transport into msg.
struct xmms_ipc_msg_St xmms_ipc_msg_t
int xmmsv_bitbuffer_pos(xmmsv_t *v)
int xmmsv_bitbuffer_goto(xmmsv_t *v, int pos)
const unsigned char * xmmsv_bitbuffer_buffer(xmmsv_t *v)
int xmmsv_bitbuffer_put_bits(xmmsv_t *v, int bits, int d)
void xmms_ipc_msg_destroy(xmms_ipc_msg_t *msg)
int xmmsv_bitbuffer_deserialize_value(xmmsv_t *bb, xmmsv_t **val)
int xmmsv_bitbuffer_align(xmmsv_t *v)
void xmms_ipc_msg_set_cookie(xmms_ipc_msg_t *msg, uint32_t cookie)
int xmmsv_bitbuffer_len(xmmsv_t *v)
xmms_ipc_msg_t * xmms_ipc_msg_alloc(void)
int xmms_ipc_transport_write(xmms_ipc_transport_t *ipct, char *buffer, int len)
#define x_new0(type, num)
uint32_t xmms_ipc_msg_get_object(const xmms_ipc_msg_t *msg)
xmms_ipc_msg_t * xmms_ipc_msg_new(uint32_t object, uint32_t cmd)
int xmmsv_bitbuffer_serialize_value(xmmsv_t *bb, xmmsv_t *v)
bool xmms_ipc_msg_write_transport(xmms_ipc_msg_t *msg, xmms_ipc_transport_t *transport, bool *disconnected)
Try to write message to transport.
int xmmsv_bitbuffer_put_data(xmmsv_t *v, const unsigned char *b, int len)
uint32_t xmms_ipc_msg_get_cmd(const xmms_ipc_msg_t *msg)
#define x_return_if_fail(expr)
int xmmsv_bitbuffer_end(xmmsv_t *v)
int xmmsv_bitbuffer_get_bits(xmmsv_t *v, int bits, int *res)
uint32_t xmms_ipc_msg_put_value(xmms_ipc_msg_t *msg, xmmsv_t *v)
bool xmms_ipc_msg_get_value(xmms_ipc_msg_t *msg, xmmsv_t **val)
xmmsv_t * xmmsv_bitbuffer_new(void)
uint32_t xmms_ipc_msg_get_cookie(const xmms_ipc_msg_t *msg)