Fixed rather embarrassing function naming conflict with low level RANDR library

git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1120049 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
v3.5.13-sru
tpearson 14 years ago
parent 3be8f38c82
commit 8949c3abab

@ -26,72 +26,72 @@
ScreenInfo* KRandrSimpleAPI::read_screen_info (Display *display)
{
return read_screen_info(display);
return internal_read_screen_info(display);
}
int KRandrSimpleAPI::set_screen_size (ScreenInfo *screen_info)
{
return set_screen_size(screen_info);
return internal_set_screen_size(screen_info);
}
void KRandrSimpleAPI::output_auto (ScreenInfo *screen_info, OutputInfo *output_info)
{
output_auto (screen_info, output_info);
internal_output_auto (screen_info, output_info);
}
void KRandrSimpleAPI::output_off(ScreenInfo *screen_info, OutputInfo *output)
{
output_off(screen_info, output);
internal_output_off(screen_info, output);
}
CrtcInfo* KRandrSimpleAPI::auto_find_crtc (ScreenInfo *screen_info, OutputInfo *output_info)
{
return auto_find_crtc (screen_info, output_info);
return internal_auto_find_crtc (screen_info, output_info);
}
XRRModeInfo *KRandrSimpleAPI::find_mode_by_xid (ScreenInfo *screen_info, RRMode mode_id)
{
return find_mode_by_xid (screen_info, mode_id);
return internal_find_mode_by_xid (screen_info, mode_id);
}
int KRandrSimpleAPI::mode_height (XRRModeInfo *mode_info, Rotation rotation)
{
return mode_height (mode_info, rotation);
return internal_mode_height (mode_info, rotation);
}
int KRandrSimpleAPI::mode_width (XRRModeInfo *mode_info, Rotation rotation)
{
return mode_width (mode_info, rotation);
return internal_mode_width (mode_info, rotation);
}
int KRandrSimpleAPI::get_width_by_output_id (ScreenInfo *screen_info, RROutput output_id)
{
return get_width_by_output_id (screen_info, output_id);
return internal_get_width_by_output_id (screen_info, output_id);
}
int KRandrSimpleAPI::get_height_by_output_id (ScreenInfo *screen_info, RROutput output_id)
{
return get_height_by_output_id (screen_info, output_id);
return internal_get_height_by_output_id (screen_info, output_id);
}
char *KRandrSimpleAPI::get_output_name (ScreenInfo *screen_info, RROutput id)
{
return get_output_name (screen_info, id);
return internal_get_output_name (screen_info, id);
}
Status KRandrSimpleAPI::crtc_apply (CrtcInfo *crtc_info)
{
return crtc_apply (crtc_info);
return internal_crtc_apply (crtc_info);
}
Status KRandrSimpleAPI::crtc_disable (CrtcInfo *crtc)
{
return crtc_disable (crtc);
return internal_crtc_disable (crtc);
}
int KRandrSimpleAPI::main_low_apply (ScreenInfo *screen_info)
{
return main_low_apply (screen_info);
return internal_main_low_apply (screen_info);
}
bool KRandrSimpleAPI::kRandrHasRandr(void)

