diff options
Diffstat (limited to 'randr.c')
-rw-r--r-- | randr.c | 814 |
1 files changed, 814 insertions, 0 deletions
@@ -0,0 +1,814 @@ +#include <stdint.h> +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <wayland-client.h> + +#include <X11/Xproto.h> +#include <X11/Xatom.h> +#include <X11/Xlib.h> +#include <X11/extensions/Xrandr.h> + + +#include "private.h" + +struct csx_randr { + struct csx_extension extension; +}; + +int +csx_display_add_randr(struct csx_display *display) +{ + struct csx_randr *randr; + + randr = malloc(sizeof *randr); + if (randr == NULL) + return -1; + + csx_display_add_extension(display, &randr->extension, + RANDR_NAME, + RRNumberEvents, + RRNumberErrors); + display->randr = randr; + + return 0; +} + +WL_EXPORT Bool +XRRQueryExtension(Display *xdisplay, + int *event_base_return, + int *error_base_return) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + *event_base_return = randr->extension.first_event; + *error_base_return = randr->extension.first_error; + + return True; +} + +WL_EXPORT Status +XRRQueryVersion(Display *xdisplay, + int *major_version_return, + int *minor_version_return) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + *major_version_return = 1; + *minor_version_return = 4; + + return True; +} + +WL_EXPORT XRRScreenConfiguration * +XRRGetScreenInfo(Display *xdisplay, Window window) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT void +XRRFreeScreenConfigInfo(XRRScreenConfiguration *config) +{ + STUB(); +} + +WL_EXPORT Status +XRRSetScreenConfig(Display *xdisplay, + XRRScreenConfiguration *config, + Drawable draw, + int size_index, + Rotation rotation, + Time timestamp) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +/* added in v1.1, sorry for the lame name */ +WL_EXPORT Status +XRRSetScreenConfigAndRate(Display *xdisplay, + XRRScreenConfiguration *config, + Drawable draw, + int size_index, + Rotation rotation, + short rate, + Time timestamp) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +WL_EXPORT Rotation +XRRConfigRotations(XRRScreenConfiguration *config, Rotation *current_rotation) +{ + STUB(); + + return 0; +} + +WL_EXPORT Time +XRRConfigTimes(XRRScreenConfiguration *config, Time *config_timestamp) +{ + STUB(); + + return 0; +} + +WL_EXPORT XRRScreenSize * +XRRConfigSizes(XRRScreenConfiguration *config, int *nsizes) +{ + STUB(); + + return NULL; +} + +WL_EXPORT short * +XRRConfigRates(XRRScreenConfiguration *config, int sizeID, int *nrates) +{ + STUB(); + + return NULL; +} + +WL_EXPORT SizeID +XRRConfigCurrentConfiguration(XRRScreenConfiguration *config, + Rotation *rotation) +{ + STUB(); + + return 0; +} + +WL_EXPORT short +XRRConfigCurrentRate(XRRScreenConfiguration *config) +{ + STUB(); + + return 0; +} + +WL_EXPORT int +XRRRootToScreen(Display *xdisplay, Window root) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +WL_EXPORT void +XRRSelectInput(Display *xdisplay, Window window, int mask) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +WL_EXPORT Rotation +XRRRotations(Display *xdisplay, int screen, Rotation *current_rotation) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +WL_EXPORT XRRScreenSize * +XRRSizes(Display *xdisplay, int screen, int *nsizes) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT short * +XRRRates(Display *xdisplay, int screen, int sizeID, int *nrates) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT Time +XRRTimes(Display *xdisplay, int screen, Time *config_timestamp) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +WL_EXPORT Status +XRRGetScreenSizeRange(Display *xdisplay, Window window, + int *minWidth, int *minHeight, + int *maxWidth, int *maxHeight) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +WL_EXPORT void +XRRSetScreenSize(Display *xdisplay, Window window, + int width, int height, + int mmWidth, int mmHeight) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +WL_EXPORT XRRScreenResources * +XRRGetScreenResources(Display *xdisplay, Window window) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT void +XRRFreeScreenResources(XRRScreenResources *resources) +{ + STUB(); +} + +WL_EXPORT XRROutputInfo * +XRRGetOutputInfo(Display *xdisplay, XRRScreenResources *resources, RROutput output) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT void +XRRFreeOutputInfo(XRROutputInfo *outputInfo) +{ + STUB(); +} + +WL_EXPORT Atom * +XRRListOutputProperties(Display *xdisplay, RROutput output, int *nprop) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT XRRPropertyInfo * +XRRQueryOutputProperty(Display *xdisplay, RROutput output, Atom property) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT void +XRRConfigureOutputProperty(Display *xdisplay, RROutput output, Atom property, + Bool pending, Bool range, int num_values, + long *values) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +WL_EXPORT void +XRRChangeOutputProperty(Display *xdisplay, RROutput output, + Atom property, Atom type, + int format, int mode, + _Xconst unsigned char *data, int nelements) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +WL_EXPORT void +XRRDeleteOutputProperty(Display *xdisplay, RROutput output, Atom property) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +WL_EXPORT int +XRRGetOutputProperty(Display *xdisplay, RROutput output, + Atom property, long offset, long length, + Bool _delete, Bool pending, Atom req_type, + Atom *actual_type, int *actual_format, + unsigned long *nitems, unsigned long *bytes_after, + unsigned char **prop) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +WL_EXPORT XRRModeInfo * +XRRAllocModeInfo(_Xconst char *name, int nameLength) +{ + STUB(); + + return NULL; +} + +WL_EXPORT RRMode +XRRCreateMode(Display *xdisplay, Window window, XRRModeInfo *modeInfo) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +WL_EXPORT void +XRRDestroyMode(Display *xdisplay, RRMode mode) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +WL_EXPORT void +XRRAddOutputMode(Display *xdisplay, RROutput output, RRMode mode) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +WL_EXPORT void +XRRDeleteOutputMode(Display *xdisplay, RROutput output, RRMode mode) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +WL_EXPORT void +XRRFreeModeInfo(XRRModeInfo *modeInfo) +{ + STUB(); +} + +WL_EXPORT XRRCrtcInfo * +XRRGetCrtcInfo(Display *xdisplay, XRRScreenResources *resources, RRCrtc crtc) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT void +XRRFreeCrtcInfo(XRRCrtcInfo *crtcInfo) +{ + STUB(); +} + +WL_EXPORT Status +XRRSetCrtcConfig(Display *xdisplay, + XRRScreenResources *resources, + RRCrtc crtc, + Time timestamp, + int x, int y, + RRMode mode, + Rotation rotation, + RROutput *outputs, + int noutputs) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +WL_EXPORT int +XRRGetCrtcGammaSize(Display *xdisplay, RRCrtc crtc) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +WL_EXPORT XRRCrtcGamma * +XRRGetCrtcGamma(Display *xdisplay, RRCrtc crtc) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT XRRCrtcGamma * +XRRAllocGamma(int size) +{ + STUB(); + + return NULL; +} + +WL_EXPORT void +XRRSetCrtcGamma(Display *xdisplay, RRCrtc crtc, XRRCrtcGamma *gamma) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +WL_EXPORT void +XRRFreeGamma(XRRCrtcGamma *gamma) +{ + STUB(); +} + +WL_EXPORT XRRScreenResources * +XRRGetScreenResourcesCurrent(Display *xdisplay, Window window) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT void +XRRSetCrtcTransform(Display *xdisplay, + RRCrtc crtc, + XTransform *transform, + _Xconst char *filter, + XFixed *params, + int nparams) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +/* + * Get current crtc transforms and filters. + * Pass *attributes to XFree to free + */ +WL_EXPORT Status +XRRGetCrtcTransform(Display *xdisplay, + RRCrtc crtc, + XRRCrtcTransformAttributes **attributes) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +/* + * intended to take RRScreenChangeNotify, or + * ConfigureNotify (on the root window) + * returns 1 if it is an event type it understands, 0 if not +WL_EXPORT */ +int XRRUpdateConfiguration(XEvent *event) +{ + STUB(); + + return 0; +} + +WL_EXPORT XRRPanning * +XRRGetPanning(Display *xdisplay, XRRScreenResources *resources, RRCrtc crtc) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT void +XRRFreePanning(XRRPanning *panning) +{ + STUB(); +} + +WL_EXPORT Status +XRRSetPanning(Display *xdisplay, + XRRScreenResources *resources, + RRCrtc crtc, + XRRPanning *panning) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +WL_EXPORT void +XRRSetOutputPrimary(Display *xdisplay, + Window window, + RROutput output) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +WL_EXPORT RROutput +XRRGetOutputPrimary(Display *xdisplay, + Window window) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +WL_EXPORT XRRProviderResources * +XRRGetProviderResources(Display *xdisplay, Window window) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT void +XRRFreeProviderResources(XRRProviderResources *resources) +{ + STUB(); +} + +WL_EXPORT XRRProviderInfo * +XRRGetProviderInfo(Display *xdisplay, XRRScreenResources *resources, RRProvider provider) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT void +XRRFreeProviderInfo(XRRProviderInfo *provider) +{ + STUB(); +} + +WL_EXPORT int +XRRSetProviderOutputSource(Display *xdisplay, XID provider, XID source_provider) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +WL_EXPORT int +XRRSetProviderOffloadSink(Display *xdisplay, XID provider, XID sink_provider) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} + +WL_EXPORT Atom * +XRRListProviderProperties(Display *xdisplay, RRProvider provider, int *nprop) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT XRRPropertyInfo * +XRRQueryProviderProperty(Display *xdisplay, RRProvider provider, Atom property) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return NULL; +} + +WL_EXPORT void +XRRConfigureProviderProperty(Display *xdisplay, RRProvider provider, Atom property, + Bool pending, Bool range, int num_values, + long *values) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +WL_EXPORT void +XRRChangeProviderProperty(Display *xdisplay, RRProvider provider, + Atom property, Atom type, + int format, int mode, + _Xconst unsigned char *data, int nelements) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +WL_EXPORT void +XRRDeleteProviderProperty(Display *xdisplay, RRProvider provider, Atom property) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); +} + +WL_EXPORT int +XRRGetProviderProperty(Display *xdisplay, RRProvider provider, + Atom property, long offset, long length, + Bool _delete, Bool pending, Atom req_type, + Atom *actual_type, int *actual_format, + unsigned long *nitems, unsigned long *bytes_after, + unsigned char **prop) +{ + struct csx_display *display = csx_display(xdisplay); + struct csx_randr *randr = display->randr; + + csx_display_enter(display, randr->extension.major, X_RRQueryVersion); + + STUB(); + + return 0; +} |