⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rotatefb.c

📁 Android 一些工具
💻 C
字号:
#include <ctype.h>#include <stdio.h>#include <stdlib.h>#include <sys/mman.h>#include <fcntl.h>#include <string.h>#include <termios.h>#include <unistd.h>#include <errno.h>#include <linux/fb.h>int rotatefb_main(int argc, char *argv[]){    int c;    char *fbdev = "/dev/graphics/fb0";    int rotation = 0;    int fd;    int res;    struct fb_var_screeninfo fbinfo;    do {        c = getopt(argc, argv, "d:");        if (c == EOF)            break;        switch (c) {        case 'd':            fbdev = optarg;            break;        case '?':            fprintf(stderr, "%s: invalid option -%c\n",                argv[0], optopt);            exit(1);        }    } while (1);    if(optind + 1 != argc) {        fprintf(stderr, "%s: specify rotation\n", argv[0]);        exit(1);    }    rotation = atoi(argv[optind]);    fd = open(fbdev, O_RDWR);    if(fd < 0) {        fprintf(stderr, "cannot open %s\n", fbdev);        return 1;    }    res = ioctl(fd, FBIOGET_VSCREENINFO, &fbinfo);    if(res < 0) {        fprintf(stderr, "failed to get fbinfo: %s\n", strerror(errno));        return 1;    }    if((fbinfo.rotate ^ rotation) & 1) {        unsigned int xres = fbinfo.yres;        fbinfo.yres = fbinfo.xres;        fbinfo.xres = xres;        fbinfo.xres_virtual = fbinfo.xres;        fbinfo.yres_virtual = fbinfo.yres * 2;        if(fbinfo.yoffset == xres)            fbinfo.yoffset = fbinfo.yres;    }    fbinfo.rotate = rotation;     res = ioctl(fd, FBIOPUT_VSCREENINFO, &fbinfo);    if(res < 0) {        fprintf(stderr, "failed to set fbinfo: %s\n", strerror(errno));        return 1;    }    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -