*/
#include <stdio.h>
-#include <X11/XCB/xcb.h>
-#include <X11/XCB/xcb_aux.h>
-#include <X11/XCB/randr.h>
-#include <X11/XCB/render.h> /* we share subpixel information */
+#include <xcb/xcb.h>
+#include <xcb/xcb_aux.h>
+#include <xcb/randr.h>
+#include <xcb/render.h> /* we share subpixel information */
#include <string.h>
#include <stdlib.h>
* Would be nice to put in another library or something.
*/
short*
-ConfigRates(XCBRandRGetScreenInfoRep *config, int sizeID, int *nrates)
+ConfigRates(xcb_randr_get_screen_info_reply_t *config, int sizeID, int *nrates)
{
int i = 0;
short *ents;
- XCBRandRRefreshRatesIter ri = XCBRandRGetScreenInfoRatesIter(config);
+ xcb_randr_refresh_rates_iterator_t ri = xcb_randr_get_screen_info_rates_iterator(config);
while (i++ < sizeID) {
- XCBRandRRefreshRatesNext(&ri);
+ xcb_randr_refresh_rates_next(&ri);
}
- ents = (short *)XCBRandRRefreshRatesRates(ri.data);
- *nrates = XCBRandRRefreshRatesRatesLength(ri.data);
+ ents = (short *)xcb_randr_refresh_rates_rates(ri.data);
+ *nrates = xcb_randr_refresh_rates_rates_length(ri.data);
if (!nrates) {
*nrates = 0;
int
main (int argc, char **argv)
{
- XCBConnection *c;
- XCBRandRScreenSize *sizes;
- XCBRandRGetScreenInfoRep *sc;
+ xcb_connection_t *c;
+ xcb_randr_screen_size_t *sizes;
+ xcb_randr_get_screen_info_reply_t *sc;
int nsize;
int nrate;
short *rates;
- XCBSCREEN *root;
- int status = XCBRandRSetConfigFailed;
+ xcb_screen_t *root;
+ int status = XCB_RANDR_SET_CONFIG_FAILED;
int rot = -1;
int verbose = 0, query = 0;
short rotation, current_rotation, rotations;
- XCBGenericEvent *event;
- XCBRandRScreenChangeNotifyEvent *sce;
+ xcb_generic_event_t *event;
+ xcb_randr_screen_change_notify_event_t *sce;
char *display_name = NULL;
int i, j;
int current_size;
short reflection = 0;
int width = 0, height = 0;
int have_pixel_size = 0;
- XCBGenericError *err;
- CARD16 mask = (CARD16) XCBEventMaskStructureNotify;
- CARD32 values[1];
- XCBRandRGetScreenInfoCookie scookie;
+ xcb_generic_error_t *err;
+ uint16_t mask = (uint16_t) XCB_EVENT_MASK_STRUCTURE_NOTIFY;
+ uint32_t values[1];
+ xcb_randr_get_screen_info_cookie_t scookie;
int major_version, minor_version;
- XCBRandRQueryVersionRep *rr_version;
+ xcb_randr_query_version_reply_t *rr_version;
program_name = argv[0];
if (argc == 1) query = 1;
}
if (!strcmp ("-x", argv[i])) {
- reflection |= XCBRandRRotationReflect_X;
+ reflection |= XCB_RANDR_ROTATION_REFLECT_X;
setit = 1;
continue;
}
if (!strcmp ("-y", argv[i])) {
- reflection |= XCBRandRRotationReflect_Y;
+ reflection |= XCB_RANDR_ROTATION_REFLECT_Y;
setit = 1;
continue;
}
fprintf (stderr, "No display available\n");
exit (1);
}
- c = XCBConnect(display_name, &screen);
- if (!c) {
+ c = xcb_connect(display_name, &screen);
+ if (xcb_connection_has_error(c)) {
fprintf (stderr, "Can't open display %s\n", display_name);
exit (1);
}
- root = XCBAuxGetScreen(c, screen);
- rr_version = XCBRandRQueryVersionReply(c, XCBRandRQueryVersion(c, 1, 1), 0);
+ root = xcb_aux_get_screen(c, screen);
+ rr_version = xcb_randr_query_version_reply(c, xcb_randr_query_version(c, 1, 1), 0);
if (!rr_version) {
fprintf(stderr, "Can't get VersionReply.\n");
exit (1);
major_version = rr_version->major_version;
minor_version = rr_version->minor_version;
- scookie = XCBRandRGetScreenInfo(c, root->root);
- sc = XCBRandRGetScreenInfoReply(c, scookie, 0);
+ scookie = xcb_randr_get_screen_info(c, root->root);
+ sc = xcb_randr_get_screen_info_reply(c, scookie, 0);
if (!sc) {
fprintf(stderr, "Can't get ScreenInfo.\n");
exit (1);
current_size = sc->sizeID;
nsize = sc->nSizes;
- sizes = XCBRandRGetScreenInfoSizes(sc);
+ sizes = xcb_randr_get_screen_info_sizes(sc);
if (have_pixel_size) {
for (size = 0; size < nsize; size++)
}
printf("Current reflection - ");
- if (current_rotation & (XCBRandRRotationReflect_X|XCBRandRRotationReflect_Y))
+ if (current_rotation & (XCB_RANDR_ROTATION_REFLECT_X|XCB_RANDR_ROTATION_REFLECT_Y))
{
- if (current_rotation & XCBRandRRotationReflect_X) printf ("X Axis ");
- if (current_rotation & XCBRandRRotationReflect_Y) printf ("Y Axis");
+ if (current_rotation & XCB_RANDR_ROTATION_REFLECT_X) printf ("X Axis ");
+ if (current_rotation & XCB_RANDR_ROTATION_REFLECT_Y) printf ("Y Axis");
}
else
printf ("none");
printf ("\n");
printf ("Reflections possible - ");
- if (rotations & (XCBRandRRotationReflect_X|XCBRandRRotationReflect_Y))
+ if (rotations & (XCB_RANDR_ROTATION_REFLECT_X|XCB_RANDR_ROTATION_REFLECT_Y))
{
- if (rotations & XCBRandRRotationReflect_X) printf ("X Axis ");
- if (rotations & XCBRandRRotationReflect_Y) printf ("Y Axis");
+ if (rotations & XCB_RANDR_ROTATION_REFLECT_X) printf ("X Axis ");
+ if (rotations & XCB_RANDR_ROTATION_REFLECT_Y) printf ("Y Axis");
}
else
printf ("none");
printf ("Setting reflection on ");
if (reflection)
{
- if (reflection & XCBRandRRotationReflect_X) printf ("X Axis ");
- if (reflection & XCBRandRRotationReflect_Y) printf ("Y Axis");
+ if (reflection & XCB_RANDR_ROTATION_REFLECT_X) printf ("X Axis ");
+ if (reflection & XCB_RANDR_ROTATION_REFLECT_Y) printf ("Y Axis");
}
else
printf ("neither axis");
printf ("\n");
- if (reflection & XCBRandRRotationReflect_X) printf("Setting reflection on X axis\n");
+ if (reflection & XCB_RANDR_ROTATION_REFLECT_X) printf("Setting reflection on X axis\n");
- if (reflection & XCBRandRRotationReflect_Y) printf("Setting reflection on Y axis\n");
+ if (reflection & XCB_RANDR_ROTATION_REFLECT_Y) printf("Setting reflection on Y axis\n");
}
/* we should test configureNotify on the root window */
values[0] = 1;
- XCBConfigureWindow(c, root->root, mask, values);
+ xcb_configure_window(c, root->root, mask, values);
- if (setit) XCBRandRSelectInput (c, root->root, XCBRandRSMScreenChangeNotify);
+ if (setit) xcb_randr_select_input (c, root->root, XCB_RANDR_NOTIFY_MASK_SCREEN_CHANGE);
if (setit) {
- XCBRandRSetScreenConfigCookie sscc;
- XCBRandRSetScreenConfigRep *config;
- sscc = XCBRandRSetScreenConfig(c, root->root, CurrentTime, sc->config_timestamp, size,
+ xcb_randr_set_screen_config_cookie_t sscc;
+ xcb_randr_set_screen_config_reply_t *config;
+ sscc = xcb_randr_set_screen_config(c, root->root, CurrentTime, sc->config_timestamp, size,
(short) (rotation | reflection), rate);
- config = XCBRandRSetScreenConfigReply(c, sscc, &err);
+ config = xcb_randr_set_screen_config_reply(c, sscc, &err);
if (!config) {
fprintf(stderr, "Can't set the screen. Error Code: %i Status:%i\n",
err->error_code, status);
status = config->status;
}
- const XCBQueryExtensionRep *qrre_rep = XCBRandRInit(c);
+ const xcb_query_extension_reply_t *qrre_rep;
+ qrre_rep = xcb_get_extension_data(c, &xcb_randr_id);
event_base = qrre_rep->first_event;
error_base = qrre_rep->first_error;
if (verbose && setit) {
- if (status == XCBRandRSetConfigSuccess)
+ if (status == XCB_RANDR_SET_CONFIG_SUCCESS)
{
while (1) {
int spo;
- event = XCBWaitForEvent(c);
+ event = xcb_wait_for_event(c);
printf ("Event received, type = %d\n", event->response_type);
#if 0
#endif
switch (event->response_type - event_base) {
- case XCBRandRScreenChangeNotify:
- sce = (XCBRandRScreenChangeNotifyEvent *) event;
+ case XCB_RANDR_SCREEN_CHANGE_NOTIFY:
+ sce = (xcb_randr_screen_change_notify_event_t *) event;
printf("Got a screen change notify event!\n");
printf(" window = %d\n root = %d\n size_index = %d\n rotation %d\n",
- (int) sce->request_window.xid, (int) sce->root.xid,
+ (int) sce->request_window, (int) sce->root,
sce->sizeID, sce->rotation);
printf(" timestamp = %d, config_timestamp = %d\n",
sce->timestamp, sce->config_timestamp);
else printf ("new Subpixel rendering model is %s\n", order[spo]);
break;
default:
- if (event->response_type == XCBConfigureNotify)
+ if (event->response_type == XCB_CONFIGURE_NOTIFY)
printf("Received ConfigureNotify Event!\n");
else
printf("unknown event received, type = %d!\n", event->response_type);
XRRFreeScreenConfigInfo(sc);
#endif
free(sc);
- free(c);
+ free(rr_version);
+ xcb_disconnect(c);
return(0);
}