@ -1,16 +1,17 @@
/*
* Copyright © 2010 Raptor Engineering
* Copyright © 2007 Intel Corporation
*
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@ -24,32 +25,32 @@
#include <stdio.h>
#include <string.h>
Status crtc_disable (struct CrtcInfo *crtc);
Status internal_crtc_disable (struct CrtcInfo *crtc);
char * get_output_name (struct ScreenInfo *screen_info, RROutput id)
char * internal_get_output_name (struct ScreenInfo *screen_info, RROutput id)
{
char *output_name = NULL;
int i;
for (i = 0; i < screen_info->n_output; i++) {
if (id == screen_info->outputs[i]->id) {
output_name = screen_info->outputs[i]->info->name;
}
}
if (!output_name) {
output_name = "Unknown";
}
return output_name;
}
XRRModeInfo * find_mode_by_xid (struct ScreenInfo *screen_info, RRMode mode_id)
XRRModeInfo * internal_find_mode_by_xid (struct ScreenInfo *screen_info, RRMode mode_id)
{
XRRModeInfo *mode_info = NULL;
XRRScreenResources *res;
int i;
res = screen_info->res;
for (i = 0; i < res->nmode; i++) {
if (mode_id == res->modes[i].id) {
@ -57,25 +58,25 @@ XRRModeInfo * find_mode_by_xid (struct ScreenInfo *screen_info, RRMode mode_id)
break;
}
}
return mode_info;
}
static XRRCrtcInfo * find_crtc_by_xid (struct ScreenInfo *screen_info, RRCrtc crtc_id)
static XRRCrtcInfo * internal_find_crtc_by_xid (struct ScreenInfo *screen_info, RRCrtc crtc_id)
{
XRRCrtcInfo *crtc_info;
Display *dpy;
XRRScreenResources *res;
dpy = screen_info->dpy;
res = screen_info->res;
crtc_info = XRRGetCrtcInfo (dpy, res, crtc_id);
return crtc_info;
}
int get_width_by_output_id (struct ScreenInfo *screen_info, RROutput output_id)
int internal_get_width_by_output_id (struct ScreenInfo *screen_info, RROutput output_id)
{
struct OutputInfo *output_info;
struct CrtcInfo *crtc_info;
@ -83,7 +84,7 @@ int get_width_by_output_id (struct ScreenInfo *screen_info, RROutput output_id)
XRRModeInfo *mode_info;
int i;
int width = -1;
for (i = 0; i < screen_info->n_output; i++) {
if (output_id == screen_info->outputs[i]->id) {
crtc_info = screen_info->outputs[i]->cur_crtc;
@ -92,18 +93,18 @@ int get_width_by_output_id (struct ScreenInfo *screen_info, RROutput output_id)
break;
}
mode_id = crtc_info->cur_mode_id;
mode_info = find_mode_by_xid (screen_info, mode_id);
width = mode_width (mode_info, crtc_info->cur_rotation);
mode_info = internal_find_mode_by_xid (screen_info, mode_id);
width = internal_mode_width (mode_info, crtc_info->cur_rotation);
break;
}
}
return width;
}
int get_height_by_output_id (struct ScreenInfo *screen_info, RROutput output_id)
int internal_get_height_by_output_id (struct ScreenInfo *screen_info, RROutput output_id)
{
struct OutputInfo *output_info;
struct CrtcInfo *crtc_info;
@ -111,7 +112,7 @@ int get_height_by_output_id (struct ScreenInfo *screen_info, RROutput output_id)
XRRModeInfo *mode_info;
int i;
int height = -1;
for (i = 0; i < screen_info->n_output; i++) {
if (output_id == screen_info->outputs[i]->id) {
crtc_info = screen_info->outputs[i]->cur_crtc;
@ -120,18 +121,18 @@ int get_height_by_output_id (struct ScreenInfo *screen_info, RROutput output_id)
break;
}
mode_id = crtc_info->cur_mode_id;
mode_info = find_mode_by_xid (screen_info, mode_id);
height = mode_height (mode_info, crtc_info->cur_rotation);
mode_info = internal_find_mode_by_xid (screen_info, mode_id);
height = internal_mode_height (mode_info, crtc_info->cur_rotation);
break;
}
}
return height;
}
int mode_height (XRRModeInfo *mode_info, Rotation rotation)
int internal_mode_height (XRRModeInfo *mode_info, Rotation rotation)
{
switch (rotation & 0xf) {
case RR_Rotate_0:
@ -145,7 +146,7 @@ int mode_height (XRRModeInfo *mode_info, Rotation rotation)
}
}
int mode_width (XRRModeInfo *mode_info, Rotation rotation)
int internal_mode_width (XRRModeInfo *mode_info, Rotation rotation)
{
switch (rotation & 0xf) {
case RR_Rotate_0:
@ -160,41 +161,41 @@ int mode_width (XRRModeInfo *mode_info, Rotation rotation)
}
static struct CrtcInfo * find_crtc (struct ScreenInfo *screen_info, XRROutputInfo *output)
static struct CrtcInfo * internal_find_crtc (struct ScreenInfo *screen_info, XRROutputInfo *output)
{
struct CrtcInfo *crtc_info = NULL;
int i;
for (i = 0; i < screen_info->n_crtc; i++) {
if (screen_info->crtcs[i]->id == output->crtc) {
crtc_info = screen_info->crtcs[i];
break;
}
}
return crtc_info;
}
struct CrtcInfo * auto_find_crtc (struct ScreenInfo *screen_info, struct OutputInfo *output_info)
struct CrtcInfo * internal_auto_find_crtc (struct ScreenInfo *screen_info, struct OutputInfo *output_info)
{
struct CrtcInfo *crtc_info = NULL;
int i;
for (i = 0; i < screen_info->n_crtc; i++) {
if (0 == screen_info->crtcs[i]->cur_noutput) {
crtc_info = screen_info->crtcs[i];
break;
}
}
if (NULL == crtc_info) {
crtc_info = screen_info->crtcs[0];
}
return crtc_info;
}
int set_screen_size (struct ScreenInfo *screen_info)
int internal_set_screen_size (struct ScreenInfo *screen_info)
{
Display *dpy;
int screen;
@ -205,22 +206,22 @@ int set_screen_size (struct ScreenInfo *screen_info)
int mmW, mmH;
int max_width = 0, max_height = 0;
int i;
dpy = screen_info->dpy;
screen = DefaultScreen (dpy);
for (i = 0; i < screen_info->n_crtc; i++) {
crtc = screen_info->crtcs[i];
if (!crtc->cur_mode_id) {
continue;
}
mode_info = find_mode_by_xid (screen_info, crtc->cur_mode_id);
mode_info = internal_find_mode_by_xid (screen_info, crtc->cur_mode_id);
cur_x = crtc->cur_x;
cur_y = crtc->cur_y;
w = mode_width (mode_info, crtc->cur_rotation);
h = mode_height (mode_info, crtc->cur_rotation);
w = internal_mode_width (mode_info, crtc->cur_rotation);
h = internal_mode_height (mode_info, crtc->cur_rotation);
if (cur_x + w > max_width) {
max_width = cur_x + w;
}
@ -228,10 +229,10 @@ int set_screen_size (struct ScreenInfo *screen_info)
max_height = cur_y + h;
}
}
if (max_width > screen_info->max_width) {
#if RANDR_GUI_DEBUG
fprintf (stderr, "user set screen width %d, larger than max width %d, set to max width\n",
fprintf (stderr, "user set screen width %d, larger than max width %d, set to max width\n",
cur_x + w, screen_info->max_width);
#endif
return 0;
@ -239,25 +240,25 @@ int set_screen_size (struct ScreenInfo *screen_info)
screen_info->cur_width = screen_info->min_width;
} else {
screen_info->cur_width = max_width;
}
}
if (max_height > screen_info->max_height) {
#if RANDR_GUI_DEBUG
fprintf (stderr, "user set screen height %d, larger than max height %d, set to max height\n",
fprintf (stderr, "user set screen height %d, larger than max height %d, set to max height\n",
cur_y + h, screen_info->max_height);
#endif
#endif
return 0;
} else if (max_height < screen_info->min_height) {
screen_info->cur_height = screen_info->min_height;
} else {
screen_info->cur_height = max_height;
}
/* calculate mmWidth, mmHeight */
if (screen_info->cur_width != DisplayWidth (dpy, screen) ||
screen_info->cur_height != DisplayHeight (dpy, screen) ) {
double dpi;
double dpi;
dpi = (25.4 * DisplayHeight (dpy, screen)) / DisplayHeightMM(dpy, screen);
mmW = (25.4 * screen_info->cur_width) / dpi;
mmH = (25.4 * screen_info->cur_height) / dpi;
@ -268,11 +269,11 @@ int set_screen_size (struct ScreenInfo *screen_info)
screen_info->cur_mmWidth = mmW;
screen_info->cur_mmHeight = mmH;
return 1;
}
void screen_apply (struct ScreenInfo *screen_info)
void internal_screen_apply (struct ScreenInfo *screen_info)
{
int width, height;
int mmWidth, mmHeight;
@ -280,7 +281,7 @@ void screen_apply (struct ScreenInfo *screen_info)
Window window;
int screen;
static int first = 1;
width = screen_info->cur_width;
height = screen_info->cur_height;
mmWidth = screen_info->cur_mmWidth;
@ -288,7 +289,7 @@ void screen_apply (struct ScreenInfo *screen_info)
dpy = screen_info->dpy;
window = screen_info->window;
screen = DefaultScreen (dpy);
cur_dpy = XOpenDisplay (NULL);
if (width == DisplayWidth (cur_dpy, screen) &&
@ -301,7 +302,7 @@ void screen_apply (struct ScreenInfo *screen_info)
}
}
Status crtc_apply (struct CrtcInfo *crtc_info)
Status internal_crtc_apply (struct CrtcInfo *crtc_info)
{
struct ScreenInfo *screen_info;
XRRCrtcInfo *rr_crtc_info;
@ -315,74 +316,74 @@ Status crtc_apply (struct CrtcInfo *crtc_info)
int noutput;
Status s;
int i;
/*if (!crtc_info->changed) {
return RRSetConfigSuccess;
}*/
screen_info = crtc_info->screen_info;
dpy = screen_info->dpy;
res = screen_info->res;
crtc_id = crtc_info->id;
x = crtc_info->cur_x;
y = crtc_info->cur_y;
mode_id = crtc_info->cur_mode_id;
rotation = crtc_info->cur_rotation;
noutput = crtc_info->cur_noutput;
if (0 == noutput) {
return crtc_disable (crtc_info);
return internal_crtc_disable (crtc_info);
}
outputs = malloc (sizeof (RROutput) * noutput);
noutput = 0;
for (i = 0; i < screen_info->n_output; i++) {
struct OutputInfo *output_info = screen_info->outputs[i];
if (output_info->cur_crtc && crtc_id == output_info->cur_crtc->id) {
outputs[noutput++] = output_info->id;
}
}
s = XRRSetCrtcConfig (dpy, res, crtc_id, CurrentTime,
x, y, mode_id, rotation,
outputs, noutput);
if (RRSetConfigSuccess == s) {
crtc_info->changed = 0;
}
}
free (outputs);
return s;
}
Status crtc_disable (struct CrtcInfo *crtc)
Status internal_crtc_disable (struct CrtcInfo *crtc)
{
struct ScreenInfo *screen_info;
screen_info = crtc->screen_info;
return XRRSetCrtcConfig (screen_info->dpy, screen_info->res, crtc->id, CurrentTime,
0, 0, None, RR_Rotate_0, NULL, 0);
}
struct ScreenInfo* read_screen_info (Display *display)
struct ScreenInfo* internal_read_screen_info (Display *display)
{
struct ScreenInfo *screen_info;
int screen_num;
Window root_window;
XRRScreenResources *sr;
int i;
screen_num = DefaultScreen (display);
root_window = RootWindow (display, screen_num);
sr = XRRGetScreenResources (display, root_window);
screen_info = malloc (sizeof (struct ScreenInfo));
screen_info->dpy = display;
screen_info->window = root_window;
@ -396,16 +397,16 @@ struct ScreenInfo* read_screen_info (Display *display)
screen_info->outputs = malloc (sizeof (struct OutputInfo *) * sr->noutput);
screen_info->crtcs = malloc (sizeof (struct CrtcInfo *) * sr->ncrtc);
screen_info->clone = 0;
XRRGetScreenSizeRange (display, root_window, &screen_info->min_width, &screen_info->min_height, &screen_info->max_width, &screen_info->max_height);
/* get crtc */
for (i = 0; i < sr->ncrtc; i++) {
struct CrtcInfo *crtc_info;
screen_info->crtcs[i] = malloc (sizeof (struct CrtcInfo));
crtc_info = screen_info->crtcs[i];
XRRCrtcInfo *xrr_crtc_info = XRRGetCrtcInfo (display, sr, sr->crtcs[i]);
crtc_info->id = sr->crtcs[i];
crtc_info->info = xrr_crtc_info;
crtc_info->cur_x = xrr_crtc_info->x;
@ -414,39 +415,39 @@ struct ScreenInfo* read_screen_info (Display *display)
crtc_info->cur_rotation = xrr_crtc_info->rotation;
crtc_info->rotations = xrr_crtc_info->rotations;
crtc_info->cur_noutput = xrr_crtc_info->noutput;
crtc_info->changed = 0;
crtc_info->screen_info = screen_info;
}
/* get output */
for (i = 0; i < sr->noutput; i++) {
struct OutputInfo *output;
screen_info->outputs[i] = malloc (sizeof (struct OutputInfo));
output = screen_info->outputs[i];
output->id = sr->outputs[i];
output->info = XRRGetOutputInfo (display, sr, sr->outputs[i]);
output->cur_crtc = find_crtc (screen_info, output->info);
output->cur_crtc = internal_find_crtc (screen_info, output->info);
output->auto_set = 0;
if (output->cur_crtc) {
output->off_set = 0;
} else {
output->off_set = 1;
}
}
/* set current crtc */
screen_info->cur_crtc = screen_info->outputs[0]->cur_crtc;
screen_info->primary_crtc = screen_info->cur_crtc;
screen_info->cur_output = screen_info->outputs[0];
return screen_info;
return screen_info;
}
void free_screen_info (struct ScreenInfo *screen_info)
void internal_free_screen_info (struct ScreenInfo *screen_info)
{
free (screen_info->outputs);
free (screen_info->crtcs);
@ -456,26 +457,26 @@ void free_screen_info (struct ScreenInfo *screen_info)
/*check if other outputs that connected to the same crtc support this mode*/
static int check_mode (struct ScreenInfo *screen_info, struct OutputInfo *output, RRMode mode_id)
static int internal_check_mode (struct ScreenInfo *screen_info, struct OutputInfo *output, RRMode mode_id)
{
XRRCrtcInfo *crtc_info;
/* XRR */
int i, j;
int mode_ok = 1;
if (!output->cur_crtc) {
return 1;
}
crtc_info = output->cur_crtc->info;
for (i = 0; i < crtc_info->noutput; i++) {
XRROutputInfo *output_info;
int nmode;
if (output->id == crtc_info->outputs[i]) {
continue;
}
mode_ok = 0;
output_info = XRRGetOutputInfo (screen_info->dpy, screen_info->res, crtc_info->outputs[i]);
nmode = output_info->nmode;
@ -489,15 +490,15 @@ static int check_mode (struct ScreenInfo *screen_info, struct OutputInfo *output
break;
}
}
return mode_ok;
}
static RRCrtc get_crtc_id_by_output_id (struct ScreenInfo *screen_info, RROutput output_id)
static RRCrtc internal_get_crtc_id_by_output_id (struct ScreenInfo *screen_info, RROutput output_id)
{
int i;
RRCrtc crtc_id = -1;
for (i = 0; i < screen_info->n_output; i++) {
if (output_id == screen_info->outputs[i]->id) {
if (screen_info->outputs[i]->cur_crtc) {
@ -508,28 +509,28 @@ static RRCrtc get_crtc_id_by_output_id (struct ScreenInfo *screen_info, RROutput
break;
}
}
return crtc_id;
}
static struct CrtcInfo *
get_crtc_info_by_xid (struct ScreenInfo *screen_info, RRCrtc crtc_id)
internal_get_crtc_info_by_xid (struct ScreenInfo *screen_info, RRCrtc crtc_id)
{
struct CrtcInfo *crtc_info = NULL;
int i;
for (i = 0; i < screen_info->n_crtc; i++) {
if (crtc_id == screen_info->crtcs[i]->id) {
crtc_info = screen_info->crtcs[i];
break;
}
}
return crtc_info;
}
static XRRModeInfo *
preferred_mode (struct ScreenInfo *screen_info, struct OutputInfo *output)
internal_preferred_mode (struct ScreenInfo *screen_info, struct OutputInfo *output)
{
XRROutputInfo *output_info = output->info;
Display *dpy;
@ -543,7 +544,7 @@ preferred_mode (struct ScreenInfo *screen_info, struct OutputInfo *output)
best = NULL;
bestDist = 0;
for (m = 0; m < output_info->nmode; m++) {
XRRModeInfo *mode_info = find_mode_by_xid (screen_info, output_info->modes[m]);
XRRModeInfo *mode_info = internal_find_mode_by_xid (screen_info, output_info->modes[m]);
int dist;
if (m < output_info->npreferred)
@ -563,85 +564,85 @@ preferred_mode (struct ScreenInfo *screen_info, struct OutputInfo *output)
return best;
}
int main_low_apply (struct ScreenInfo *screen_info)
int internal_main_low_apply (struct ScreenInfo *screen_info)
{
int i;
struct CrtcInfo *crtc_info;
/* set_positions (screen_info); */
if (!set_screen_size (screen_info)) {
if (!internal_set_screen_size (screen_info)) {
printf("Screen Size FAILURE\n\r");
return 0;
}
for (i = 0; i < screen_info->n_crtc; i++) {
int old_x, old_y, old_w, old_h;
XRRCrtcInfo *crtc_info = XRRGetCrtcInfo (screen_info->dpy, screen_info->res, screen_info->crtcs[i]->id);
XRRModeInfo *old_mode = find_mode_by_xid (screen_info, crtc_info->mode);
XRRModeInfo *old_mode = internal_find_mode_by_xid (screen_info, crtc_info->mode);
if (crtc_info->mode == None) {
continue;
}
old_x = crtc_info->x;
old_y = crtc_info->y;
old_w = mode_width (old_mode, crtc_info->rotation);
old_h = mode_height (old_mode, crtc_info->rotation);
old_w = internal_mode_width (old_mode, crtc_info->rotation);
old_h = internal_mode_height (old_mode, crtc_info->rotation);
if (old_x + old_w <= screen_info->cur_width &&
old_y + old_h <= screen_info->cur_height ) {
continue;
continue;
} else {
crtc_disable (screen_info->crtcs[i]);
internal_crtc_disable (screen_info->crtcs[i]);
}
}
screen_apply (screen_info);
internal_screen_apply (screen_info);
for (i = 0; i < screen_info->n_crtc; i++) {
Status s;
crtc_info = screen_info->crtcs[i];
s = crtc_apply (crtc_info);
s = internal_crtc_apply (crtc_info);
if (RRSetConfigSuccess != s) {
fprintf (stderr, "crtc apply error\n");
}
}
return 1;
}
void output_auto (struct ScreenInfo *screen_info, struct OutputInfo *output_info)
void internal_output_auto (struct ScreenInfo *screen_info, struct OutputInfo *output_info)
{
XRRModeInfo *mode_info;
RRMode mode_id;
struct CrtcInfo *crtc_info;
XRROutputInfo *probe_output_info;
if (RR_Disconnected == output_info->info->connection) {
XRRScreenResources *cur_res;
cur_res = XRRGetScreenResources (screen_info->dpy, screen_info->window);
probe_output_info = XRRGetOutputInfo (screen_info->dpy, cur_res, output_info->id);
if (RR_Disconnected != probe_output_info->connection) {
output_info->info = probe_output_info;
output_info->cur_crtc = auto_find_crtc (screen_info, output_info);
output_info->cur_crtc = internal_auto_find_crtc (screen_info, output_info);
}
}
mode_info = preferred_mode (screen_info, output_info);
mode_info = internal_preferred_mode (screen_info, output_info);
if (!mode_info) {
return;
}
mode_id = mode_info->id;
crtc_info = output_info->cur_crtc;
if (crtc_info) {
crtc_info->cur_mode_id = mode_id;
} else {
crtc_info = auto_find_crtc (screen_info, output_info);
crtc_info = internal_auto_find_crtc (screen_info, output_info);
if (!crtc_info) {
#if RANDR_GUI_DEBUG
fprintf (stderr, "Can not find usable CRTC\n");
@ -656,10 +657,10 @@ void output_auto (struct ScreenInfo *screen_info, struct OutputInfo *output_info
screen_info->cur_crtc->changed = 1;
}
}
}
void output_off (struct ScreenInfo *screen_info, struct OutputInfo *output)
void internal_output_off (struct ScreenInfo *screen_info, struct OutputInfo *output)
{
if (output->cur_crtc) {
output->cur_crtc->cur_noutput--;

@ -1,16 +1,16 @@
/*
* Copyright © 2007 Intel Corporation
*
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
@ -34,9 +34,9 @@ struct CrtcInfo {
Rotation cur_rotation;
Rotation rotations;
int cur_noutput;
int changed;
struct ScreenInfo *screen_info;
};
@ -44,7 +44,7 @@ struct OutputInfo {
RROutput id;
XRROutputInfo *info;
struct CrtcInfo *cur_crtc;
int auto_set;
int off_set;
};
@ -59,15 +59,15 @@ struct ScreenInfo {
int cur_height;
int cur_mmWidth;
int cur_mmHeight;
int n_output;
int n_crtc;
struct OutputInfo **outputs;
struct CrtcInfo **crtcs;
int clone;
struct CrtcInfo *primary_crtc;
struct CrtcInfo *cur_crtc;
struct OutputInfo *cur_output;
};
@ -80,22 +80,22 @@ extern "C" {
#endif
void free_screen_info (struct ScreenInfo *screen_info);
struct ScreenInfo* read_screen_info (Display *);
int set_screen_size (struct ScreenInfo *screen_info);
void output_auto (struct ScreenInfo *screen_info, struct OutputInfo *output_info);
void output_off (struct ScreenInfo *screen_info, struct OutputInfo *output);
struct CrtcInfo* auto_find_crtc (struct ScreenInfo *screen_info, struct OutputInfo *output_info);
XRRModeInfo *find_mode_by_xid (struct ScreenInfo *screen_info, RRMode mode_id);
int mode_height (XRRModeInfo *mode_info, Rotation rotation);
int mode_width (XRRModeInfo *mode_info, Rotation rotation);
int get_width_by_output_id (struct ScreenInfo *screen_info, RROutput output_id);
int get_height_by_output_id (struct ScreenInfo *screen_info, RROutput output_id);
char *get_output_name (struct ScreenInfo *screen_info, RROutput id);
Status crtc_apply (struct CrtcInfo *crtc_info);
Status crtc_disable (struct CrtcInfo *crtc);
int main_low_apply (struct ScreenInfo *screen_info);
struct ScreenInfo* internal_read_screen_info (Display *);
int internal_set_screen_size (struct ScreenInfo *screen_info);
void internal_output_auto (struct ScreenInfo *screen_info, struct OutputInfo *output_info);
void internal_output_off (struct ScreenInfo *screen_info, struct OutputInfo *output);
struct CrtcInfo* internal_auto_find_crtc (struct ScreenInfo *screen_info, struct OutputInfo *output_info);
XRRModeInfo *internal_find_mode_by_xid (struct ScreenInfo *screen_info, RRMode mode_id);
int internal_mode_height (XRRModeInfo *mode_info, Rotation rotation);
int internal_mode_width (XRRModeInfo *mode_info, Rotation rotation);
int internal_get_width_by_output_id (struct ScreenInfo *screen_info, RROutput output_id);
int internal_get_height_by_output_id (struct ScreenInfo *screen_info, RROutput output_id);
char *internal_get_output_name (struct ScreenInfo *screen_info, RROutput id);
Status internal_crtc_apply (struct CrtcInfo *crtc_info);
Status internal_crtc_disable (struct CrtcInfo *crtc);
int internal_main_low_apply (struct ScreenInfo *screen_info);
#ifdef __cplusplus
}

Loading…
Cancel
Save