1 /* 2 * This file generated automatically from screensaver.xml by c_client.py. 3 * Edit at your peril. 4 */ 5 6 #ifdef HAVE_CONFIG_H 7 #include "config.h" 8 #endif 9 #include <stdlib.h> 10 #include <string.h> 11 #include <assert.h> 12 #include <stddef.h> /* for offsetof() */ 13 #include "xcbext.h" 14 #include "screensaver.h" 15 16 #define ALIGNOF(type) offsetof(struct { char dummy; type member; }, member) 17 #include "xproto.h" 18 19 xcb_extension_t xcb_screensaver_id = { "MIT-SCREEN-SAVER", 0 }; 20 21 xcb_screensaver_query_version_cookie_t 22 xcb_screensaver_query_version (xcb_connection_t *c, 23 uint8_t client_major_version, 24 uint8_t client_minor_version) 25 { 26 static const xcb_protocol_request_t xcb_req = { 27 .count = 2, 28 .ext = &xcb_screensaver_id, 29 .opcode = XCB_SCREENSAVER_QUERY_VERSION, 30 .isvoid = 0 31 }; 32 33 struct iovec xcb_parts[4]; 34 xcb_screensaver_query_version_cookie_t xcb_ret; 35 xcb_screensaver_query_version_request_t xcb_out; 36 37 xcb_out.client_major_version = client_major_version; 38 xcb_out.client_minor_version = client_minor_version; 39 memset(xcb_out.pad0, 0, 2); 40 41 xcb_parts[2].iov_base = (char *) &xcb_out; 42 xcb_parts[2].iov_len = sizeof(xcb_out); 43 xcb_parts[3].iov_base = 0; 44 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 45 46 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 47 return xcb_ret; 48 } 49 50 xcb_screensaver_query_version_cookie_t 51 xcb_screensaver_query_version_unchecked (xcb_connection_t *c, 52 uint8_t client_major_version, 53 uint8_t client_minor_version) 54 { 55 static const xcb_protocol_request_t xcb_req = { 56 .count = 2, 57 .ext = &xcb_screensaver_id, 58 .opcode = XCB_SCREENSAVER_QUERY_VERSION, 59 .isvoid = 0 60 }; 61 62 struct iovec xcb_parts[4]; 63 xcb_screensaver_query_version_cookie_t xcb_ret; 64 xcb_screensaver_query_version_request_t xcb_out; 65 66 xcb_out.client_major_version = client_major_version; 67 xcb_out.client_minor_version = client_minor_version; 68 memset(xcb_out.pad0, 0, 2); 69 70 xcb_parts[2].iov_base = (char *) &xcb_out; 71 xcb_parts[2].iov_len = sizeof(xcb_out); 72 xcb_parts[3].iov_base = 0; 73 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 74 75 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 76 return xcb_ret; 77 } 78 79 xcb_screensaver_query_version_reply_t * 80 xcb_screensaver_query_version_reply (xcb_connection_t *c, 81 xcb_screensaver_query_version_cookie_t cookie /**< */, 82 xcb_generic_error_t **e) 83 { 84 return (xcb_screensaver_query_version_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 85 } 86 87 xcb_screensaver_query_info_cookie_t 88 xcb_screensaver_query_info (xcb_connection_t *c, 89 xcb_drawable_t drawable) 90 { 91 static const xcb_protocol_request_t xcb_req = { 92 .count = 2, 93 .ext = &xcb_screensaver_id, 94 .opcode = XCB_SCREENSAVER_QUERY_INFO, 95 .isvoid = 0 96 }; 97 98 struct iovec xcb_parts[4]; 99 xcb_screensaver_query_info_cookie_t xcb_ret; 100 xcb_screensaver_query_info_request_t xcb_out; 101 102 xcb_out.drawable = drawable; 103 104 xcb_parts[2].iov_base = (char *) &xcb_out; 105 xcb_parts[2].iov_len = sizeof(xcb_out); 106 xcb_parts[3].iov_base = 0; 107 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 108 109 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 110 return xcb_ret; 111 } 112 113 xcb_screensaver_query_info_cookie_t 114 xcb_screensaver_query_info_unchecked (xcb_connection_t *c, 115 xcb_drawable_t drawable) 116 { 117 static const xcb_protocol_request_t xcb_req = { 118 .count = 2, 119 .ext = &xcb_screensaver_id, 120 .opcode = XCB_SCREENSAVER_QUERY_INFO, 121 .isvoid = 0 122 }; 123 124 struct iovec xcb_parts[4]; 125 xcb_screensaver_query_info_cookie_t xcb_ret; 126 xcb_screensaver_query_info_request_t xcb_out; 127 128 xcb_out.drawable = drawable; 129 130 xcb_parts[2].iov_base = (char *) &xcb_out; 131 xcb_parts[2].iov_len = sizeof(xcb_out); 132 xcb_parts[3].iov_base = 0; 133 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 134 135 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 136 return xcb_ret; 137 } 138 139 xcb_screensaver_query_info_reply_t * 140 xcb_screensaver_query_info_reply (xcb_connection_t *c, 141 xcb_screensaver_query_info_cookie_t cookie /**< */, 142 xcb_generic_error_t **e) 143 { 144 return (xcb_screensaver_query_info_reply_t *) xcb_wait_for_reply(c, cookie.sequence, e); 145 } 146 147 xcb_void_cookie_t 148 xcb_screensaver_select_input_checked (xcb_connection_t *c, 149 xcb_drawable_t drawable, 150 uint32_t event_mask) 151 { 152 static const xcb_protocol_request_t xcb_req = { 153 .count = 2, 154 .ext = &xcb_screensaver_id, 155 .opcode = XCB_SCREENSAVER_SELECT_INPUT, 156 .isvoid = 1 157 }; 158 159 struct iovec xcb_parts[4]; 160 xcb_void_cookie_t xcb_ret; 161 xcb_screensaver_select_input_request_t xcb_out; 162 163 xcb_out.drawable = drawable; 164 xcb_out.event_mask = event_mask; 165 166 xcb_parts[2].iov_base = (char *) &xcb_out; 167 xcb_parts[2].iov_len = sizeof(xcb_out); 168 xcb_parts[3].iov_base = 0; 169 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 170 171 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 172 return xcb_ret; 173 } 174 175 xcb_void_cookie_t 176 xcb_screensaver_select_input (xcb_connection_t *c, 177 xcb_drawable_t drawable, 178 uint32_t event_mask) 179 { 180 static const xcb_protocol_request_t xcb_req = { 181 .count = 2, 182 .ext = &xcb_screensaver_id, 183 .opcode = XCB_SCREENSAVER_SELECT_INPUT, 184 .isvoid = 1 185 }; 186 187 struct iovec xcb_parts[4]; 188 xcb_void_cookie_t xcb_ret; 189 xcb_screensaver_select_input_request_t xcb_out; 190 191 xcb_out.drawable = drawable; 192 xcb_out.event_mask = event_mask; 193 194 xcb_parts[2].iov_base = (char *) &xcb_out; 195 xcb_parts[2].iov_len = sizeof(xcb_out); 196 xcb_parts[3].iov_base = 0; 197 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 198 199 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 200 return xcb_ret; 201 } 202 203 int 204 xcb_screensaver_set_attributes_value_list_serialize (void **_buffer, 205 uint32_t value_mask, 206 const xcb_screensaver_set_attributes_value_list_t *_aux) 207 { 208 char *xcb_out = *_buffer; 209 unsigned int xcb_buffer_len = 0; 210 unsigned int xcb_align_to = 0; 211 unsigned int xcb_padding_offset = 0; 212 213 unsigned int xcb_pad = 0; 214 char xcb_pad0[3] = {0, 0, 0}; 215 struct iovec xcb_parts[16]; 216 unsigned int xcb_parts_idx = 0; 217 unsigned int xcb_block_len = 0; 218 unsigned int i; 219 char *xcb_tmp; 220 221 if(value_mask & XCB_CW_BACK_PIXMAP) { 222 /* xcb_screensaver_set_attributes_value_list_t.background_pixmap */ 223 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->background_pixmap; 224 xcb_block_len += sizeof(xcb_pixmap_t); 225 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_pixmap_t); 226 xcb_parts_idx++; 227 xcb_align_to = ALIGNOF(xcb_pixmap_t); 228 } 229 if(value_mask & XCB_CW_BACK_PIXEL) { 230 /* xcb_screensaver_set_attributes_value_list_t.background_pixel */ 231 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->background_pixel; 232 xcb_block_len += sizeof(uint32_t); 233 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 234 xcb_parts_idx++; 235 xcb_align_to = ALIGNOF(uint32_t); 236 } 237 if(value_mask & XCB_CW_BORDER_PIXMAP) { 238 /* xcb_screensaver_set_attributes_value_list_t.border_pixmap */ 239 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->border_pixmap; 240 xcb_block_len += sizeof(xcb_pixmap_t); 241 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_pixmap_t); 242 xcb_parts_idx++; 243 xcb_align_to = ALIGNOF(xcb_pixmap_t); 244 } 245 if(value_mask & XCB_CW_BORDER_PIXEL) { 246 /* xcb_screensaver_set_attributes_value_list_t.border_pixel */ 247 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->border_pixel; 248 xcb_block_len += sizeof(uint32_t); 249 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 250 xcb_parts_idx++; 251 xcb_align_to = ALIGNOF(uint32_t); 252 } 253 if(value_mask & XCB_CW_BIT_GRAVITY) { 254 /* xcb_screensaver_set_attributes_value_list_t.bit_gravity */ 255 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->bit_gravity; 256 xcb_block_len += sizeof(uint32_t); 257 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 258 xcb_parts_idx++; 259 xcb_align_to = ALIGNOF(uint32_t); 260 } 261 if(value_mask & XCB_CW_WIN_GRAVITY) { 262 /* xcb_screensaver_set_attributes_value_list_t.win_gravity */ 263 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->win_gravity; 264 xcb_block_len += sizeof(uint32_t); 265 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 266 xcb_parts_idx++; 267 xcb_align_to = ALIGNOF(uint32_t); 268 } 269 if(value_mask & XCB_CW_BACKING_STORE) { 270 /* xcb_screensaver_set_attributes_value_list_t.backing_store */ 271 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->backing_store; 272 xcb_block_len += sizeof(uint32_t); 273 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 274 xcb_parts_idx++; 275 xcb_align_to = ALIGNOF(uint32_t); 276 } 277 if(value_mask & XCB_CW_BACKING_PLANES) { 278 /* xcb_screensaver_set_attributes_value_list_t.backing_planes */ 279 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->backing_planes; 280 xcb_block_len += sizeof(uint32_t); 281 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 282 xcb_parts_idx++; 283 xcb_align_to = ALIGNOF(uint32_t); 284 } 285 if(value_mask & XCB_CW_BACKING_PIXEL) { 286 /* xcb_screensaver_set_attributes_value_list_t.backing_pixel */ 287 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->backing_pixel; 288 xcb_block_len += sizeof(uint32_t); 289 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 290 xcb_parts_idx++; 291 xcb_align_to = ALIGNOF(uint32_t); 292 } 293 if(value_mask & XCB_CW_OVERRIDE_REDIRECT) { 294 /* xcb_screensaver_set_attributes_value_list_t.override_redirect */ 295 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->override_redirect; 296 xcb_block_len += sizeof(xcb_bool32_t); 297 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_bool32_t); 298 xcb_parts_idx++; 299 xcb_align_to = ALIGNOF(xcb_bool32_t); 300 } 301 if(value_mask & XCB_CW_SAVE_UNDER) { 302 /* xcb_screensaver_set_attributes_value_list_t.save_under */ 303 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->save_under; 304 xcb_block_len += sizeof(xcb_bool32_t); 305 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_bool32_t); 306 xcb_parts_idx++; 307 xcb_align_to = ALIGNOF(xcb_bool32_t); 308 } 309 if(value_mask & XCB_CW_EVENT_MASK) { 310 /* xcb_screensaver_set_attributes_value_list_t.event_mask */ 311 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->event_mask; 312 xcb_block_len += sizeof(uint32_t); 313 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 314 xcb_parts_idx++; 315 xcb_align_to = ALIGNOF(uint32_t); 316 } 317 if(value_mask & XCB_CW_DONT_PROPAGATE) { 318 /* xcb_screensaver_set_attributes_value_list_t.do_not_propogate_mask */ 319 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->do_not_propogate_mask; 320 xcb_block_len += sizeof(uint32_t); 321 xcb_parts[xcb_parts_idx].iov_len = sizeof(uint32_t); 322 xcb_parts_idx++; 323 xcb_align_to = ALIGNOF(uint32_t); 324 } 325 if(value_mask & XCB_CW_COLORMAP) { 326 /* xcb_screensaver_set_attributes_value_list_t.colormap */ 327 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->colormap; 328 xcb_block_len += sizeof(xcb_colormap_t); 329 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_colormap_t); 330 xcb_parts_idx++; 331 xcb_align_to = ALIGNOF(xcb_colormap_t); 332 } 333 if(value_mask & XCB_CW_CURSOR) { 334 /* xcb_screensaver_set_attributes_value_list_t.cursor */ 335 xcb_parts[xcb_parts_idx].iov_base = (char *) &_aux->cursor; 336 xcb_block_len += sizeof(xcb_cursor_t); 337 xcb_parts[xcb_parts_idx].iov_len = sizeof(xcb_cursor_t); 338 xcb_parts_idx++; 339 xcb_align_to = ALIGNOF(xcb_cursor_t); 340 } 341 /* insert padding */ 342 xcb_pad = -(xcb_block_len + xcb_padding_offset) & (xcb_align_to - 1); 343 xcb_buffer_len += xcb_block_len + xcb_pad; 344 if (0 != xcb_pad) { 345 xcb_parts[xcb_parts_idx].iov_base = xcb_pad0; 346 xcb_parts[xcb_parts_idx].iov_len = xcb_pad; 347 xcb_parts_idx++; 348 xcb_pad = 0; 349 } 350 xcb_block_len = 0; 351 xcb_padding_offset = 0; 352 353 if (NULL == xcb_out) { 354 /* allocate memory */ 355 xcb_out = malloc(xcb_buffer_len); 356 *_buffer = xcb_out; 357 } 358 359 xcb_tmp = xcb_out; 360 for(i=0; i<xcb_parts_idx; i++) { 361 if (0 != xcb_parts[i].iov_base && 0 != xcb_parts[i].iov_len) 362 memcpy(xcb_tmp, xcb_parts[i].iov_base, xcb_parts[i].iov_len); 363 if (0 != xcb_parts[i].iov_len) 364 xcb_tmp += xcb_parts[i].iov_len; 365 } 366 367 return xcb_buffer_len; 368 } 369 370 int 371 xcb_screensaver_set_attributes_value_list_unpack (const void *_buffer, 372 uint32_t value_mask, 373 xcb_screensaver_set_attributes_value_list_t *_aux) 374 { 375 char *xcb_tmp = (char *)_buffer; 376 unsigned int xcb_buffer_len = 0; 377 unsigned int xcb_block_len = 0; 378 unsigned int xcb_pad = 0; 379 unsigned int xcb_align_to = 0; 380 unsigned int xcb_padding_offset = 0; 381 382 383 if(value_mask & XCB_CW_BACK_PIXMAP) { 384 /* xcb_screensaver_set_attributes_value_list_t.background_pixmap */ 385 _aux->background_pixmap = *(xcb_pixmap_t *)xcb_tmp; 386 xcb_block_len += sizeof(xcb_pixmap_t); 387 xcb_tmp += sizeof(xcb_pixmap_t); 388 xcb_align_to = ALIGNOF(xcb_pixmap_t); 389 } 390 if(value_mask & XCB_CW_BACK_PIXEL) { 391 /* xcb_screensaver_set_attributes_value_list_t.background_pixel */ 392 _aux->background_pixel = *(uint32_t *)xcb_tmp; 393 xcb_block_len += sizeof(uint32_t); 394 xcb_tmp += sizeof(uint32_t); 395 xcb_align_to = ALIGNOF(uint32_t); 396 } 397 if(value_mask & XCB_CW_BORDER_PIXMAP) { 398 /* xcb_screensaver_set_attributes_value_list_t.border_pixmap */ 399 _aux->border_pixmap = *(xcb_pixmap_t *)xcb_tmp; 400 xcb_block_len += sizeof(xcb_pixmap_t); 401 xcb_tmp += sizeof(xcb_pixmap_t); 402 xcb_align_to = ALIGNOF(xcb_pixmap_t); 403 } 404 if(value_mask & XCB_CW_BORDER_PIXEL) { 405 /* xcb_screensaver_set_attributes_value_list_t.border_pixel */ 406 _aux->border_pixel = *(uint32_t *)xcb_tmp; 407 xcb_block_len += sizeof(uint32_t); 408 xcb_tmp += sizeof(uint32_t); 409 xcb_align_to = ALIGNOF(uint32_t); 410 } 411 if(value_mask & XCB_CW_BIT_GRAVITY) { 412 /* xcb_screensaver_set_attributes_value_list_t.bit_gravity */ 413 _aux->bit_gravity = *(uint32_t *)xcb_tmp; 414 xcb_block_len += sizeof(uint32_t); 415 xcb_tmp += sizeof(uint32_t); 416 xcb_align_to = ALIGNOF(uint32_t); 417 } 418 if(value_mask & XCB_CW_WIN_GRAVITY) { 419 /* xcb_screensaver_set_attributes_value_list_t.win_gravity */ 420 _aux->win_gravity = *(uint32_t *)xcb_tmp; 421 xcb_block_len += sizeof(uint32_t); 422 xcb_tmp += sizeof(uint32_t); 423 xcb_align_to = ALIGNOF(uint32_t); 424 } 425 if(value_mask & XCB_CW_BACKING_STORE) { 426 /* xcb_screensaver_set_attributes_value_list_t.backing_store */ 427 _aux->backing_store = *(uint32_t *)xcb_tmp; 428 xcb_block_len += sizeof(uint32_t); 429 xcb_tmp += sizeof(uint32_t); 430 xcb_align_to = ALIGNOF(uint32_t); 431 } 432 if(value_mask & XCB_CW_BACKING_PLANES) { 433 /* xcb_screensaver_set_attributes_value_list_t.backing_planes */ 434 _aux->backing_planes = *(uint32_t *)xcb_tmp; 435 xcb_block_len += sizeof(uint32_t); 436 xcb_tmp += sizeof(uint32_t); 437 xcb_align_to = ALIGNOF(uint32_t); 438 } 439 if(value_mask & XCB_CW_BACKING_PIXEL) { 440 /* xcb_screensaver_set_attributes_value_list_t.backing_pixel */ 441 _aux->backing_pixel = *(uint32_t *)xcb_tmp; 442 xcb_block_len += sizeof(uint32_t); 443 xcb_tmp += sizeof(uint32_t); 444 xcb_align_to = ALIGNOF(uint32_t); 445 } 446 if(value_mask & XCB_CW_OVERRIDE_REDIRECT) { 447 /* xcb_screensaver_set_attributes_value_list_t.override_redirect */ 448 _aux->override_redirect = *(xcb_bool32_t *)xcb_tmp; 449 xcb_block_len += sizeof(xcb_bool32_t); 450 xcb_tmp += sizeof(xcb_bool32_t); 451 xcb_align_to = ALIGNOF(xcb_bool32_t); 452 } 453 if(value_mask & XCB_CW_SAVE_UNDER) { 454 /* xcb_screensaver_set_attributes_value_list_t.save_under */ 455 _aux->save_under = *(xcb_bool32_t *)xcb_tmp; 456 xcb_block_len += sizeof(xcb_bool32_t); 457 xcb_tmp += sizeof(xcb_bool32_t); 458 xcb_align_to = ALIGNOF(xcb_bool32_t); 459 } 460 if(value_mask & XCB_CW_EVENT_MASK) { 461 /* xcb_screensaver_set_attributes_value_list_t.event_mask */ 462 _aux->event_mask = *(uint32_t *)xcb_tmp; 463 xcb_block_len += sizeof(uint32_t); 464 xcb_tmp += sizeof(uint32_t); 465 xcb_align_to = ALIGNOF(uint32_t); 466 } 467 if(value_mask & XCB_CW_DONT_PROPAGATE) { 468 /* xcb_screensaver_set_attributes_value_list_t.do_not_propogate_mask */ 469 _aux->do_not_propogate_mask = *(uint32_t *)xcb_tmp; 470 xcb_block_len += sizeof(uint32_t); 471 xcb_tmp += sizeof(uint32_t); 472 xcb_align_to = ALIGNOF(uint32_t); 473 } 474 if(value_mask & XCB_CW_COLORMAP) { 475 /* xcb_screensaver_set_attributes_value_list_t.colormap */ 476 _aux->colormap = *(xcb_colormap_t *)xcb_tmp; 477 xcb_block_len += sizeof(xcb_colormap_t); 478 xcb_tmp += sizeof(xcb_colormap_t); 479 xcb_align_to = ALIGNOF(xcb_colormap_t); 480 } 481 if(value_mask & XCB_CW_CURSOR) { 482 /* xcb_screensaver_set_attributes_value_list_t.cursor */ 483 _aux->cursor = *(xcb_cursor_t *)xcb_tmp; 484 xcb_block_len += sizeof(xcb_cursor_t); 485 xcb_tmp += sizeof(xcb_cursor_t); 486 xcb_align_to = ALIGNOF(xcb_cursor_t); 487 } 488 /* insert padding */ 489 xcb_pad = -(xcb_block_len + xcb_padding_offset) & (xcb_align_to - 1); 490 xcb_buffer_len += xcb_block_len + xcb_pad; 491 if (0 != xcb_pad) { 492 xcb_tmp += xcb_pad; 493 xcb_pad = 0; 494 } 495 xcb_block_len = 0; 496 xcb_padding_offset = 0; 497 498 return xcb_buffer_len; 499 } 500 501 int 502 xcb_screensaver_set_attributes_value_list_sizeof (const void *_buffer, 503 uint32_t value_mask) 504 { 505 xcb_screensaver_set_attributes_value_list_t _aux; 506 return xcb_screensaver_set_attributes_value_list_unpack(_buffer, value_mask, &_aux); 507 } 508 509 int 510 xcb_screensaver_set_attributes_sizeof (const void *_buffer) 511 { 512 char *xcb_tmp = (char *)_buffer; 513 const xcb_screensaver_set_attributes_request_t *_aux = (xcb_screensaver_set_attributes_request_t *)_buffer; 514 unsigned int xcb_buffer_len = 0; 515 unsigned int xcb_block_len = 0; 516 unsigned int xcb_pad = 0; 517 unsigned int xcb_align_to = 0; 518 519 520 xcb_block_len += sizeof(xcb_screensaver_set_attributes_request_t); 521 xcb_tmp += xcb_block_len; 522 xcb_buffer_len += xcb_block_len; 523 xcb_block_len = 0; 524 /* value_list */ 525 xcb_block_len += xcb_screensaver_set_attributes_value_list_sizeof(xcb_tmp, _aux->value_mask); 526 xcb_tmp += xcb_block_len; 527 xcb_align_to = ALIGNOF(char); 528 /* insert padding */ 529 xcb_pad = -xcb_block_len & (xcb_align_to - 1); 530 xcb_buffer_len += xcb_block_len + xcb_pad; 531 if (0 != xcb_pad) { 532 xcb_tmp += xcb_pad; 533 xcb_pad = 0; 534 } 535 xcb_block_len = 0; 536 537 return xcb_buffer_len; 538 } 539 540 xcb_void_cookie_t 541 xcb_screensaver_set_attributes_checked (xcb_connection_t *c, 542 xcb_drawable_t drawable, 543 int16_t x, 544 int16_t y, 545 uint16_t width, 546 uint16_t height, 547 uint16_t border_width, 548 uint8_t _class, 549 uint8_t depth, 550 xcb_visualid_t visual, 551 uint32_t value_mask, 552 const void *value_list) 553 { 554 static const xcb_protocol_request_t xcb_req = { 555 .count = 3, 556 .ext = &xcb_screensaver_id, 557 .opcode = XCB_SCREENSAVER_SET_ATTRIBUTES, 558 .isvoid = 1 559 }; 560 561 struct iovec xcb_parts[5]; 562 xcb_void_cookie_t xcb_ret; 563 xcb_screensaver_set_attributes_request_t xcb_out; 564 565 xcb_out.drawable = drawable; 566 xcb_out.x = x; 567 xcb_out.y = y; 568 xcb_out.width = width; 569 xcb_out.height = height; 570 xcb_out.border_width = border_width; 571 xcb_out._class = _class; 572 xcb_out.depth = depth; 573 xcb_out.visual = visual; 574 xcb_out.value_mask = value_mask; 575 576 xcb_parts[2].iov_base = (char *) &xcb_out; 577 xcb_parts[2].iov_len = sizeof(xcb_out); 578 xcb_parts[3].iov_base = 0; 579 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 580 /* xcb_screensaver_set_attributes_value_list_t value_list */ 581 xcb_parts[4].iov_base = (char *) value_list; 582 xcb_parts[4].iov_len = 583 xcb_screensaver_set_attributes_value_list_sizeof (value_list, value_mask); 584 585 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 586 return xcb_ret; 587 } 588 589 xcb_void_cookie_t 590 xcb_screensaver_set_attributes (xcb_connection_t *c, 591 xcb_drawable_t drawable, 592 int16_t x, 593 int16_t y, 594 uint16_t width, 595 uint16_t height, 596 uint16_t border_width, 597 uint8_t _class, 598 uint8_t depth, 599 xcb_visualid_t visual, 600 uint32_t value_mask, 601 const void *value_list) 602 { 603 static const xcb_protocol_request_t xcb_req = { 604 .count = 3, 605 .ext = &xcb_screensaver_id, 606 .opcode = XCB_SCREENSAVER_SET_ATTRIBUTES, 607 .isvoid = 1 608 }; 609 610 struct iovec xcb_parts[5]; 611 xcb_void_cookie_t xcb_ret; 612 xcb_screensaver_set_attributes_request_t xcb_out; 613 614 xcb_out.drawable = drawable; 615 xcb_out.x = x; 616 xcb_out.y = y; 617 xcb_out.width = width; 618 xcb_out.height = height; 619 xcb_out.border_width = border_width; 620 xcb_out._class = _class; 621 xcb_out.depth = depth; 622 xcb_out.visual = visual; 623 xcb_out.value_mask = value_mask; 624 625 xcb_parts[2].iov_base = (char *) &xcb_out; 626 xcb_parts[2].iov_len = sizeof(xcb_out); 627 xcb_parts[3].iov_base = 0; 628 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 629 /* xcb_screensaver_set_attributes_value_list_t value_list */ 630 xcb_parts[4].iov_base = (char *) value_list; 631 xcb_parts[4].iov_len = 632 xcb_screensaver_set_attributes_value_list_sizeof (value_list, value_mask); 633 634 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 635 return xcb_ret; 636 } 637 638 xcb_void_cookie_t 639 xcb_screensaver_set_attributes_aux_checked (xcb_connection_t *c, 640 xcb_drawable_t drawable, 641 int16_t x, 642 int16_t y, 643 uint16_t width, 644 uint16_t height, 645 uint16_t border_width, 646 uint8_t _class, 647 uint8_t depth, 648 xcb_visualid_t visual, 649 uint32_t value_mask, 650 const xcb_screensaver_set_attributes_value_list_t *value_list) 651 { 652 static const xcb_protocol_request_t xcb_req = { 653 .count = 3, 654 .ext = &xcb_screensaver_id, 655 .opcode = XCB_SCREENSAVER_SET_ATTRIBUTES, 656 .isvoid = 1 657 }; 658 659 struct iovec xcb_parts[5]; 660 xcb_void_cookie_t xcb_ret; 661 xcb_screensaver_set_attributes_request_t xcb_out; 662 void *xcb_aux0 = 0; 663 664 xcb_out.drawable = drawable; 665 xcb_out.x = x; 666 xcb_out.y = y; 667 xcb_out.width = width; 668 xcb_out.height = height; 669 xcb_out.border_width = border_width; 670 xcb_out._class = _class; 671 xcb_out.depth = depth; 672 xcb_out.visual = visual; 673 xcb_out.value_mask = value_mask; 674 675 xcb_parts[2].iov_base = (char *) &xcb_out; 676 xcb_parts[2].iov_len = sizeof(xcb_out); 677 xcb_parts[3].iov_base = 0; 678 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 679 /* xcb_screensaver_set_attributes_value_list_t value_list */ 680 xcb_parts[4].iov_len = 681 xcb_screensaver_set_attributes_value_list_serialize (&xcb_aux0, value_mask, value_list); 682 xcb_parts[4].iov_base = xcb_aux0; 683 684 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 685 free(xcb_aux0); 686 return xcb_ret; 687 } 688 689 xcb_void_cookie_t 690 xcb_screensaver_set_attributes_aux (xcb_connection_t *c, 691 xcb_drawable_t drawable, 692 int16_t x, 693 int16_t y, 694 uint16_t width, 695 uint16_t height, 696 uint16_t border_width, 697 uint8_t _class, 698 uint8_t depth, 699 xcb_visualid_t visual, 700 uint32_t value_mask, 701 const xcb_screensaver_set_attributes_value_list_t *value_list) 702 { 703 static const xcb_protocol_request_t xcb_req = { 704 .count = 3, 705 .ext = &xcb_screensaver_id, 706 .opcode = XCB_SCREENSAVER_SET_ATTRIBUTES, 707 .isvoid = 1 708 }; 709 710 struct iovec xcb_parts[5]; 711 xcb_void_cookie_t xcb_ret; 712 xcb_screensaver_set_attributes_request_t xcb_out; 713 void *xcb_aux0 = 0; 714 715 xcb_out.drawable = drawable; 716 xcb_out.x = x; 717 xcb_out.y = y; 718 xcb_out.width = width; 719 xcb_out.height = height; 720 xcb_out.border_width = border_width; 721 xcb_out._class = _class; 722 xcb_out.depth = depth; 723 xcb_out.visual = visual; 724 xcb_out.value_mask = value_mask; 725 726 xcb_parts[2].iov_base = (char *) &xcb_out; 727 xcb_parts[2].iov_len = sizeof(xcb_out); 728 xcb_parts[3].iov_base = 0; 729 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 730 /* xcb_screensaver_set_attributes_value_list_t value_list */ 731 xcb_parts[4].iov_len = 732 xcb_screensaver_set_attributes_value_list_serialize (&xcb_aux0, value_mask, value_list); 733 xcb_parts[4].iov_base = xcb_aux0; 734 735 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 736 free(xcb_aux0); 737 return xcb_ret; 738 } 739 740 void * 741 xcb_screensaver_set_attributes_value_list (const xcb_screensaver_set_attributes_request_t *R) 742 { 743 return (void *) (R + 1); 744 } 745 746 xcb_void_cookie_t 747 xcb_screensaver_unset_attributes_checked (xcb_connection_t *c, 748 xcb_drawable_t drawable) 749 { 750 static const xcb_protocol_request_t xcb_req = { 751 .count = 2, 752 .ext = &xcb_screensaver_id, 753 .opcode = XCB_SCREENSAVER_UNSET_ATTRIBUTES, 754 .isvoid = 1 755 }; 756 757 struct iovec xcb_parts[4]; 758 xcb_void_cookie_t xcb_ret; 759 xcb_screensaver_unset_attributes_request_t xcb_out; 760 761 xcb_out.drawable = drawable; 762 763 xcb_parts[2].iov_base = (char *) &xcb_out; 764 xcb_parts[2].iov_len = sizeof(xcb_out); 765 xcb_parts[3].iov_base = 0; 766 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 767 768 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 769 return xcb_ret; 770 } 771 772 xcb_void_cookie_t 773 xcb_screensaver_unset_attributes (xcb_connection_t *c, 774 xcb_drawable_t drawable) 775 { 776 static const xcb_protocol_request_t xcb_req = { 777 .count = 2, 778 .ext = &xcb_screensaver_id, 779 .opcode = XCB_SCREENSAVER_UNSET_ATTRIBUTES, 780 .isvoid = 1 781 }; 782 783 struct iovec xcb_parts[4]; 784 xcb_void_cookie_t xcb_ret; 785 xcb_screensaver_unset_attributes_request_t xcb_out; 786 787 xcb_out.drawable = drawable; 788 789 xcb_parts[2].iov_base = (char *) &xcb_out; 790 xcb_parts[2].iov_len = sizeof(xcb_out); 791 xcb_parts[3].iov_base = 0; 792 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 793 794 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 795 return xcb_ret; 796 } 797 798 xcb_void_cookie_t 799 xcb_screensaver_suspend_checked (xcb_connection_t *c, 800 uint8_t suspend) 801 { 802 static const xcb_protocol_request_t xcb_req = { 803 .count = 2, 804 .ext = &xcb_screensaver_id, 805 .opcode = XCB_SCREENSAVER_SUSPEND, 806 .isvoid = 1 807 }; 808 809 struct iovec xcb_parts[4]; 810 xcb_void_cookie_t xcb_ret; 811 xcb_screensaver_suspend_request_t xcb_out; 812 813 xcb_out.suspend = suspend; 814 memset(xcb_out.pad0, 0, 3); 815 816 xcb_parts[2].iov_base = (char *) &xcb_out; 817 xcb_parts[2].iov_len = sizeof(xcb_out); 818 xcb_parts[3].iov_base = 0; 819 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 820 821 xcb_ret.sequence = xcb_send_request(c, XCB_REQUEST_CHECKED, xcb_parts + 2, &xcb_req); 822 return xcb_ret; 823 } 824 825 xcb_void_cookie_t 826 xcb_screensaver_suspend (xcb_connection_t *c, 827 uint8_t suspend) 828 { 829 static const xcb_protocol_request_t xcb_req = { 830 .count = 2, 831 .ext = &xcb_screensaver_id, 832 .opcode = XCB_SCREENSAVER_SUSPEND, 833 .isvoid = 1 834 }; 835 836 struct iovec xcb_parts[4]; 837 xcb_void_cookie_t xcb_ret; 838 xcb_screensaver_suspend_request_t xcb_out; 839 840 xcb_out.suspend = suspend; 841 memset(xcb_out.pad0, 0, 3); 842 843 xcb_parts[2].iov_base = (char *) &xcb_out; 844 xcb_parts[2].iov_len = sizeof(xcb_out); 845 xcb_parts[3].iov_base = 0; 846 xcb_parts[3].iov_len = -xcb_parts[2].iov_len & 3; 847 848 xcb_ret.sequence = xcb_send_request(c, 0, xcb_parts + 2, &xcb_req); 849 return xcb_ret; 850 } 851 852