Diffstat (limited to 'libopie2/opiecore/linux/oinputsystem.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | libopie2/opiecore/linux/oinputsystem.cpp | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/libopie2/opiecore/linux/oinputsystem.cpp b/libopie2/opiecore/linux/oinputsystem.cpp index bad27ed..ebc417f 100644 --- a/libopie2/opiecore/linux/oinputsystem.cpp +++ b/libopie2/opiecore/linux/oinputsystem.cpp @@ -189,4 +189,20 @@ bool OInputDevice::isHeld( Key bit ) const +bool OInputDevice::isHeld( Switch bit ) const +{ + BIT_MASK( switches, SW_MAX ); + + if( ioctl( _fd, EVIOCGSW( sizeof(switches) ), switches ) < 0 ) + { + perror( "EVIOCGSW" ); + return false; + } + else + { + return BIT_TEST( switches, bit ); + } +} + + QString OInputDevice::globalKeyMask() const { @@ -211,4 +227,26 @@ QString OInputDevice::globalKeyMask() const +QString OInputDevice::globalSwitchMask() const +{ + BIT_MASK( switches, SW_MAX ); + + if( ioctl( _fd, EVIOCGSW( sizeof(switches) ), switches ) < 0 ) + { + perror( "EVIOCGSW" ); + return QString::null; + } + else + { + QString switchmask; + for ( int i = 0; i < SW_MAX; ++i ) + { + if ( BIT_TEST( switches, i ) ) switchmask.append( QString().sprintf( "%0d, ", i ) ); + } + return switchmask; + + } +} + + bool OInputDevice::isValid( const QString& path ) { |