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); }