Menu

Workaround for touchscreen drivers with no ABS_MT_TOUCH_MAJOR event

2014-09-01
2016-11-29
  • Alexander Varnin

    This plugin relies on ABS_MT_TOUCH_MAJOR event, that is optional, and not all drivers have it. The plugin doesn't work with such drivers, but this is easy to workaround. Here is a simple patch:

    --- a/plugins/mtinput-raw.c 2014-09-01 22:42:19.000000000 +0400
    +++ b/plugins/mtinput-raw.c 2014-09-01 22:42:42.000000000 +0400
    @@ -136,8 +136,7 @@ static int check_fd(struct tslib_mtinput
            return rc;
    
        if ( ( 0 == test_bit(ABS_MT_POSITION_X, absbits) ) ||
    -        ( 0 == test_bit(ABS_MT_POSITION_Y, absbits) ) ||
    -        ( 0 == test_bit(ABS_MT_TOUCH_MAJOR, absbits) ) 
    +        ( 0 == test_bit(ABS_MT_POSITION_Y, absbits) ) 
             )
        {
            fprintf(stderr, "error: could not support the device\n");
    @@ -180,7 +179,7 @@ int PushSample( struct tslib_mtinput * i
            }
            samp[num].x = i->current_x[islot];
            samp[num].y = i->current_y[islot];
    -       samp[num].pressure = i->current_p[islot];
    +       samp[num].pressure = 100;//i->current_p[islot];
            samp[num].tv = ev->time;
            i->current_x_filled[islot] = 0;
            num++;
    
     
  • Martin Kepplinger

    this isn't tslib's project page. tslib lives on github. just so you know in case of any questions.

     

Log in to post a comment.