微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > 谁知道上层在Gsensor翻转的时候,如何对TP报点进行坐标转换?

谁知道上层在Gsensor翻转的时候,如何对TP报点进行坐标转换?

时间:10-02 整理:3721RD 点击:
谁知道啊?

顶一个!

有两种方法,一种是在 kernel 的 TP 驱动上报坐标前进行转换,另一种方法就是在 system 层在 TP 坐标的分发事件之前进行转换;
下面的代码是我在  kernel 的 TP 驱动添加的适配LCD旋转 90,180,270 三个旋转角度相关部分代码,可以根据自己的实际情况修改一下,然后在 system 层也是类似这样进行转换。

#define  TPD_ROTATE_90
//#define  TPD_ROTATE_180
//#define  TPD_ROTATE_270
#define  TPD_RES_X  1080     // 在MTK 的 kernel 代码里,这个宏不需要定义,是全局的宏,这里我添加是为了说明情况
#define  TPD_RES_Y  1920     // 在MTK 的 kernel 代码里,这个宏不需要定义,是全局的宏,这里我添加是为了说明情况

#if defined(TPD_ROTATE_90) || defined(TPD_ROTATE_270)|| defined(TPD_ROTATE_180)
static void tpd_swap_xy(int *x, int *y)
{
        int temp = 0;

        temp = *x;
        *x = *y;
        *y = temp;
}

static void tpd_rotate_90(int *x, int *y)
{
        int temp;

        *x = TPD_RES_X + 1 - *x;

        *x = (*x * TPD_RES_Y) / TPD_RES_X;
        *y = (*y * TPD_RES_X) / TPD_RES_Y;

        tpd_swap_xy(x, y);
}
static void tpd_rotate_180(int *x, int *y)
{
        *y = TPD_RES_Y + 1 - *y;
        *x = TPD_RES_X + 1 - *x;
}
static void tpd_rotate_270(int *x, int *y)
{
        int temp;

        *y = TPD_RES_Y + 1 - *y;

        *x = (*x * TPD_RES_Y) / TPD_RES_X;
        *y = (*y * TPD_RES_X) / TPD_RES_Y;

        tpd_swap_xy(x, y);
}
#endif

上一篇:SIM热插拔
下一篇:MT6169 RX NF CIRCLE

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top