static Map < Integer , LinuxAbsoluteInputCapabilities > getCapabilities ( File devNode , BitSet axes ) throws IOException { if ( axes == null || axes . isEmpty ( ) ) { return null ; } LinuxSystem system = LinuxSystem . getLinuxSystem ( ) ; LinuxSystem . InputAbsInfo info = new LinuxSystem . InputAbsInfo ( ) ; long fd = system . open ( devNode . getPath ( ) , LinuxSystem . O_RDONLY ) ; if ( fd == - 1 ) { throw new IOException ( system . getErrorMessage ( ) ) ; } Map < Integer , LinuxAbsoluteInputCapabilities > caps = new HashMap < Integer , LinuxAbsoluteInputCapabilities > ( ) ; for ( int i = 0 ; ( i = axes . nextSetBit ( i ) ) != - 1 ; i ++ ) { caps . put ( i , new LinuxAbsoluteInputCapabilities ( system , info , fd , i ) ) ; } system . close ( fd ) ; return caps ; }
Reads capabilities from a device node .