ForceRotation
(force rotate screen orientaion of N900) |
(wikify, use <source>) |
||
| Line 1: | Line 1: | ||
| - | If you need the way to force some rotation of your N900 screen, this is for you. | + | If you need the way to force some rotation of your [[Nokia N900|N900]] screen, this is for you. |
| - | + | <source lang="c"> | |
| - | + | /* | |
| - | + | gcc rotate.c -lX11 -lXrandr | |
| - | + | */ | |
| - | + | #include <X11/Xlib.h> | |
| - | + | #include <X11/extensions/Xrandr.h> | |
| - | + | ||
| - | + | static void set_rotation (Rotation r_to) { | |
| - | + | Rotation r; | |
| - | + | int screen = -1; | |
| - | + | XRRScreenConfiguration* config; | |
| - | + | int current_size=0; | |
| - | + | ||
| - | + | Display* display; | |
| - | + | Window rootWindow; | |
| - | + | ||
| - | + | display = XOpenDisplay(":0"); | |
| - | + | if (display == NULL) { | |
| - | + | return; | |
| - | + | } | |
| - | + | ||
| - | + | screen = DefaultScreen(display); | |
| - | + | rootWindow = RootWindow(display, screen); | |
| - | + | XRRRotations(display, screen, &r); | |
| - | + | config = XRRGetScreenInfo(display, rootWindow); | |
| - | + | current_size = XRRConfigCurrentConfiguration (config, &r); | |
| - | + | XRRSetScreenConfig(display, config, rootWindow, current_size, r_to, CurrentTime); | |
| - | + | } | |
| - | + | ||
| - | + | int main (int argc, char *argv[]) { | |
| - | + | set_rotation(RR_Rotate_90); | |
| - | + | //set_rotation(RR_Rotate_270); | |
| - | + | //set_rotation(RR_Rotate_180); | |
| - | + | //set_rotation(RR_Rotate_0); | |
| + | } | ||
| + | </source> | ||
| + | |||
| + | [[Category:Development]] | ||
| + | [[Category:N900]] | ||
Revision as of 07:56, 4 May 2011
If you need the way to force some rotation of your N900 screen, this is for you.
/* gcc rotate.c -lX11 -lXrandr */ #include <X11/Xlib.h> #include <X11/extensions/Xrandr.h> static void set_rotation (Rotation r_to) { Rotation r; int screen = -1; XRRScreenConfiguration* config; int current_size=0; Display* display; Window rootWindow; display = XOpenDisplay(":0"); if (display == NULL) { return; } screen = DefaultScreen(display); rootWindow = RootWindow(display, screen); XRRRotations(display, screen, &r); config = XRRGetScreenInfo(display, rootWindow); current_size = XRRConfigCurrentConfiguration (config, &r); XRRSetScreenConfig(display, config, rootWindow, current_size, r_to, CurrentTime); } int main (int argc, char *argv[]) { set_rotation(RR_Rotate_90); //set_rotation(RR_Rotate_270); //set_rotation(RR_Rotate_180); //set_rotation(RR_Rotate_0); }
