Android触摸屏驱动屏幕翻转

项目中移植了Android触摸屏驱动,后来需要把屏幕翻转180度,此时触摸的坐标是没有适配的,修改以下代码即可:

frameworks/native/services/inputflinger/InputReader.cpp

void TouchInputMapper::configureSurface(nsecs_t when, bool* outResetNeeded) {

    int32_t oldDeviceMode = mDeviceMode;

    ……

    if (viewportChanged) {
        mViewport = newViewport;

char buffer_orientation[PROP_VALUE_MAX];   
memset(buffer_orientation, 0, sizeof(buffer_orientation));
property_get("persist.sys.panel.flip", buffer_orientation, "0");    
int cmpRet = atoi(buffer_orientation);        
ALOGI("persist.sys.hwrotation~~~~~~~~~~~~~~~~~~~~~~~~~ = %d",cmpRet);    
if (cmpRet == 0)    
{        
mViewport.orientation = DISPLAY_ORIENTATION_0;
}  
else if(cmpRet == 90)    
{
mViewport.orientation = DISPLAY_ORIENTATION_90;  
}
else if(cmpRet == 180)
{
mViewport.orientation = DISPLAY_ORIENTATION_180;  
}
else if(cmpRet == 270)
{
mViewport.orientation = DISPLAY_ORIENTATION_270;  
}

        if (mDeviceMode == DEVICE_MODE_DIRECT || mDeviceMode == DEVICE_MODE_POINTER) {

……

你可能感兴趣的:(日常记录)