如何區分/dev/input/event


  方法是把每一個/dev/input/event打開。通過ioctl函數來讀取設備name,每一個設備name是固定的,可以根據name區分event。我這是查找觸摸事件為例:代碼如下:

 1 static int getTouchEventNum()
 2 {
 3     char          name[64];           /* RATS: Use ok, but could be better */  
 4     char          buf[256] = { 0, };  /* RATS: Use ok */  
 5     int           fd = 0;   
 6     int           i;    
 7     for (i = 0; i < 32; i++) 
 8     {  
 9         sprintf(name, "/dev/input/event%d", i);  
10         if ((fd = open(name, O_RDONLY, 0)) >= 0) 
11         {  
12             ioctl(fd, EVIOCGNAME(sizeof(buf)), buf);   
13             if(strstr(buf, "MTOUC Touch"))
14             {
15                 close(fd);
16                 return i;
17             }
18             //printf("%s\n", name);  
19             //printf("name: %s\n", buf);           
20             close(fd);  
21         }
22     }
23     return -1;
24 }

 這個函數的目的就是返回名字里有 MTOUC Touch 這個字段的event設備號,MTOUC Touch這個就是觸摸的設備名字。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM