From 80ab0233688c9df9fd48265b6f9e7ab7cd589dbc Mon Sep 17 00:00:00 2001 From: dec05eba Date: Sat, 19 Aug 2023 23:50:04 +0200 Subject: Initial commit --- depends/libxcb/src/randr.c | 5684 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 5684 insertions(+) create mode 100644 depends/libxcb/src/randr.c (limited to 'depends/libxcb/src/randr.c') diff --git a/depends/libxcb/src/randr.c b/depends/libxcb/src/randr.c new file mode 100644 index 0000000..efff1aa --- /dev/null +++ b/depends/libxcb/src/randr.c @@ -0,0 +1,5684 @@ +/* + * This file generated automatically from randr.xml by c_client.py. + * Edit at your peril. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include +#include +#include /* for offsetof() */ +#include "xcbext.h" +#include "randr.h" + +#define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) +#include "xproto.h" +#include "render.h" + +xcb_extension_t xcb_randr_id = { "RANDR", 0 }; + +void +xcb_randr_mode_next (xcb_randr_mode_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_mode_t); +} + +xcb_generic_iterator_t +xcb_randr_mode_end (xcb_randr_mode_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +void +xcb_randr_crtc_next (xcb_randr_crtc_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_crtc_t); +} + +xcb_generic_iterator_t +xcb_randr_crtc_end (xcb_randr_crtc_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +void +xcb_randr_output_next (xcb_randr_output_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_output_t); +} + +xcb_generic_iterator_t +xcb_randr_output_end (xcb_randr_output_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +void +xcb_randr_provider_next (xcb_randr_provider_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_provider_t); +} + +xcb_generic_iterator_t +xcb_randr_provider_end (xcb_randr_provider_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +void +xcb_randr_lease_next (xcb_randr_lease_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_lease_t); +} + +xcb_generic_iterator_t +xcb_randr_lease_end (xcb_randr_lease_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +void +xcb_randr_screen_size_next (xcb_randr_screen_size_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_screen_size_t); +} + +xcb_generic_iterator_t +xcb_randr_screen_size_end (xcb_randr_screen_size_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +int +xcb_randr_refresh_rates_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_refresh_rates_t *_aux = (xcb_randr_refresh_rates_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_refresh_rates_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* rates */ + xcb_block_len += _aux->nRates * sizeof(uint16_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +uint16_t * +xcb_randr_refresh_rates_rates (const xcb_randr_refresh_rates_t *R) +{ + return (uint16_t *) (R + 1); +} + +int +xcb_randr_refresh_rates_rates_length (const xcb_randr_refresh_rates_t *R) +{ + return R->nRates; +} + +xcb_generic_iterator_t +xcb_randr_refresh_rates_rates_end (const xcb_randr_refresh_rates_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((uint16_t *) (R + 1)) + (R->nRates); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +void +xcb_randr_refresh_rates_next (xcb_randr_refresh_rates_iterator_t *i) +{ + xcb_randr_refresh_rates_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_randr_refresh_rates_t *)(((char *)R) + xcb_randr_refresh_rates_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_randr_refresh_rates_t *) child.data; +} + +xcb_generic_iterator_t +xcb_randr_refresh_rates_end (xcb_randr_refresh_rates_iterator_t i) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_randr_refresh_rates_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + +xcb_randr_query_version_cookie_t +xcb_randr_query_version (xcb_connection_t *c, + uint32_t major_version, + uint32_t minor_version) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_QUERY_VERSION, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_query_version_cookie_t xcb_ret; + xcb_randr_query_version_request_t xcb_out; + + xcb_out.major_version = major_version; + xcb_out.minor_version = minor_version; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_query_version_cookie_t +xcb_randr_query_version_unchecked (xcb_connection_t *c, + uint32_t major_version, + uint32_t minor_version) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_QUERY_VERSION, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_query_version_cookie_t xcb_ret; + xcb_randr_query_version_request_t xcb_out; + + xcb_out.major_version = major_version; + xcb_out.minor_version = minor_version; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_query_version_reply_t * +xcb_randr_query_version_reply (xcb_connection_t *c, + xcb_randr_query_version_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +xcb_randr_set_screen_config_cookie_t +xcb_randr_set_screen_config (xcb_connection_t *c, + xcb_window_t window, + xcb_timestamp_t timestamp, + xcb_timestamp_t config_timestamp, + uint16_t sizeID, + uint16_t rotation, + uint16_t rate) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_SCREEN_CONFIG, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_set_screen_config_cookie_t xcb_ret; + xcb_randr_set_screen_config_request_t xcb_out; + + xcb_out.window = window; + xcb_out.timestamp = timestamp; + xcb_out.config_timestamp = config_timestamp; + xcb_out.sizeID = sizeID; + xcb_out.rotation = rotation; + xcb_out.rate = rate; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_set_screen_config_cookie_t +xcb_randr_set_screen_config_unchecked (xcb_connection_t *c, + xcb_window_t window, + xcb_timestamp_t timestamp, + xcb_timestamp_t config_timestamp, + uint16_t sizeID, + uint16_t rotation, + uint16_t rate) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_SCREEN_CONFIG, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_set_screen_config_cookie_t xcb_ret; + xcb_randr_set_screen_config_request_t xcb_out; + + xcb_out.window = window; + xcb_out.timestamp = timestamp; + xcb_out.config_timestamp = config_timestamp; + xcb_out.sizeID = sizeID; + xcb_out.rotation = rotation; + xcb_out.rate = rate; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_set_screen_config_reply_t * +xcb_randr_set_screen_config_reply (xcb_connection_t *c, + xcb_randr_set_screen_config_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_set_screen_config_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +xcb_void_cookie_t +xcb_randr_select_input_checked (xcb_connection_t *c, + xcb_window_t window, + uint16_t enable) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SELECT_INPUT, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_select_input_request_t xcb_out; + + xcb_out.window = window; + xcb_out.enable = enable; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_select_input (xcb_connection_t *c, + xcb_window_t window, + uint16_t enable) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SELECT_INPUT, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_select_input_request_t xcb_out; + + xcb_out.window = window; + xcb_out.enable = enable; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +int +xcb_randr_get_screen_info_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_get_screen_info_reply_t *_aux = (xcb_randr_get_screen_info_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + unsigned int i; + unsigned int xcb_tmp_len; + + xcb_block_len += sizeof(xcb_randr_get_screen_info_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* sizes */ + xcb_block_len += _aux->nSizes * sizeof(xcb_randr_screen_size_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_screen_size_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* rates */ + for(i=0; i<(_aux->nInfo - _aux->nSizes); i++) { + xcb_tmp_len = xcb_randr_refresh_rates_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_randr_refresh_rates_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_get_screen_info_cookie_t +xcb_randr_get_screen_info (xcb_connection_t *c, + xcb_window_t window) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_SCREEN_INFO, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_screen_info_cookie_t xcb_ret; + xcb_randr_get_screen_info_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_screen_info_cookie_t +xcb_randr_get_screen_info_unchecked (xcb_connection_t *c, + xcb_window_t window) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_SCREEN_INFO, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_screen_info_cookie_t xcb_ret; + xcb_randr_get_screen_info_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_screen_size_t * +xcb_randr_get_screen_info_sizes (const xcb_randr_get_screen_info_reply_t *R) +{ + return (xcb_randr_screen_size_t *) (R + 1); +} + +int +xcb_randr_get_screen_info_sizes_length (const xcb_randr_get_screen_info_reply_t *R) +{ + return R->nSizes; +} + +xcb_randr_screen_size_iterator_t +xcb_randr_get_screen_info_sizes_iterator (const xcb_randr_get_screen_info_reply_t *R) +{ + xcb_randr_screen_size_iterator_t i; + i.data = (xcb_randr_screen_size_t *) (R + 1); + i.rem = R->nSizes; + i.index = (char *) i.data - (char *) R; + return i; +} + +int +xcb_randr_get_screen_info_rates_length (const xcb_randr_get_screen_info_reply_t *R) +{ + return (R->nInfo - R->nSizes); +} + +xcb_randr_refresh_rates_iterator_t +xcb_randr_get_screen_info_rates_iterator (const xcb_randr_get_screen_info_reply_t *R) +{ + xcb_randr_refresh_rates_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_screen_size_end(xcb_randr_get_screen_info_sizes_iterator(R)); + i.data = (xcb_randr_refresh_rates_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_refresh_rates_t, prev.index)); + i.rem = (R->nInfo - R->nSizes); + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_get_screen_info_reply_t * +xcb_randr_get_screen_info_reply (xcb_connection_t *c, + xcb_randr_get_screen_info_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_screen_info_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +xcb_randr_get_screen_size_range_cookie_t +xcb_randr_get_screen_size_range (xcb_connection_t *c, + xcb_window_t window) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_SCREEN_SIZE_RANGE, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_screen_size_range_cookie_t xcb_ret; + xcb_randr_get_screen_size_range_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_screen_size_range_cookie_t +xcb_randr_get_screen_size_range_unchecked (xcb_connection_t *c, + xcb_window_t window) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_SCREEN_SIZE_RANGE, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_screen_size_range_cookie_t xcb_ret; + xcb_randr_get_screen_size_range_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_screen_size_range_reply_t * +xcb_randr_get_screen_size_range_reply (xcb_connection_t *c, + xcb_randr_get_screen_size_range_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_screen_size_range_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +xcb_void_cookie_t +xcb_randr_set_screen_size_checked (xcb_connection_t *c, + xcb_window_t window, + uint16_t width, + uint16_t height, + uint32_t mm_width, + uint32_t mm_height) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_SCREEN_SIZE, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_screen_size_request_t xcb_out; + + xcb_out.window = window; + xcb_out.width = width; + xcb_out.height = height; + xcb_out.mm_width = mm_width; + xcb_out.mm_height = mm_height; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_set_screen_size (xcb_connection_t *c, + xcb_window_t window, + uint16_t width, + uint16_t height, + uint32_t mm_width, + uint32_t mm_height) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_SCREEN_SIZE, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_screen_size_request_t xcb_out; + + xcb_out.window = window; + xcb_out.width = width; + xcb_out.height = height; + xcb_out.mm_width = mm_width; + xcb_out.mm_height = mm_height; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +void +xcb_randr_mode_info_next (xcb_randr_mode_info_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_mode_info_t); +} + +xcb_generic_iterator_t +xcb_randr_mode_info_end (xcb_randr_mode_info_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +int +xcb_randr_get_screen_resources_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_get_screen_resources_reply_t *_aux = (xcb_randr_get_screen_resources_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_get_screen_resources_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* crtcs */ + xcb_block_len += _aux->num_crtcs * sizeof(uint32_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_crtc_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* outputs */ + xcb_block_len += _aux->num_outputs * sizeof(uint32_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_output_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* modes */ + xcb_block_len += _aux->num_modes * sizeof(xcb_randr_mode_info_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_mode_info_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* names */ + xcb_block_len += _aux->names_len * sizeof(uint8_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_get_screen_resources_cookie_t +xcb_randr_get_screen_resources (xcb_connection_t *c, + xcb_window_t window) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_SCREEN_RESOURCES, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_screen_resources_cookie_t xcb_ret; + xcb_randr_get_screen_resources_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_screen_resources_cookie_t +xcb_randr_get_screen_resources_unchecked (xcb_connection_t *c, + xcb_window_t window) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_SCREEN_RESOURCES, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_screen_resources_cookie_t xcb_ret; + xcb_randr_get_screen_resources_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_crtc_t * +xcb_randr_get_screen_resources_crtcs (const xcb_randr_get_screen_resources_reply_t *R) +{ + return (xcb_randr_crtc_t *) (R + 1); +} + +int +xcb_randr_get_screen_resources_crtcs_length (const xcb_randr_get_screen_resources_reply_t *R) +{ + return R->num_crtcs; +} + +xcb_generic_iterator_t +xcb_randr_get_screen_resources_crtcs_end (const xcb_randr_get_screen_resources_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((xcb_randr_crtc_t *) (R + 1)) + (R->num_crtcs); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_output_t * +xcb_randr_get_screen_resources_outputs (const xcb_randr_get_screen_resources_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_crtcs_end(R); + return (xcb_randr_output_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index) + 0); +} + +int +xcb_randr_get_screen_resources_outputs_length (const xcb_randr_get_screen_resources_reply_t *R) +{ + return R->num_outputs; +} + +xcb_generic_iterator_t +xcb_randr_get_screen_resources_outputs_end (const xcb_randr_get_screen_resources_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_crtcs_end(R); + i.data = ((xcb_randr_output_t *) ((char*) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index))) + (R->num_outputs); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_mode_info_t * +xcb_randr_get_screen_resources_modes (const xcb_randr_get_screen_resources_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_outputs_end(R); + return (xcb_randr_mode_info_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_mode_info_t, prev.index) + 0); +} + +int +xcb_randr_get_screen_resources_modes_length (const xcb_randr_get_screen_resources_reply_t *R) +{ + return R->num_modes; +} + +xcb_randr_mode_info_iterator_t +xcb_randr_get_screen_resources_modes_iterator (const xcb_randr_get_screen_resources_reply_t *R) +{ + xcb_randr_mode_info_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_outputs_end(R); + i.data = (xcb_randr_mode_info_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_mode_info_t, prev.index)); + i.rem = R->num_modes; + i.index = (char *) i.data - (char *) R; + return i; +} + +uint8_t * +xcb_randr_get_screen_resources_names (const xcb_randr_get_screen_resources_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_mode_info_end(xcb_randr_get_screen_resources_modes_iterator(R)); + return (uint8_t *) ((char *) prev.data + XCB_TYPE_PAD(uint8_t, prev.index) + 0); +} + +int +xcb_randr_get_screen_resources_names_length (const xcb_randr_get_screen_resources_reply_t *R) +{ + return R->names_len; +} + +xcb_generic_iterator_t +xcb_randr_get_screen_resources_names_end (const xcb_randr_get_screen_resources_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_mode_info_end(xcb_randr_get_screen_resources_modes_iterator(R)); + i.data = ((uint8_t *) ((char*) prev.data + XCB_TYPE_PAD(uint8_t, prev.index))) + (R->names_len); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_get_screen_resources_reply_t * +xcb_randr_get_screen_resources_reply (xcb_connection_t *c, + xcb_randr_get_screen_resources_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_screen_resources_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_get_output_info_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_get_output_info_reply_t *_aux = (xcb_randr_get_output_info_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_get_output_info_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* crtcs */ + xcb_block_len += _aux->num_crtcs * sizeof(xcb_randr_output_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_crtc_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* modes */ + xcb_block_len += _aux->num_modes * sizeof(xcb_randr_output_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_mode_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* clones */ + xcb_block_len += _aux->num_clones * sizeof(xcb_randr_output_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_output_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* name */ + xcb_block_len += _aux->name_len * sizeof(uint8_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_get_output_info_cookie_t +xcb_randr_get_output_info (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_timestamp_t config_timestamp) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_OUTPUT_INFO, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_output_info_cookie_t xcb_ret; + xcb_randr_get_output_info_request_t xcb_out; + + xcb_out.output = output; + xcb_out.config_timestamp = config_timestamp; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_output_info_cookie_t +xcb_randr_get_output_info_unchecked (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_timestamp_t config_timestamp) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_OUTPUT_INFO, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_output_info_cookie_t xcb_ret; + xcb_randr_get_output_info_request_t xcb_out; + + xcb_out.output = output; + xcb_out.config_timestamp = config_timestamp; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_crtc_t * +xcb_randr_get_output_info_crtcs (const xcb_randr_get_output_info_reply_t *R) +{ + return (xcb_randr_crtc_t *) (R + 1); +} + +int +xcb_randr_get_output_info_crtcs_length (const xcb_randr_get_output_info_reply_t *R) +{ + return R->num_crtcs; +} + +xcb_generic_iterator_t +xcb_randr_get_output_info_crtcs_end (const xcb_randr_get_output_info_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((xcb_randr_crtc_t *) (R + 1)) + (R->num_crtcs); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_mode_t * +xcb_randr_get_output_info_modes (const xcb_randr_get_output_info_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_output_info_crtcs_end(R); + return (xcb_randr_mode_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_mode_t, prev.index) + 0); +} + +int +xcb_randr_get_output_info_modes_length (const xcb_randr_get_output_info_reply_t *R) +{ + return R->num_modes; +} + +xcb_generic_iterator_t +xcb_randr_get_output_info_modes_end (const xcb_randr_get_output_info_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_output_info_crtcs_end(R); + i.data = ((xcb_randr_mode_t *) ((char*) prev.data + XCB_TYPE_PAD(xcb_randr_mode_t, prev.index))) + (R->num_modes); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_output_t * +xcb_randr_get_output_info_clones (const xcb_randr_get_output_info_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_output_info_modes_end(R); + return (xcb_randr_output_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index) + 0); +} + +int +xcb_randr_get_output_info_clones_length (const xcb_randr_get_output_info_reply_t *R) +{ + return R->num_clones; +} + +xcb_generic_iterator_t +xcb_randr_get_output_info_clones_end (const xcb_randr_get_output_info_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_output_info_modes_end(R); + i.data = ((xcb_randr_output_t *) ((char*) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index))) + (R->num_clones); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +uint8_t * +xcb_randr_get_output_info_name (const xcb_randr_get_output_info_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_output_info_clones_end(R); + return (uint8_t *) ((char *) prev.data + XCB_TYPE_PAD(uint8_t, prev.index) + 0); +} + +int +xcb_randr_get_output_info_name_length (const xcb_randr_get_output_info_reply_t *R) +{ + return R->name_len; +} + +xcb_generic_iterator_t +xcb_randr_get_output_info_name_end (const xcb_randr_get_output_info_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_output_info_clones_end(R); + i.data = ((uint8_t *) ((char*) prev.data + XCB_TYPE_PAD(uint8_t, prev.index))) + (R->name_len); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_get_output_info_reply_t * +xcb_randr_get_output_info_reply (xcb_connection_t *c, + xcb_randr_get_output_info_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_output_info_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_list_output_properties_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_list_output_properties_reply_t *_aux = (xcb_randr_list_output_properties_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_list_output_properties_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* atoms */ + xcb_block_len += _aux->num_atoms * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_list_output_properties_cookie_t +xcb_randr_list_output_properties (xcb_connection_t *c, + xcb_randr_output_t output) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_LIST_OUTPUT_PROPERTIES, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_list_output_properties_cookie_t xcb_ret; + xcb_randr_list_output_properties_request_t xcb_out; + + xcb_out.output = output; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_list_output_properties_cookie_t +xcb_randr_list_output_properties_unchecked (xcb_connection_t *c, + xcb_randr_output_t output) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_LIST_OUTPUT_PROPERTIES, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_list_output_properties_cookie_t xcb_ret; + xcb_randr_list_output_properties_request_t xcb_out; + + xcb_out.output = output; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_atom_t * +xcb_randr_list_output_properties_atoms (const xcb_randr_list_output_properties_reply_t *R) +{ + return (xcb_atom_t *) (R + 1); +} + +int +xcb_randr_list_output_properties_atoms_length (const xcb_randr_list_output_properties_reply_t *R) +{ + return R->num_atoms; +} + +xcb_generic_iterator_t +xcb_randr_list_output_properties_atoms_end (const xcb_randr_list_output_properties_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((xcb_atom_t *) (R + 1)) + (R->num_atoms); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_list_output_properties_reply_t * +xcb_randr_list_output_properties_reply (xcb_connection_t *c, + xcb_randr_list_output_properties_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_list_output_properties_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_query_output_property_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_query_output_property_reply_t *_aux = (xcb_randr_query_output_property_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_query_output_property_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* validValues */ + xcb_block_len += _aux->length * sizeof(int32_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(int32_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_query_output_property_cookie_t +xcb_randr_query_output_property (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_atom_t property) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_QUERY_OUTPUT_PROPERTY, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_query_output_property_cookie_t xcb_ret; + xcb_randr_query_output_property_request_t xcb_out; + + xcb_out.output = output; + xcb_out.property = property; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_query_output_property_cookie_t +xcb_randr_query_output_property_unchecked (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_atom_t property) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_QUERY_OUTPUT_PROPERTY, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_query_output_property_cookie_t xcb_ret; + xcb_randr_query_output_property_request_t xcb_out; + + xcb_out.output = output; + xcb_out.property = property; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +int32_t * +xcb_randr_query_output_property_valid_values (const xcb_randr_query_output_property_reply_t *R) +{ + return (int32_t *) (R + 1); +} + +int +xcb_randr_query_output_property_valid_values_length (const xcb_randr_query_output_property_reply_t *R) +{ + return R->length; +} + +xcb_generic_iterator_t +xcb_randr_query_output_property_valid_values_end (const xcb_randr_query_output_property_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((int32_t *) (R + 1)) + (R->length); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_query_output_property_reply_t * +xcb_randr_query_output_property_reply (xcb_connection_t *c, + xcb_randr_query_output_property_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_query_output_property_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_configure_output_property_sizeof (const void *_buffer, + uint32_t values_len) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_configure_output_property_request_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* values */ + xcb_block_len += values_len * sizeof(int32_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(int32_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_void_cookie_t +xcb_randr_configure_output_property_checked (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_atom_t property, + uint8_t pending, + uint8_t range, + uint32_t values_len, + const int32_t *values) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_CONFIGURE_OUTPUT_PROPERTY, + .isvoid = 1 + }; + + struct iovec xcb_parts[6]; + xcb_void_cookie_t xcb_ret; + xcb_randr_configure_output_property_request_t xcb_out; + + xcb_out.output = output; + xcb_out.property = property; + xcb_out.pending = pending; + xcb_out.range = range; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* int32_t values */ + xcb_parts[4].iov_base = (char *) values; + xcb_parts[4].iov_len = values_len * sizeof(int32_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_configure_output_property (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_atom_t property, + uint8_t pending, + uint8_t range, + uint32_t values_len, + const int32_t *values) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_CONFIGURE_OUTPUT_PROPERTY, + .isvoid = 1 + }; + + struct iovec xcb_parts[6]; + xcb_void_cookie_t xcb_ret; + xcb_randr_configure_output_property_request_t xcb_out; + + xcb_out.output = output; + xcb_out.property = property; + xcb_out.pending = pending; + xcb_out.range = range; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* int32_t values */ + xcb_parts[4].iov_base = (char *) values; + xcb_parts[4].iov_len = values_len * sizeof(int32_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +int32_t * +xcb_randr_configure_output_property_values (const xcb_randr_configure_output_property_request_t *R) +{ + return (int32_t *) (R + 1); +} + +int +xcb_randr_configure_output_property_values_length (const xcb_randr_configure_output_property_request_t *R) +{ + return (((R->length * 4) - sizeof(xcb_randr_configure_output_property_request_t))/sizeof(int32_t)); +} + +xcb_generic_iterator_t +xcb_randr_configure_output_property_values_end (const xcb_randr_configure_output_property_request_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((int32_t *) (R + 1)) + ((((R->length * 4) - sizeof(xcb_randr_configure_output_property_request_t))/sizeof(int32_t))); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +int +xcb_randr_change_output_property_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_change_output_property_request_t *_aux = (xcb_randr_change_output_property_request_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_change_output_property_request_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* data */ + xcb_block_len += ((_aux->num_units * _aux->format) / 8) * sizeof(char); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(char); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_void_cookie_t +xcb_randr_change_output_property_checked (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_atom_t property, + xcb_atom_t type, + uint8_t format, + uint8_t mode, + uint32_t num_units, + const void *data) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_CHANGE_OUTPUT_PROPERTY, + .isvoid = 1 + }; + + struct iovec xcb_parts[6]; + xcb_void_cookie_t xcb_ret; + xcb_randr_change_output_property_request_t xcb_out; + + xcb_out.output = output; + xcb_out.property = property; + xcb_out.type = type; + xcb_out.format = format; + xcb_out.mode = mode; + memset(xcb_out.pad0, 0, 2); + xcb_out.num_units = num_units; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* void data */ + xcb_parts[4].iov_base = (char *) data; + xcb_parts[4].iov_len = ((num_units * format) / 8) * sizeof(char); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_change_output_property (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_atom_t property, + xcb_atom_t type, + uint8_t format, + uint8_t mode, + uint32_t num_units, + const void *data) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_CHANGE_OUTPUT_PROPERTY, + .isvoid = 1 + }; + + struct iovec xcb_parts[6]; + xcb_void_cookie_t xcb_ret; + xcb_randr_change_output_property_request_t xcb_out; + + xcb_out.output = output; + xcb_out.property = property; + xcb_out.type = type; + xcb_out.format = format; + xcb_out.mode = mode; + memset(xcb_out.pad0, 0, 2); + xcb_out.num_units = num_units; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* void data */ + xcb_parts[4].iov_base = (char *) data; + xcb_parts[4].iov_len = ((num_units * format) / 8) * sizeof(char); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +void * +xcb_randr_change_output_property_data (const xcb_randr_change_output_property_request_t *R) +{ + return (void *) (R + 1); +} + +int +xcb_randr_change_output_property_data_length (const xcb_randr_change_output_property_request_t *R) +{ + return ((R->num_units * R->format) / 8); +} + +xcb_generic_iterator_t +xcb_randr_change_output_property_data_end (const xcb_randr_change_output_property_request_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((char *) (R + 1)) + (((R->num_units * R->format) / 8)); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_void_cookie_t +xcb_randr_delete_output_property_checked (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_atom_t property) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_DELETE_OUTPUT_PROPERTY, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_delete_output_property_request_t xcb_out; + + xcb_out.output = output; + xcb_out.property = property; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_delete_output_property (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_atom_t property) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_DELETE_OUTPUT_PROPERTY, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_delete_output_property_request_t xcb_out; + + xcb_out.output = output; + xcb_out.property = property; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +int +xcb_randr_get_output_property_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_get_output_property_reply_t *_aux = (xcb_randr_get_output_property_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_get_output_property_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* data */ + xcb_block_len += (_aux->num_items * (_aux->format / 8)) * sizeof(uint8_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_get_output_property_cookie_t +xcb_randr_get_output_property (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_atom_t property, + xcb_atom_t type, + uint32_t long_offset, + uint32_t long_length, + uint8_t _delete, + uint8_t pending) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_OUTPUT_PROPERTY, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_output_property_cookie_t xcb_ret; + xcb_randr_get_output_property_request_t xcb_out; + + xcb_out.output = output; + xcb_out.property = property; + xcb_out.type = type; + xcb_out.long_offset = long_offset; + xcb_out.long_length = long_length; + xcb_out._delete = _delete; + xcb_out.pending = pending; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_output_property_cookie_t +xcb_randr_get_output_property_unchecked (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_atom_t property, + xcb_atom_t type, + uint32_t long_offset, + uint32_t long_length, + uint8_t _delete, + uint8_t pending) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_OUTPUT_PROPERTY, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_output_property_cookie_t xcb_ret; + xcb_randr_get_output_property_request_t xcb_out; + + xcb_out.output = output; + xcb_out.property = property; + xcb_out.type = type; + xcb_out.long_offset = long_offset; + xcb_out.long_length = long_length; + xcb_out._delete = _delete; + xcb_out.pending = pending; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +uint8_t * +xcb_randr_get_output_property_data (const xcb_randr_get_output_property_reply_t *R) +{ + return (uint8_t *) (R + 1); +} + +int +xcb_randr_get_output_property_data_length (const xcb_randr_get_output_property_reply_t *R) +{ + return (R->num_items * (R->format / 8)); +} + +xcb_generic_iterator_t +xcb_randr_get_output_property_data_end (const xcb_randr_get_output_property_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((uint8_t *) (R + 1)) + ((R->num_items * (R->format / 8))); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_get_output_property_reply_t * +xcb_randr_get_output_property_reply (xcb_connection_t *c, + xcb_randr_get_output_property_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_output_property_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_create_mode_sizeof (const void *_buffer, + uint32_t name_len) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_create_mode_request_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* name */ + xcb_block_len += name_len * sizeof(char); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(char); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_create_mode_cookie_t +xcb_randr_create_mode (xcb_connection_t *c, + xcb_window_t window, + xcb_randr_mode_info_t mode_info, + uint32_t name_len, + const char *name) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_CREATE_MODE, + .isvoid = 0 + }; + + struct iovec xcb_parts[6]; + xcb_randr_create_mode_cookie_t xcb_ret; + xcb_randr_create_mode_request_t xcb_out; + + xcb_out.window = window; + xcb_out.mode_info = mode_info; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* char name */ + xcb_parts[4].iov_base = (char *) name; + xcb_parts[4].iov_len = name_len * sizeof(char); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_create_mode_cookie_t +xcb_randr_create_mode_unchecked (xcb_connection_t *c, + xcb_window_t window, + xcb_randr_mode_info_t mode_info, + uint32_t name_len, + const char *name) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_CREATE_MODE, + .isvoid = 0 + }; + + struct iovec xcb_parts[6]; + xcb_randr_create_mode_cookie_t xcb_ret; + xcb_randr_create_mode_request_t xcb_out; + + xcb_out.window = window; + xcb_out.mode_info = mode_info; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* char name */ + xcb_parts[4].iov_base = (char *) name; + xcb_parts[4].iov_len = name_len * sizeof(char); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_create_mode_reply_t * +xcb_randr_create_mode_reply (xcb_connection_t *c, + xcb_randr_create_mode_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_create_mode_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +xcb_void_cookie_t +xcb_randr_destroy_mode_checked (xcb_connection_t *c, + xcb_randr_mode_t mode) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_DESTROY_MODE, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_destroy_mode_request_t xcb_out; + + xcb_out.mode = mode; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_destroy_mode (xcb_connection_t *c, + xcb_randr_mode_t mode) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_DESTROY_MODE, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_destroy_mode_request_t xcb_out; + + xcb_out.mode = mode; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_add_output_mode_checked (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_randr_mode_t mode) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_ADD_OUTPUT_MODE, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_add_output_mode_request_t xcb_out; + + xcb_out.output = output; + xcb_out.mode = mode; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_add_output_mode (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_randr_mode_t mode) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_ADD_OUTPUT_MODE, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_add_output_mode_request_t xcb_out; + + xcb_out.output = output; + xcb_out.mode = mode; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_delete_output_mode_checked (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_randr_mode_t mode) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_DELETE_OUTPUT_MODE, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_delete_output_mode_request_t xcb_out; + + xcb_out.output = output; + xcb_out.mode = mode; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_delete_output_mode (xcb_connection_t *c, + xcb_randr_output_t output, + xcb_randr_mode_t mode) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_DELETE_OUTPUT_MODE, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_delete_output_mode_request_t xcb_out; + + xcb_out.output = output; + xcb_out.mode = mode; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +int +xcb_randr_get_crtc_info_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_get_crtc_info_reply_t *_aux = (xcb_randr_get_crtc_info_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_get_crtc_info_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* outputs */ + xcb_block_len += _aux->num_outputs * sizeof(xcb_randr_output_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_output_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* possible */ + xcb_block_len += _aux->num_possible_outputs * sizeof(xcb_randr_output_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_output_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_get_crtc_info_cookie_t +xcb_randr_get_crtc_info (xcb_connection_t *c, + xcb_randr_crtc_t crtc, + xcb_timestamp_t config_timestamp) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_CRTC_INFO, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_crtc_info_cookie_t xcb_ret; + xcb_randr_get_crtc_info_request_t xcb_out; + + xcb_out.crtc = crtc; + xcb_out.config_timestamp = config_timestamp; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_crtc_info_cookie_t +xcb_randr_get_crtc_info_unchecked (xcb_connection_t *c, + xcb_randr_crtc_t crtc, + xcb_timestamp_t config_timestamp) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_CRTC_INFO, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_crtc_info_cookie_t xcb_ret; + xcb_randr_get_crtc_info_request_t xcb_out; + + xcb_out.crtc = crtc; + xcb_out.config_timestamp = config_timestamp; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_output_t * +xcb_randr_get_crtc_info_outputs (const xcb_randr_get_crtc_info_reply_t *R) +{ + return (xcb_randr_output_t *) (R + 1); +} + +int +xcb_randr_get_crtc_info_outputs_length (const xcb_randr_get_crtc_info_reply_t *R) +{ + return R->num_outputs; +} + +xcb_generic_iterator_t +xcb_randr_get_crtc_info_outputs_end (const xcb_randr_get_crtc_info_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((xcb_randr_output_t *) (R + 1)) + (R->num_outputs); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_output_t * +xcb_randr_get_crtc_info_possible (const xcb_randr_get_crtc_info_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_crtc_info_outputs_end(R); + return (xcb_randr_output_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index) + 0); +} + +int +xcb_randr_get_crtc_info_possible_length (const xcb_randr_get_crtc_info_reply_t *R) +{ + return R->num_possible_outputs; +} + +xcb_generic_iterator_t +xcb_randr_get_crtc_info_possible_end (const xcb_randr_get_crtc_info_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_crtc_info_outputs_end(R); + i.data = ((xcb_randr_output_t *) ((char*) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index))) + (R->num_possible_outputs); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_get_crtc_info_reply_t * +xcb_randr_get_crtc_info_reply (xcb_connection_t *c, + xcb_randr_get_crtc_info_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_crtc_info_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_set_crtc_config_sizeof (const void *_buffer, + uint32_t outputs_len) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_set_crtc_config_request_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* outputs */ + xcb_block_len += outputs_len * sizeof(xcb_randr_output_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_output_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_set_crtc_config_cookie_t +xcb_randr_set_crtc_config (xcb_connection_t *c, + xcb_randr_crtc_t crtc, + xcb_timestamp_t timestamp, + xcb_timestamp_t config_timestamp, + int16_t x, + int16_t y, + xcb_randr_mode_t mode, + uint16_t rotation, + uint32_t outputs_len, + const xcb_randr_output_t *outputs) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_CRTC_CONFIG, + .isvoid = 0 + }; + + struct iovec xcb_parts[6]; + xcb_randr_set_crtc_config_cookie_t xcb_ret; + xcb_randr_set_crtc_config_request_t xcb_out; + + xcb_out.crtc = crtc; + xcb_out.timestamp = timestamp; + xcb_out.config_timestamp = config_timestamp; + xcb_out.x = x; + xcb_out.y = y; + xcb_out.mode = mode; + xcb_out.rotation = rotation; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_randr_output_t outputs */ + xcb_parts[4].iov_base = (char *) outputs; + xcb_parts[4].iov_len = outputs_len * sizeof(xcb_timestamp_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_set_crtc_config_cookie_t +xcb_randr_set_crtc_config_unchecked (xcb_connection_t *c, + xcb_randr_crtc_t crtc, + xcb_timestamp_t timestamp, + xcb_timestamp_t config_timestamp, + int16_t x, + int16_t y, + xcb_randr_mode_t mode, + uint16_t rotation, + uint32_t outputs_len, + const xcb_randr_output_t *outputs) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_CRTC_CONFIG, + .isvoid = 0 + }; + + struct iovec xcb_parts[6]; + xcb_randr_set_crtc_config_cookie_t xcb_ret; + xcb_randr_set_crtc_config_request_t xcb_out; + + xcb_out.crtc = crtc; + xcb_out.timestamp = timestamp; + xcb_out.config_timestamp = config_timestamp; + xcb_out.x = x; + xcb_out.y = y; + xcb_out.mode = mode; + xcb_out.rotation = rotation; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_randr_output_t outputs */ + xcb_parts[4].iov_base = (char *) outputs; + xcb_parts[4].iov_len = outputs_len * sizeof(xcb_timestamp_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_set_crtc_config_reply_t * +xcb_randr_set_crtc_config_reply (xcb_connection_t *c, + xcb_randr_set_crtc_config_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_set_crtc_config_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +xcb_randr_get_crtc_gamma_size_cookie_t +xcb_randr_get_crtc_gamma_size (xcb_connection_t *c, + xcb_randr_crtc_t crtc) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_CRTC_GAMMA_SIZE, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_crtc_gamma_size_cookie_t xcb_ret; + xcb_randr_get_crtc_gamma_size_request_t xcb_out; + + xcb_out.crtc = crtc; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_crtc_gamma_size_cookie_t +xcb_randr_get_crtc_gamma_size_unchecked (xcb_connection_t *c, + xcb_randr_crtc_t crtc) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_CRTC_GAMMA_SIZE, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_crtc_gamma_size_cookie_t xcb_ret; + xcb_randr_get_crtc_gamma_size_request_t xcb_out; + + xcb_out.crtc = crtc; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_crtc_gamma_size_reply_t * +xcb_randr_get_crtc_gamma_size_reply (xcb_connection_t *c, + xcb_randr_get_crtc_gamma_size_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_crtc_gamma_size_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_get_crtc_gamma_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_get_crtc_gamma_reply_t *_aux = (xcb_randr_get_crtc_gamma_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_get_crtc_gamma_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* red */ + xcb_block_len += _aux->size * sizeof(uint16_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* green */ + xcb_block_len += _aux->size * sizeof(uint16_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* blue */ + xcb_block_len += _aux->size * sizeof(uint16_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_get_crtc_gamma_cookie_t +xcb_randr_get_crtc_gamma (xcb_connection_t *c, + xcb_randr_crtc_t crtc) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_CRTC_GAMMA, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_crtc_gamma_cookie_t xcb_ret; + xcb_randr_get_crtc_gamma_request_t xcb_out; + + xcb_out.crtc = crtc; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_crtc_gamma_cookie_t +xcb_randr_get_crtc_gamma_unchecked (xcb_connection_t *c, + xcb_randr_crtc_t crtc) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_CRTC_GAMMA, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_crtc_gamma_cookie_t xcb_ret; + xcb_randr_get_crtc_gamma_request_t xcb_out; + + xcb_out.crtc = crtc; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +uint16_t * +xcb_randr_get_crtc_gamma_red (const xcb_randr_get_crtc_gamma_reply_t *R) +{ + return (uint16_t *) (R + 1); +} + +int +xcb_randr_get_crtc_gamma_red_length (const xcb_randr_get_crtc_gamma_reply_t *R) +{ + return R->size; +} + +xcb_generic_iterator_t +xcb_randr_get_crtc_gamma_red_end (const xcb_randr_get_crtc_gamma_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((uint16_t *) (R + 1)) + (R->size); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +uint16_t * +xcb_randr_get_crtc_gamma_green (const xcb_randr_get_crtc_gamma_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_crtc_gamma_red_end(R); + return (uint16_t *) ((char *) prev.data + XCB_TYPE_PAD(uint16_t, prev.index) + 0); +} + +int +xcb_randr_get_crtc_gamma_green_length (const xcb_randr_get_crtc_gamma_reply_t *R) +{ + return R->size; +} + +xcb_generic_iterator_t +xcb_randr_get_crtc_gamma_green_end (const xcb_randr_get_crtc_gamma_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_crtc_gamma_red_end(R); + i.data = ((uint16_t *) ((char*) prev.data + XCB_TYPE_PAD(uint16_t, prev.index))) + (R->size); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +uint16_t * +xcb_randr_get_crtc_gamma_blue (const xcb_randr_get_crtc_gamma_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_crtc_gamma_green_end(R); + return (uint16_t *) ((char *) prev.data + XCB_TYPE_PAD(uint16_t, prev.index) + 0); +} + +int +xcb_randr_get_crtc_gamma_blue_length (const xcb_randr_get_crtc_gamma_reply_t *R) +{ + return R->size; +} + +xcb_generic_iterator_t +xcb_randr_get_crtc_gamma_blue_end (const xcb_randr_get_crtc_gamma_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_crtc_gamma_green_end(R); + i.data = ((uint16_t *) ((char*) prev.data + XCB_TYPE_PAD(uint16_t, prev.index))) + (R->size); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_get_crtc_gamma_reply_t * +xcb_randr_get_crtc_gamma_reply (xcb_connection_t *c, + xcb_randr_get_crtc_gamma_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_crtc_gamma_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_set_crtc_gamma_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_set_crtc_gamma_request_t *_aux = (xcb_randr_set_crtc_gamma_request_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_set_crtc_gamma_request_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* red */ + xcb_block_len += _aux->size * sizeof(uint16_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* green */ + xcb_block_len += _aux->size * sizeof(uint16_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* blue */ + xcb_block_len += _aux->size * sizeof(uint16_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint16_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_void_cookie_t +xcb_randr_set_crtc_gamma_checked (xcb_connection_t *c, + xcb_randr_crtc_t crtc, + uint16_t size, + const uint16_t *red, + const uint16_t *green, + const uint16_t *blue) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 8, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_CRTC_GAMMA, + .isvoid = 1 + }; + + struct iovec xcb_parts[10]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_crtc_gamma_request_t xcb_out; + + xcb_out.crtc = crtc; + xcb_out.size = size; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* uint16_t red */ + xcb_parts[4].iov_base = (char *) red; + xcb_parts[4].iov_len = size * sizeof(uint16_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + /* uint16_t green */ + xcb_parts[6].iov_base = (char *) green; + xcb_parts[6].iov_len = size * sizeof(uint16_t); + xcb_parts[7].iov_base = 0; + xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; + /* uint16_t blue */ + xcb_parts[8].iov_base = (char *) blue; + xcb_parts[8].iov_len = size * sizeof(uint16_t); + xcb_parts[9].iov_base = 0; + xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_set_crtc_gamma (xcb_connection_t *c, + xcb_randr_crtc_t crtc, + uint16_t size, + const uint16_t *red, + const uint16_t *green, + const uint16_t *blue) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 8, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_CRTC_GAMMA, + .isvoid = 1 + }; + + struct iovec xcb_parts[10]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_crtc_gamma_request_t xcb_out; + + xcb_out.crtc = crtc; + xcb_out.size = size; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* uint16_t red */ + xcb_parts[4].iov_base = (char *) red; + xcb_parts[4].iov_len = size * sizeof(uint16_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + /* uint16_t green */ + xcb_parts[6].iov_base = (char *) green; + xcb_parts[6].iov_len = size * sizeof(uint16_t); + xcb_parts[7].iov_base = 0; + xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; + /* uint16_t blue */ + xcb_parts[8].iov_base = (char *) blue; + xcb_parts[8].iov_len = size * sizeof(uint16_t); + xcb_parts[9].iov_base = 0; + xcb_parts[9].iov_len = -xcb_parts[8].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +uint16_t * +xcb_randr_set_crtc_gamma_red (const xcb_randr_set_crtc_gamma_request_t *R) +{ + return (uint16_t *) (R + 1); +} + +int +xcb_randr_set_crtc_gamma_red_length (const xcb_randr_set_crtc_gamma_request_t *R) +{ + return R->size; +} + +xcb_generic_iterator_t +xcb_randr_set_crtc_gamma_red_end (const xcb_randr_set_crtc_gamma_request_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((uint16_t *) (R + 1)) + (R->size); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +uint16_t * +xcb_randr_set_crtc_gamma_green (const xcb_randr_set_crtc_gamma_request_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_set_crtc_gamma_red_end(R); + return (uint16_t *) ((char *) prev.data + XCB_TYPE_PAD(uint16_t, prev.index) + 0); +} + +int +xcb_randr_set_crtc_gamma_green_length (const xcb_randr_set_crtc_gamma_request_t *R) +{ + return R->size; +} + +xcb_generic_iterator_t +xcb_randr_set_crtc_gamma_green_end (const xcb_randr_set_crtc_gamma_request_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_set_crtc_gamma_red_end(R); + i.data = ((uint16_t *) ((char*) prev.data + XCB_TYPE_PAD(uint16_t, prev.index))) + (R->size); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +uint16_t * +xcb_randr_set_crtc_gamma_blue (const xcb_randr_set_crtc_gamma_request_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_set_crtc_gamma_green_end(R); + return (uint16_t *) ((char *) prev.data + XCB_TYPE_PAD(uint16_t, prev.index) + 0); +} + +int +xcb_randr_set_crtc_gamma_blue_length (const xcb_randr_set_crtc_gamma_request_t *R) +{ + return R->size; +} + +xcb_generic_iterator_t +xcb_randr_set_crtc_gamma_blue_end (const xcb_randr_set_crtc_gamma_request_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_set_crtc_gamma_green_end(R); + i.data = ((uint16_t *) ((char*) prev.data + XCB_TYPE_PAD(uint16_t, prev.index))) + (R->size); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +int +xcb_randr_get_screen_resources_current_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_get_screen_resources_current_reply_t *_aux = (xcb_randr_get_screen_resources_current_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_get_screen_resources_current_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* crtcs */ + xcb_block_len += _aux->num_crtcs * sizeof(uint32_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_crtc_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* outputs */ + xcb_block_len += _aux->num_outputs * sizeof(uint32_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_output_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* modes */ + xcb_block_len += _aux->num_modes * sizeof(xcb_randr_mode_info_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_mode_info_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* names */ + xcb_block_len += _aux->names_len * sizeof(uint8_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint8_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_get_screen_resources_current_cookie_t +xcb_randr_get_screen_resources_current (xcb_connection_t *c, + xcb_window_t window) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_SCREEN_RESOURCES_CURRENT, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_screen_resources_current_cookie_t xcb_ret; + xcb_randr_get_screen_resources_current_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_screen_resources_current_cookie_t +xcb_randr_get_screen_resources_current_unchecked (xcb_connection_t *c, + xcb_window_t window) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_SCREEN_RESOURCES_CURRENT, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_screen_resources_current_cookie_t xcb_ret; + xcb_randr_get_screen_resources_current_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_crtc_t * +xcb_randr_get_screen_resources_current_crtcs (const xcb_randr_get_screen_resources_current_reply_t *R) +{ + return (xcb_randr_crtc_t *) (R + 1); +} + +int +xcb_randr_get_screen_resources_current_crtcs_length (const xcb_randr_get_screen_resources_current_reply_t *R) +{ + return R->num_crtcs; +} + +xcb_generic_iterator_t +xcb_randr_get_screen_resources_current_crtcs_end (const xcb_randr_get_screen_resources_current_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((xcb_randr_crtc_t *) (R + 1)) + (R->num_crtcs); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_output_t * +xcb_randr_get_screen_resources_current_outputs (const xcb_randr_get_screen_resources_current_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_current_crtcs_end(R); + return (xcb_randr_output_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index) + 0); +} + +int +xcb_randr_get_screen_resources_current_outputs_length (const xcb_randr_get_screen_resources_current_reply_t *R) +{ + return R->num_outputs; +} + +xcb_generic_iterator_t +xcb_randr_get_screen_resources_current_outputs_end (const xcb_randr_get_screen_resources_current_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_current_crtcs_end(R); + i.data = ((xcb_randr_output_t *) ((char*) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index))) + (R->num_outputs); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_mode_info_t * +xcb_randr_get_screen_resources_current_modes (const xcb_randr_get_screen_resources_current_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_current_outputs_end(R); + return (xcb_randr_mode_info_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_mode_info_t, prev.index) + 0); +} + +int +xcb_randr_get_screen_resources_current_modes_length (const xcb_randr_get_screen_resources_current_reply_t *R) +{ + return R->num_modes; +} + +xcb_randr_mode_info_iterator_t +xcb_randr_get_screen_resources_current_modes_iterator (const xcb_randr_get_screen_resources_current_reply_t *R) +{ + xcb_randr_mode_info_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_screen_resources_current_outputs_end(R); + i.data = (xcb_randr_mode_info_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_mode_info_t, prev.index)); + i.rem = R->num_modes; + i.index = (char *) i.data - (char *) R; + return i; +} + +uint8_t * +xcb_randr_get_screen_resources_current_names (const xcb_randr_get_screen_resources_current_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_mode_info_end(xcb_randr_get_screen_resources_current_modes_iterator(R)); + return (uint8_t *) ((char *) prev.data + XCB_TYPE_PAD(uint8_t, prev.index) + 0); +} + +int +xcb_randr_get_screen_resources_current_names_length (const xcb_randr_get_screen_resources_current_reply_t *R) +{ + return R->names_len; +} + +xcb_generic_iterator_t +xcb_randr_get_screen_resources_current_names_end (const xcb_randr_get_screen_resources_current_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_mode_info_end(xcb_randr_get_screen_resources_current_modes_iterator(R)); + i.data = ((uint8_t *) ((char*) prev.data + XCB_TYPE_PAD(uint8_t, prev.index))) + (R->names_len); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_get_screen_resources_current_reply_t * +xcb_randr_get_screen_resources_current_reply (xcb_connection_t *c, + xcb_randr_get_screen_resources_current_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_screen_resources_current_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_set_crtc_transform_sizeof (const void *_buffer, + uint32_t filter_params_len) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_set_crtc_transform_request_t *_aux = (xcb_randr_set_crtc_transform_request_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_set_crtc_transform_request_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* filter_name */ + xcb_block_len += _aux->filter_len * sizeof(char); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(char); + xcb_align_to = 4; + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* filter_params */ + xcb_block_len += filter_params_len * sizeof(xcb_render_fixed_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_render_fixed_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_void_cookie_t +xcb_randr_set_crtc_transform_checked (xcb_connection_t *c, + xcb_randr_crtc_t crtc, + xcb_render_transform_t transform, + uint16_t filter_len, + const char *filter_name, + uint32_t filter_params_len, + const xcb_render_fixed_t *filter_params) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 6, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_CRTC_TRANSFORM, + .isvoid = 1 + }; + + struct iovec xcb_parts[8]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_crtc_transform_request_t xcb_out; + + xcb_out.crtc = crtc; + xcb_out.transform = transform; + xcb_out.filter_len = filter_len; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* char filter_name */ + xcb_parts[4].iov_base = (char *) filter_name; + xcb_parts[4].iov_len = filter_len * sizeof(char); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + /* xcb_render_fixed_t filter_params */ + xcb_parts[6].iov_base = (char *) filter_params; + xcb_parts[6].iov_len = filter_params_len * sizeof(xcb_render_fixed_t); + xcb_parts[7].iov_base = 0; + xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_set_crtc_transform (xcb_connection_t *c, + xcb_randr_crtc_t crtc, + xcb_render_transform_t transform, + uint16_t filter_len, + const char *filter_name, + uint32_t filter_params_len, + const xcb_render_fixed_t *filter_params) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 6, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_CRTC_TRANSFORM, + .isvoid = 1 + }; + + struct iovec xcb_parts[8]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_crtc_transform_request_t xcb_out; + + xcb_out.crtc = crtc; + xcb_out.transform = transform; + xcb_out.filter_len = filter_len; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* char filter_name */ + xcb_parts[4].iov_base = (char *) filter_name; + xcb_parts[4].iov_len = filter_len * sizeof(char); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + /* xcb_render_fixed_t filter_params */ + xcb_parts[6].iov_base = (char *) filter_params; + xcb_parts[6].iov_len = filter_params_len * sizeof(xcb_render_fixed_t); + xcb_parts[7].iov_base = 0; + xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +char * +xcb_randr_set_crtc_transform_filter_name (const xcb_randr_set_crtc_transform_request_t *R) +{ + return (char *) (R + 1); +} + +int +xcb_randr_set_crtc_transform_filter_name_length (const xcb_randr_set_crtc_transform_request_t *R) +{ + return R->filter_len; +} + +xcb_generic_iterator_t +xcb_randr_set_crtc_transform_filter_name_end (const xcb_randr_set_crtc_transform_request_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((char *) (R + 1)) + (R->filter_len); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_render_fixed_t * +xcb_randr_set_crtc_transform_filter_params (const xcb_randr_set_crtc_transform_request_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_set_crtc_transform_filter_name_end(R); + return (xcb_render_fixed_t *) ((char *) prev.data + ((-prev.index) & (4 - 1)) + 0); +} + +int +xcb_randr_set_crtc_transform_filter_params_length (const xcb_randr_set_crtc_transform_request_t *R) +{ + return ((((char*)R) + R->length * 4) - (char*)(xcb_randr_set_crtc_transform_filter_params(R))) / sizeof(xcb_render_fixed_t); +} + +xcb_generic_iterator_t +xcb_randr_set_crtc_transform_filter_params_end (const xcb_randr_set_crtc_transform_request_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_set_crtc_transform_filter_name_end(R); + i.data = ((xcb_render_fixed_t *) ((char*) prev.data + ((-prev.index) & (4 - 1)))) + (((((char*)R) + R->length * 4) - (char*)(xcb_randr_set_crtc_transform_filter_params(R))) / sizeof(xcb_render_fixed_t)); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +int +xcb_randr_get_crtc_transform_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_get_crtc_transform_reply_t *_aux = (xcb_randr_get_crtc_transform_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_get_crtc_transform_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* pending_filter_name */ + xcb_block_len += _aux->pending_len * sizeof(char); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(char); + xcb_align_to = 4; + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* pending_params */ + xcb_block_len += _aux->pending_nparams * sizeof(xcb_render_fixed_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_render_fixed_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* current_filter_name */ + xcb_block_len += _aux->current_len * sizeof(char); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(char); + xcb_align_to = 4; + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* current_params */ + xcb_block_len += _aux->current_nparams * sizeof(xcb_render_fixed_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_render_fixed_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_get_crtc_transform_cookie_t +xcb_randr_get_crtc_transform (xcb_connection_t *c, + xcb_randr_crtc_t crtc) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_CRTC_TRANSFORM, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_crtc_transform_cookie_t xcb_ret; + xcb_randr_get_crtc_transform_request_t xcb_out; + + xcb_out.crtc = crtc; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_crtc_transform_cookie_t +xcb_randr_get_crtc_transform_unchecked (xcb_connection_t *c, + xcb_randr_crtc_t crtc) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_CRTC_TRANSFORM, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_crtc_transform_cookie_t xcb_ret; + xcb_randr_get_crtc_transform_request_t xcb_out; + + xcb_out.crtc = crtc; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +char * +xcb_randr_get_crtc_transform_pending_filter_name (const xcb_randr_get_crtc_transform_reply_t *R) +{ + return (char *) (R + 1); +} + +int +xcb_randr_get_crtc_transform_pending_filter_name_length (const xcb_randr_get_crtc_transform_reply_t *R) +{ + return R->pending_len; +} + +xcb_generic_iterator_t +xcb_randr_get_crtc_transform_pending_filter_name_end (const xcb_randr_get_crtc_transform_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((char *) (R + 1)) + (R->pending_len); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_render_fixed_t * +xcb_randr_get_crtc_transform_pending_params (const xcb_randr_get_crtc_transform_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_crtc_transform_pending_filter_name_end(R); + return (xcb_render_fixed_t *) ((char *) prev.data + ((-prev.index) & (4 - 1)) + 0); +} + +int +xcb_randr_get_crtc_transform_pending_params_length (const xcb_randr_get_crtc_transform_reply_t *R) +{ + return R->pending_nparams; +} + +xcb_generic_iterator_t +xcb_randr_get_crtc_transform_pending_params_end (const xcb_randr_get_crtc_transform_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_crtc_transform_pending_filter_name_end(R); + i.data = ((xcb_render_fixed_t *) ((char*) prev.data + ((-prev.index) & (4 - 1)))) + (R->pending_nparams); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +char * +xcb_randr_get_crtc_transform_current_filter_name (const xcb_randr_get_crtc_transform_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_crtc_transform_pending_params_end(R); + return (char *) ((char *) prev.data + XCB_TYPE_PAD(char, prev.index) + 0); +} + +int +xcb_randr_get_crtc_transform_current_filter_name_length (const xcb_randr_get_crtc_transform_reply_t *R) +{ + return R->current_len; +} + +xcb_generic_iterator_t +xcb_randr_get_crtc_transform_current_filter_name_end (const xcb_randr_get_crtc_transform_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_crtc_transform_pending_params_end(R); + i.data = ((char *) ((char*) prev.data + XCB_TYPE_PAD(char, prev.index))) + (R->current_len); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_render_fixed_t * +xcb_randr_get_crtc_transform_current_params (const xcb_randr_get_crtc_transform_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_crtc_transform_current_filter_name_end(R); + return (xcb_render_fixed_t *) ((char *) prev.data + ((-prev.index) & (4 - 1)) + 0); +} + +int +xcb_randr_get_crtc_transform_current_params_length (const xcb_randr_get_crtc_transform_reply_t *R) +{ + return R->current_nparams; +} + +xcb_generic_iterator_t +xcb_randr_get_crtc_transform_current_params_end (const xcb_randr_get_crtc_transform_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_crtc_transform_current_filter_name_end(R); + i.data = ((xcb_render_fixed_t *) ((char*) prev.data + ((-prev.index) & (4 - 1)))) + (R->current_nparams); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_get_crtc_transform_reply_t * +xcb_randr_get_crtc_transform_reply (xcb_connection_t *c, + xcb_randr_get_crtc_transform_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_crtc_transform_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +xcb_randr_get_panning_cookie_t +xcb_randr_get_panning (xcb_connection_t *c, + xcb_randr_crtc_t crtc) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_PANNING, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_panning_cookie_t xcb_ret; + xcb_randr_get_panning_request_t xcb_out; + + xcb_out.crtc = crtc; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_panning_cookie_t +xcb_randr_get_panning_unchecked (xcb_connection_t *c, + xcb_randr_crtc_t crtc) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_PANNING, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_panning_cookie_t xcb_ret; + xcb_randr_get_panning_request_t xcb_out; + + xcb_out.crtc = crtc; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_panning_reply_t * +xcb_randr_get_panning_reply (xcb_connection_t *c, + xcb_randr_get_panning_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_panning_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +xcb_randr_set_panning_cookie_t +xcb_randr_set_panning (xcb_connection_t *c, + xcb_randr_crtc_t crtc, + xcb_timestamp_t timestamp, + uint16_t left, + uint16_t top, + uint16_t width, + uint16_t height, + uint16_t track_left, + uint16_t track_top, + uint16_t track_width, + uint16_t track_height, + int16_t border_left, + int16_t border_top, + int16_t border_right, + int16_t border_bottom) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_PANNING, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_set_panning_cookie_t xcb_ret; + xcb_randr_set_panning_request_t xcb_out; + + xcb_out.crtc = crtc; + xcb_out.timestamp = timestamp; + xcb_out.left = left; + xcb_out.top = top; + xcb_out.width = width; + xcb_out.height = height; + xcb_out.track_left = track_left; + xcb_out.track_top = track_top; + xcb_out.track_width = track_width; + xcb_out.track_height = track_height; + xcb_out.border_left = border_left; + xcb_out.border_top = border_top; + xcb_out.border_right = border_right; + xcb_out.border_bottom = border_bottom; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_set_panning_cookie_t +xcb_randr_set_panning_unchecked (xcb_connection_t *c, + xcb_randr_crtc_t crtc, + xcb_timestamp_t timestamp, + uint16_t left, + uint16_t top, + uint16_t width, + uint16_t height, + uint16_t track_left, + uint16_t track_top, + uint16_t track_width, + uint16_t track_height, + int16_t border_left, + int16_t border_top, + int16_t border_right, + int16_t border_bottom) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_PANNING, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_set_panning_cookie_t xcb_ret; + xcb_randr_set_panning_request_t xcb_out; + + xcb_out.crtc = crtc; + xcb_out.timestamp = timestamp; + xcb_out.left = left; + xcb_out.top = top; + xcb_out.width = width; + xcb_out.height = height; + xcb_out.track_left = track_left; + xcb_out.track_top = track_top; + xcb_out.track_width = track_width; + xcb_out.track_height = track_height; + xcb_out.border_left = border_left; + xcb_out.border_top = border_top; + xcb_out.border_right = border_right; + xcb_out.border_bottom = border_bottom; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_set_panning_reply_t * +xcb_randr_set_panning_reply (xcb_connection_t *c, + xcb_randr_set_panning_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_set_panning_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +xcb_void_cookie_t +xcb_randr_set_output_primary_checked (xcb_connection_t *c, + xcb_window_t window, + xcb_randr_output_t output) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_OUTPUT_PRIMARY, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_output_primary_request_t xcb_out; + + xcb_out.window = window; + xcb_out.output = output; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_set_output_primary (xcb_connection_t *c, + xcb_window_t window, + xcb_randr_output_t output) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_OUTPUT_PRIMARY, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_output_primary_request_t xcb_out; + + xcb_out.window = window; + xcb_out.output = output; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_output_primary_cookie_t +xcb_randr_get_output_primary (xcb_connection_t *c, + xcb_window_t window) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_OUTPUT_PRIMARY, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_output_primary_cookie_t xcb_ret; + xcb_randr_get_output_primary_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_output_primary_cookie_t +xcb_randr_get_output_primary_unchecked (xcb_connection_t *c, + xcb_window_t window) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_OUTPUT_PRIMARY, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_output_primary_cookie_t xcb_ret; + xcb_randr_get_output_primary_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_output_primary_reply_t * +xcb_randr_get_output_primary_reply (xcb_connection_t *c, + xcb_randr_get_output_primary_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_output_primary_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_get_providers_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_get_providers_reply_t *_aux = (xcb_randr_get_providers_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_get_providers_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* providers */ + xcb_block_len += _aux->num_providers * sizeof(xcb_randr_provider_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_provider_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_get_providers_cookie_t +xcb_randr_get_providers (xcb_connection_t *c, + xcb_window_t window) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_PROVIDERS, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_providers_cookie_t xcb_ret; + xcb_randr_get_providers_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_providers_cookie_t +xcb_randr_get_providers_unchecked (xcb_connection_t *c, + xcb_window_t window) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_PROVIDERS, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_providers_cookie_t xcb_ret; + xcb_randr_get_providers_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_provider_t * +xcb_randr_get_providers_providers (const xcb_randr_get_providers_reply_t *R) +{ + return (xcb_randr_provider_t *) (R + 1); +} + +int +xcb_randr_get_providers_providers_length (const xcb_randr_get_providers_reply_t *R) +{ + return R->num_providers; +} + +xcb_generic_iterator_t +xcb_randr_get_providers_providers_end (const xcb_randr_get_providers_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((xcb_randr_provider_t *) (R + 1)) + (R->num_providers); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_get_providers_reply_t * +xcb_randr_get_providers_reply (xcb_connection_t *c, + xcb_randr_get_providers_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_providers_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_get_provider_info_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_get_provider_info_reply_t *_aux = (xcb_randr_get_provider_info_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_get_provider_info_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* crtcs */ + xcb_block_len += _aux->num_crtcs * sizeof(uint32_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_crtc_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* outputs */ + xcb_block_len += _aux->num_outputs * sizeof(uint32_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_output_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* associated_providers */ + xcb_block_len += _aux->num_associated_providers * sizeof(uint32_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_provider_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* associated_capability */ + xcb_block_len += _aux->num_associated_providers * sizeof(uint32_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(uint32_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* name */ + xcb_block_len += _aux->name_len * sizeof(char); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(char); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_get_provider_info_cookie_t +xcb_randr_get_provider_info (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_timestamp_t config_timestamp) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_PROVIDER_INFO, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_provider_info_cookie_t xcb_ret; + xcb_randr_get_provider_info_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.config_timestamp = config_timestamp; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_provider_info_cookie_t +xcb_randr_get_provider_info_unchecked (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_timestamp_t config_timestamp) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_PROVIDER_INFO, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_provider_info_cookie_t xcb_ret; + xcb_randr_get_provider_info_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.config_timestamp = config_timestamp; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_crtc_t * +xcb_randr_get_provider_info_crtcs (const xcb_randr_get_provider_info_reply_t *R) +{ + return (xcb_randr_crtc_t *) (R + 1); +} + +int +xcb_randr_get_provider_info_crtcs_length (const xcb_randr_get_provider_info_reply_t *R) +{ + return R->num_crtcs; +} + +xcb_generic_iterator_t +xcb_randr_get_provider_info_crtcs_end (const xcb_randr_get_provider_info_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((xcb_randr_crtc_t *) (R + 1)) + (R->num_crtcs); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_output_t * +xcb_randr_get_provider_info_outputs (const xcb_randr_get_provider_info_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_provider_info_crtcs_end(R); + return (xcb_randr_output_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index) + 0); +} + +int +xcb_randr_get_provider_info_outputs_length (const xcb_randr_get_provider_info_reply_t *R) +{ + return R->num_outputs; +} + +xcb_generic_iterator_t +xcb_randr_get_provider_info_outputs_end (const xcb_randr_get_provider_info_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_provider_info_crtcs_end(R); + i.data = ((xcb_randr_output_t *) ((char*) prev.data + XCB_TYPE_PAD(xcb_randr_output_t, prev.index))) + (R->num_outputs); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_provider_t * +xcb_randr_get_provider_info_associated_providers (const xcb_randr_get_provider_info_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_provider_info_outputs_end(R); + return (xcb_randr_provider_t *) ((char *) prev.data + XCB_TYPE_PAD(xcb_randr_provider_t, prev.index) + 0); +} + +int +xcb_randr_get_provider_info_associated_providers_length (const xcb_randr_get_provider_info_reply_t *R) +{ + return R->num_associated_providers; +} + +xcb_generic_iterator_t +xcb_randr_get_provider_info_associated_providers_end (const xcb_randr_get_provider_info_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_provider_info_outputs_end(R); + i.data = ((xcb_randr_provider_t *) ((char*) prev.data + XCB_TYPE_PAD(xcb_randr_provider_t, prev.index))) + (R->num_associated_providers); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +uint32_t * +xcb_randr_get_provider_info_associated_capability (const xcb_randr_get_provider_info_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_provider_info_associated_providers_end(R); + return (uint32_t *) ((char *) prev.data + XCB_TYPE_PAD(uint32_t, prev.index) + 0); +} + +int +xcb_randr_get_provider_info_associated_capability_length (const xcb_randr_get_provider_info_reply_t *R) +{ + return R->num_associated_providers; +} + +xcb_generic_iterator_t +xcb_randr_get_provider_info_associated_capability_end (const xcb_randr_get_provider_info_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_provider_info_associated_providers_end(R); + i.data = ((uint32_t *) ((char*) prev.data + XCB_TYPE_PAD(uint32_t, prev.index))) + (R->num_associated_providers); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +char * +xcb_randr_get_provider_info_name (const xcb_randr_get_provider_info_reply_t *R) +{ + xcb_generic_iterator_t prev = xcb_randr_get_provider_info_associated_capability_end(R); + return (char *) ((char *) prev.data + XCB_TYPE_PAD(char, prev.index) + 0); +} + +int +xcb_randr_get_provider_info_name_length (const xcb_randr_get_provider_info_reply_t *R) +{ + return R->name_len; +} + +xcb_generic_iterator_t +xcb_randr_get_provider_info_name_end (const xcb_randr_get_provider_info_reply_t *R) +{ + xcb_generic_iterator_t i; + xcb_generic_iterator_t prev = xcb_randr_get_provider_info_associated_capability_end(R); + i.data = ((char *) ((char*) prev.data + XCB_TYPE_PAD(char, prev.index))) + (R->name_len); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_get_provider_info_reply_t * +xcb_randr_get_provider_info_reply (xcb_connection_t *c, + xcb_randr_get_provider_info_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_provider_info_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +xcb_void_cookie_t +xcb_randr_set_provider_offload_sink_checked (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_randr_provider_t sink_provider, + xcb_timestamp_t config_timestamp) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_PROVIDER_OFFLOAD_SINK, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_provider_offload_sink_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.sink_provider = sink_provider; + xcb_out.config_timestamp = config_timestamp; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_set_provider_offload_sink (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_randr_provider_t sink_provider, + xcb_timestamp_t config_timestamp) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_PROVIDER_OFFLOAD_SINK, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_provider_offload_sink_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.sink_provider = sink_provider; + xcb_out.config_timestamp = config_timestamp; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_set_provider_output_source_checked (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_randr_provider_t source_provider, + xcb_timestamp_t config_timestamp) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_PROVIDER_OUTPUT_SOURCE, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_provider_output_source_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.source_provider = source_provider; + xcb_out.config_timestamp = config_timestamp; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_set_provider_output_source (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_randr_provider_t source_provider, + xcb_timestamp_t config_timestamp) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_PROVIDER_OUTPUT_SOURCE, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_provider_output_source_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.source_provider = source_provider; + xcb_out.config_timestamp = config_timestamp; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +int +xcb_randr_list_provider_properties_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_list_provider_properties_reply_t *_aux = (xcb_randr_list_provider_properties_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_list_provider_properties_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* atoms */ + xcb_block_len += _aux->num_atoms * sizeof(xcb_atom_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_atom_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_list_provider_properties_cookie_t +xcb_randr_list_provider_properties (xcb_connection_t *c, + xcb_randr_provider_t provider) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_LIST_PROVIDER_PROPERTIES, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_list_provider_properties_cookie_t xcb_ret; + xcb_randr_list_provider_properties_request_t xcb_out; + + xcb_out.provider = provider; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_list_provider_properties_cookie_t +xcb_randr_list_provider_properties_unchecked (xcb_connection_t *c, + xcb_randr_provider_t provider) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_LIST_PROVIDER_PROPERTIES, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_list_provider_properties_cookie_t xcb_ret; + xcb_randr_list_provider_properties_request_t xcb_out; + + xcb_out.provider = provider; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_atom_t * +xcb_randr_list_provider_properties_atoms (const xcb_randr_list_provider_properties_reply_t *R) +{ + return (xcb_atom_t *) (R + 1); +} + +int +xcb_randr_list_provider_properties_atoms_length (const xcb_randr_list_provider_properties_reply_t *R) +{ + return R->num_atoms; +} + +xcb_generic_iterator_t +xcb_randr_list_provider_properties_atoms_end (const xcb_randr_list_provider_properties_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((xcb_atom_t *) (R + 1)) + (R->num_atoms); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_list_provider_properties_reply_t * +xcb_randr_list_provider_properties_reply (xcb_connection_t *c, + xcb_randr_list_provider_properties_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_list_provider_properties_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_query_provider_property_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_query_provider_property_reply_t *_aux = (xcb_randr_query_provider_property_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_query_provider_property_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* valid_values */ + xcb_block_len += _aux->length * sizeof(int32_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(int32_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_query_provider_property_cookie_t +xcb_randr_query_provider_property (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_atom_t property) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_QUERY_PROVIDER_PROPERTY, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_query_provider_property_cookie_t xcb_ret; + xcb_randr_query_provider_property_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.property = property; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_query_provider_property_cookie_t +xcb_randr_query_provider_property_unchecked (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_atom_t property) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_QUERY_PROVIDER_PROPERTY, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_query_provider_property_cookie_t xcb_ret; + xcb_randr_query_provider_property_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.property = property; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +int32_t * +xcb_randr_query_provider_property_valid_values (const xcb_randr_query_provider_property_reply_t *R) +{ + return (int32_t *) (R + 1); +} + +int +xcb_randr_query_provider_property_valid_values_length (const xcb_randr_query_provider_property_reply_t *R) +{ + return R->length; +} + +xcb_generic_iterator_t +xcb_randr_query_provider_property_valid_values_end (const xcb_randr_query_provider_property_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((int32_t *) (R + 1)) + (R->length); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_query_provider_property_reply_t * +xcb_randr_query_provider_property_reply (xcb_connection_t *c, + xcb_randr_query_provider_property_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_query_provider_property_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_configure_provider_property_sizeof (const void *_buffer, + uint32_t values_len) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_configure_provider_property_request_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* values */ + xcb_block_len += values_len * sizeof(int32_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(int32_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_void_cookie_t +xcb_randr_configure_provider_property_checked (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_atom_t property, + uint8_t pending, + uint8_t range, + uint32_t values_len, + const int32_t *values) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_CONFIGURE_PROVIDER_PROPERTY, + .isvoid = 1 + }; + + struct iovec xcb_parts[6]; + xcb_void_cookie_t xcb_ret; + xcb_randr_configure_provider_property_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.property = property; + xcb_out.pending = pending; + xcb_out.range = range; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* int32_t values */ + xcb_parts[4].iov_base = (char *) values; + xcb_parts[4].iov_len = values_len * sizeof(int32_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_configure_provider_property (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_atom_t property, + uint8_t pending, + uint8_t range, + uint32_t values_len, + const int32_t *values) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_CONFIGURE_PROVIDER_PROPERTY, + .isvoid = 1 + }; + + struct iovec xcb_parts[6]; + xcb_void_cookie_t xcb_ret; + xcb_randr_configure_provider_property_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.property = property; + xcb_out.pending = pending; + xcb_out.range = range; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* int32_t values */ + xcb_parts[4].iov_base = (char *) values; + xcb_parts[4].iov_len = values_len * sizeof(int32_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +int32_t * +xcb_randr_configure_provider_property_values (const xcb_randr_configure_provider_property_request_t *R) +{ + return (int32_t *) (R + 1); +} + +int +xcb_randr_configure_provider_property_values_length (const xcb_randr_configure_provider_property_request_t *R) +{ + return (((R->length * 4) - sizeof(xcb_randr_configure_provider_property_request_t))/sizeof(int32_t)); +} + +xcb_generic_iterator_t +xcb_randr_configure_provider_property_values_end (const xcb_randr_configure_provider_property_request_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((int32_t *) (R + 1)) + ((((R->length * 4) - sizeof(xcb_randr_configure_provider_property_request_t))/sizeof(int32_t))); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +int +xcb_randr_change_provider_property_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_change_provider_property_request_t *_aux = (xcb_randr_change_provider_property_request_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_change_provider_property_request_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* data */ + xcb_block_len += (_aux->num_items * (_aux->format / 8)) * sizeof(char); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(char); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_void_cookie_t +xcb_randr_change_provider_property_checked (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_atom_t property, + xcb_atom_t type, + uint8_t format, + uint8_t mode, + uint32_t num_items, + const void *data) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_CHANGE_PROVIDER_PROPERTY, + .isvoid = 1 + }; + + struct iovec xcb_parts[6]; + xcb_void_cookie_t xcb_ret; + xcb_randr_change_provider_property_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.property = property; + xcb_out.type = type; + xcb_out.format = format; + xcb_out.mode = mode; + memset(xcb_out.pad0, 0, 2); + xcb_out.num_items = num_items; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* void data */ + xcb_parts[4].iov_base = (char *) data; + xcb_parts[4].iov_len = (num_items * (format / 8)) * sizeof(char); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_change_provider_property (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_atom_t property, + xcb_atom_t type, + uint8_t format, + uint8_t mode, + uint32_t num_items, + const void *data) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_CHANGE_PROVIDER_PROPERTY, + .isvoid = 1 + }; + + struct iovec xcb_parts[6]; + xcb_void_cookie_t xcb_ret; + xcb_randr_change_provider_property_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.property = property; + xcb_out.type = type; + xcb_out.format = format; + xcb_out.mode = mode; + memset(xcb_out.pad0, 0, 2); + xcb_out.num_items = num_items; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* void data */ + xcb_parts[4].iov_base = (char *) data; + xcb_parts[4].iov_len = (num_items * (format / 8)) * sizeof(char); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +void * +xcb_randr_change_provider_property_data (const xcb_randr_change_provider_property_request_t *R) +{ + return (void *) (R + 1); +} + +int +xcb_randr_change_provider_property_data_length (const xcb_randr_change_provider_property_request_t *R) +{ + return (R->num_items * (R->format / 8)); +} + +xcb_generic_iterator_t +xcb_randr_change_provider_property_data_end (const xcb_randr_change_provider_property_request_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((char *) (R + 1)) + ((R->num_items * (R->format / 8))); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_void_cookie_t +xcb_randr_delete_provider_property_checked (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_atom_t property) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_DELETE_PROVIDER_PROPERTY, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_delete_provider_property_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.property = property; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_delete_provider_property (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_atom_t property) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_DELETE_PROVIDER_PROPERTY, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_delete_provider_property_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.property = property; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +int +xcb_randr_get_provider_property_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_get_provider_property_reply_t *_aux = (xcb_randr_get_provider_property_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_get_provider_property_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* data */ + xcb_block_len += (_aux->num_items * (_aux->format / 8)) * sizeof(char); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(char); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_get_provider_property_cookie_t +xcb_randr_get_provider_property (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_atom_t property, + xcb_atom_t type, + uint32_t long_offset, + uint32_t long_length, + uint8_t _delete, + uint8_t pending) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_PROVIDER_PROPERTY, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_provider_property_cookie_t xcb_ret; + xcb_randr_get_provider_property_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.property = property; + xcb_out.type = type; + xcb_out.long_offset = long_offset; + xcb_out.long_length = long_length; + xcb_out._delete = _delete; + xcb_out.pending = pending; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_provider_property_cookie_t +xcb_randr_get_provider_property_unchecked (xcb_connection_t *c, + xcb_randr_provider_t provider, + xcb_atom_t property, + xcb_atom_t type, + uint32_t long_offset, + uint32_t long_length, + uint8_t _delete, + uint8_t pending) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_PROVIDER_PROPERTY, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_provider_property_cookie_t xcb_ret; + xcb_randr_get_provider_property_request_t xcb_out; + + xcb_out.provider = provider; + xcb_out.property = property; + xcb_out.type = type; + xcb_out.long_offset = long_offset; + xcb_out.long_length = long_length; + xcb_out._delete = _delete; + xcb_out.pending = pending; + memset(xcb_out.pad0, 0, 2); + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +void * +xcb_randr_get_provider_property_data (const xcb_randr_get_provider_property_reply_t *R) +{ + return (void *) (R + 1); +} + +int +xcb_randr_get_provider_property_data_length (const xcb_randr_get_provider_property_reply_t *R) +{ + return (R->num_items * (R->format / 8)); +} + +xcb_generic_iterator_t +xcb_randr_get_provider_property_data_end (const xcb_randr_get_provider_property_reply_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((char *) (R + 1)) + ((R->num_items * (R->format / 8))); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_get_provider_property_reply_t * +xcb_randr_get_provider_property_reply (xcb_connection_t *c, + xcb_randr_get_provider_property_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_provider_property_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +void +xcb_randr_crtc_change_next (xcb_randr_crtc_change_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_crtc_change_t); +} + +xcb_generic_iterator_t +xcb_randr_crtc_change_end (xcb_randr_crtc_change_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +void +xcb_randr_output_change_next (xcb_randr_output_change_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_output_change_t); +} + +xcb_generic_iterator_t +xcb_randr_output_change_end (xcb_randr_output_change_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +void +xcb_randr_output_property_next (xcb_randr_output_property_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_output_property_t); +} + +xcb_generic_iterator_t +xcb_randr_output_property_end (xcb_randr_output_property_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +void +xcb_randr_provider_change_next (xcb_randr_provider_change_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_provider_change_t); +} + +xcb_generic_iterator_t +xcb_randr_provider_change_end (xcb_randr_provider_change_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +void +xcb_randr_provider_property_next (xcb_randr_provider_property_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_provider_property_t); +} + +xcb_generic_iterator_t +xcb_randr_provider_property_end (xcb_randr_provider_property_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +void +xcb_randr_resource_change_next (xcb_randr_resource_change_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_resource_change_t); +} + +xcb_generic_iterator_t +xcb_randr_resource_change_end (xcb_randr_resource_change_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +int +xcb_randr_monitor_info_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_monitor_info_t *_aux = (xcb_randr_monitor_info_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_monitor_info_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* outputs */ + xcb_block_len += _aux->nOutput * sizeof(xcb_randr_output_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_output_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_output_t * +xcb_randr_monitor_info_outputs (const xcb_randr_monitor_info_t *R) +{ + return (xcb_randr_output_t *) (R + 1); +} + +int +xcb_randr_monitor_info_outputs_length (const xcb_randr_monitor_info_t *R) +{ + return R->nOutput; +} + +xcb_generic_iterator_t +xcb_randr_monitor_info_outputs_end (const xcb_randr_monitor_info_t *R) +{ + xcb_generic_iterator_t i; + i.data = ((xcb_randr_output_t *) (R + 1)) + (R->nOutput); + i.rem = 0; + i.index = (char *) i.data - (char *) R; + return i; +} + +void +xcb_randr_monitor_info_next (xcb_randr_monitor_info_iterator_t *i) +{ + xcb_randr_monitor_info_t *R = i->data; + xcb_generic_iterator_t child; + child.data = (xcb_randr_monitor_info_t *)(((char *)R) + xcb_randr_monitor_info_sizeof(R)); + i->index = (char *) child.data - (char *) i->data; + --i->rem; + i->data = (xcb_randr_monitor_info_t *) child.data; +} + +xcb_generic_iterator_t +xcb_randr_monitor_info_end (xcb_randr_monitor_info_iterator_t i) +{ + xcb_generic_iterator_t ret; + while(i.rem > 0) + xcb_randr_monitor_info_next(&i); + ret.data = i.data; + ret.rem = i.rem; + ret.index = i.index; + return ret; +} + +int +xcb_randr_get_monitors_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_get_monitors_reply_t *_aux = (xcb_randr_get_monitors_reply_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + unsigned int i; + unsigned int xcb_tmp_len; + + xcb_block_len += sizeof(xcb_randr_get_monitors_reply_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* monitors */ + for(i=0; i<_aux->nMonitors; i++) { + xcb_tmp_len = xcb_randr_monitor_info_sizeof(xcb_tmp); + xcb_block_len += xcb_tmp_len; + xcb_tmp += xcb_tmp_len; + } + xcb_align_to = ALIGNOF(xcb_randr_monitor_info_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_get_monitors_cookie_t +xcb_randr_get_monitors (xcb_connection_t *c, + xcb_window_t window, + uint8_t get_active) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_MONITORS, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_monitors_cookie_t xcb_ret; + xcb_randr_get_monitors_request_t xcb_out; + + xcb_out.window = window; + xcb_out.get_active = get_active; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_get_monitors_cookie_t +xcb_randr_get_monitors_unchecked (xcb_connection_t *c, + xcb_window_t window, + uint8_t get_active) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_GET_MONITORS, + .isvoid = 0 + }; + + struct iovec xcb_parts[4]; + xcb_randr_get_monitors_cookie_t xcb_ret; + xcb_randr_get_monitors_request_t xcb_out; + + xcb_out.window = window; + xcb_out.get_active = get_active; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +int +xcb_randr_get_monitors_monitors_length (const xcb_randr_get_monitors_reply_t *R) +{ + return R->nMonitors; +} + +xcb_randr_monitor_info_iterator_t +xcb_randr_get_monitors_monitors_iterator (const xcb_randr_get_monitors_reply_t *R) +{ + xcb_randr_monitor_info_iterator_t i; + i.data = (xcb_randr_monitor_info_t *) (R + 1); + i.rem = R->nMonitors; + i.index = (char *) i.data - (char *) R; + return i; +} + +xcb_randr_get_monitors_reply_t * +xcb_randr_get_monitors_reply (xcb_connection_t *c, + xcb_randr_get_monitors_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_get_monitors_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int +xcb_randr_set_monitor_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_set_monitor_request_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* monitorinfo */ + xcb_block_len += xcb_randr_monitor_info_sizeof(xcb_tmp); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_monitor_info_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_void_cookie_t +xcb_randr_set_monitor_checked (xcb_connection_t *c, + xcb_window_t window, + xcb_randr_monitor_info_t *monitorinfo) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_MONITOR, + .isvoid = 1 + }; + + struct iovec xcb_parts[6]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_monitor_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_randr_monitor_info_t monitorinfo */ + xcb_parts[4].iov_base = (char *) monitorinfo; + xcb_parts[4].iov_len = + xcb_randr_monitor_info_sizeof (monitorinfo); + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_set_monitor (xcb_connection_t *c, + xcb_window_t window, + xcb_randr_monitor_info_t *monitorinfo) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 4, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_SET_MONITOR, + .isvoid = 1 + }; + + struct iovec xcb_parts[6]; + xcb_void_cookie_t xcb_ret; + xcb_randr_set_monitor_request_t xcb_out; + + xcb_out.window = window; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_randr_monitor_info_t monitorinfo */ + xcb_parts[4].iov_base = (char *) monitorinfo; + xcb_parts[4].iov_len = + xcb_randr_monitor_info_sizeof (monitorinfo); + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_monitor_info_t * +xcb_randr_set_monitor_monitorinfo (const xcb_randr_set_monitor_request_t *R) +{ + return (xcb_randr_monitor_info_t *) (R + 1); +} + +xcb_void_cookie_t +xcb_randr_delete_monitor_checked (xcb_connection_t *c, + xcb_window_t window, + xcb_atom_t name) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_DELETE_MONITOR, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_delete_monitor_request_t xcb_out; + + xcb_out.window = window; + xcb_out.name = name; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_delete_monitor (xcb_connection_t *c, + xcb_window_t window, + xcb_atom_t name) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_DELETE_MONITOR, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_delete_monitor_request_t xcb_out; + + xcb_out.window = window; + xcb_out.name = name; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +int +xcb_randr_create_lease_sizeof (const void *_buffer) +{ + char *xcb_tmp = (char *)_buffer; + const xcb_randr_create_lease_request_t *_aux = (xcb_randr_create_lease_request_t *)_buffer; + unsigned int xcb_buffer_len = 0; + unsigned int xcb_block_len = 0; + unsigned int xcb_pad = 0; + unsigned int xcb_align_to = 0; + + + xcb_block_len += sizeof(xcb_randr_create_lease_request_t); + xcb_tmp += xcb_block_len; + xcb_buffer_len += xcb_block_len; + xcb_block_len = 0; + /* crtcs */ + xcb_block_len += _aux->num_crtcs * sizeof(xcb_randr_output_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_crtc_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + /* outputs */ + xcb_block_len += _aux->num_outputs * sizeof(xcb_randr_output_t); + xcb_tmp += xcb_block_len; + xcb_align_to = ALIGNOF(xcb_randr_output_t); + /* insert padding */ + xcb_pad = -xcb_block_len & (xcb_align_to - 1); + xcb_buffer_len += xcb_block_len + xcb_pad; + if (0 != xcb_pad) { + xcb_tmp += xcb_pad; + xcb_pad = 0; + } + xcb_block_len = 0; + + return xcb_buffer_len; +} + +xcb_randr_create_lease_cookie_t +xcb_randr_create_lease (xcb_connection_t *c, + xcb_window_t window, + xcb_randr_lease_t lid, + uint16_t num_crtcs, + uint16_t num_outputs, + const xcb_randr_crtc_t *crtcs, + const xcb_randr_output_t *outputs) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 6, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_CREATE_LEASE, + .isvoid = 0 + }; + + struct iovec xcb_parts[8]; + xcb_randr_create_lease_cookie_t xcb_ret; + xcb_randr_create_lease_request_t xcb_out; + + xcb_out.window = window; + xcb_out.lid = lid; + xcb_out.num_crtcs = num_crtcs; + xcb_out.num_outputs = num_outputs; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_randr_crtc_t crtcs */ + xcb_parts[4].iov_base = (char *) crtcs; + xcb_parts[4].iov_len = num_crtcs * sizeof(uint32_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + /* xcb_randr_output_t outputs */ + xcb_parts[6].iov_base = (char *) outputs; + xcb_parts[6].iov_len = num_outputs * sizeof(uint32_t); + xcb_parts[7].iov_base = 0; + xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED|XCB_REQUEST_REPLY_FDS, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_create_lease_cookie_t +xcb_randr_create_lease_unchecked (xcb_connection_t *c, + xcb_window_t window, + xcb_randr_lease_t lid, + uint16_t num_crtcs, + uint16_t num_outputs, + const xcb_randr_crtc_t *crtcs, + const xcb_randr_output_t *outputs) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 6, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_CREATE_LEASE, + .isvoid = 0 + }; + + struct iovec xcb_parts[8]; + xcb_randr_create_lease_cookie_t xcb_ret; + xcb_randr_create_lease_request_t xcb_out; + + xcb_out.window = window; + xcb_out.lid = lid; + xcb_out.num_crtcs = num_crtcs; + xcb_out.num_outputs = num_outputs; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + /* xcb_randr_crtc_t crtcs */ + xcb_parts[4].iov_base = (char *) crtcs; + xcb_parts[4].iov_len = num_crtcs * sizeof(uint32_t); + xcb_parts[5].iov_base = 0; + xcb_parts[5].iov_len = -xcb_parts[4].iov_len & 3; + /* xcb_randr_output_t outputs */ + xcb_parts[6].iov_base = (char *) outputs; + xcb_parts[6].iov_len = num_outputs * sizeof(uint32_t); + xcb_parts[7].iov_base = 0; + xcb_parts[7].iov_len = -xcb_parts[6].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_REPLY_FDS, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_randr_create_lease_reply_t * +xcb_randr_create_lease_reply (xcb_connection_t *c, + xcb_randr_create_lease_cookie_t cookie /**< */, + xcb_generic_error_t **e) +{ + return (xcb_randr_create_lease_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); +} + +int * +xcb_randr_create_lease_reply_fds (xcb_connection_t *c /**< */, + xcb_randr_create_lease_reply_t *reply) +{ + return xcb_get_reply_fds(c, reply, sizeof(xcb_randr_create_lease_reply_t) + 4 * reply->length); +} + +xcb_void_cookie_t +xcb_randr_free_lease_checked (xcb_connection_t *c, + xcb_randr_lease_t lid, + uint8_t terminate) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_FREE_LEASE, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_free_lease_request_t xcb_out; + + xcb_out.lid = lid; + xcb_out.terminate = terminate; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +xcb_void_cookie_t +xcb_randr_free_lease (xcb_connection_t *c, + xcb_randr_lease_t lid, + uint8_t terminate) +{ + static const xcb_protocol_request_t xcb_req = { + .count = 2, + .ext = &xcb_randr_id, + .opcode = XCB_RANDR_FREE_LEASE, + .isvoid = 1 + }; + + struct iovec xcb_parts[4]; + xcb_void_cookie_t xcb_ret; + xcb_randr_free_lease_request_t xcb_out; + + xcb_out.lid = lid; + xcb_out.terminate = terminate; + + xcb_parts[2].iov_base = (char *) &xcb_out; + xcb_parts[2].iov_len = sizeof(xcb_out); + xcb_parts[3].iov_base = 0; + xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; + + xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); + return xcb_ret; +} + +void +xcb_randr_lease_notify_next (xcb_randr_lease_notify_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_lease_notify_t); +} + +xcb_generic_iterator_t +xcb_randr_lease_notify_end (xcb_randr_lease_notify_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + +void +xcb_randr_notify_data_next (xcb_randr_notify_data_iterator_t *i) +{ + --i->rem; + ++i->data; + i->index += sizeof(xcb_randr_notify_data_t); +} + +xcb_generic_iterator_t +xcb_randr_notify_data_end (xcb_randr_notify_data_iterator_t i) +{ + xcb_generic_iterator_t ret; + ret.data = i.data + i.rem; + ret.index = i.index + ((char *) ret.data - (char *) i.data); + ret.rem = 0; + return ret; +} + -- cgit v1.2.3