summaryrefslogtreecommitdiff
path: root/libopie2/opiecore/linux/oinputsystem.cpp
authormickeyl <mickeyl>2005-08-31 10:21:12 (UTC)
committer mickeyl <mickeyl>2005-08-31 10:21:12 (UTC)
commitcde931654d1966be6989e6c8f3cfacb23e6822a2 (patch) (side-by-side diff)
tree9a8244f4da0180a685554ebca0d7b628630fb42e /libopie2/opiecore/linux/oinputsystem.cpp
parent142e7e82efa6dd45884805c34fadec2160225e4b (diff)
downloadopie-cde931654d1966be6989e6c8f3cfacb23e6822a2.zip
opie-cde931654d1966be6989e6c8f3cfacb23e6822a2.tar.gz
opie-cde931654d1966be6989e6c8f3cfacb23e6822a2.tar.bz2
- add support for the new Switches type in the Linux Input System (coming with 2.6.14)
- use the new Switches support to rewrite the hinge sensor handling on Zaurus models w/ 2.6 - add Switches support to SysInfo, OInputSystem, oinputsystemdemo
Diffstat (limited to 'libopie2/opiecore/linux/oinputsystem.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/linux/oinputsystem.cpp38
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
@@ -188,6 +188,22 @@ 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
{
BIT_MASK( keys, KEY_MAX );
@@ -210,6 +226,28 @@ 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 )
{
char buf[BUFSIZE] = "<unknown>";