summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/oinputsystem.cpp25
-rw-r--r--libopie2/opiecore/oinputsystem.h27
2 files changed, 49 insertions, 3 deletions
diff --git a/libopie2/opiecore/oinputsystem.cpp b/libopie2/opiecore/oinputsystem.cpp
index 29de35c..d1a28f5 100644
--- a/libopie2/opiecore/oinputsystem.cpp
+++ b/libopie2/opiecore/oinputsystem.cpp
@@ -149,9 +149,12 @@ bool OInputDevice::hasFeature( Feature bit ) const
{
BIT_MASK( features, EV_MAX );
if( ioctl( _fd, EVIOCGBIT( 0, EV_MAX ), features) < 0 )
+ {
+ perror( "EVIOCGBIT" );
return false;
+ }
else
return BIT_TEST( features, bit );
}
@@ -169,4 +172,26 @@ bool OInputDevice::isHeld( Key bit ) const
{
return BIT_TEST( keys, bit );
}
}
+
+
+QString OInputDevice::globalKeyMask() const
+{
+ BIT_MASK( keys, KEY_MAX );
+
+ if( ioctl( _fd, EVIOCGKEY( sizeof(keys) ), keys ) < 0 )
+ {
+ perror( "EVIOCGKEY" );
+ }
+ else
+ {
+ QString keymask;
+ for ( int i = 0; i < KEY_MAX; ++i )
+ {
+ if ( BIT_TEST( keys, i ) ) keymask.append( QString().sprintf( "%0d, ", i ) );
+ }
+ return keymask;
+
+ }
+}
+
diff --git a/libopie2/opiecore/oinputsystem.h b/libopie2/opiecore/oinputsystem.h
index 9020bc1..7919610 100644
--- a/libopie2/opiecore/oinputsystem.h
+++ b/libopie2/opiecore/oinputsystem.h
@@ -75,9 +75,9 @@ class OInputSystem : public QObject
* @note Sometimes it might be useful to call this from client code,
*/
void synchronize();
/**
- * @internal desctructor
+ * @internal destructor
*/
~OInputSystem();
protected:
@@ -96,13 +96,34 @@ class OInputDevice : public QObject
#include "oinputsystemenums.h"
public:
+ /**
+ * @returns the identity string of this input device
+ */
QString identity() const;
+ /**
+ * @returns the path of this input device
+ */
QString path() const;
+ /**
+ * @returns a unique identifier for this input device
+ * @note Only a few devices support this
+ */
QString uniq() const;
- bool hasFeature( Feature ) const;
- bool isHeld( Key ) const;
+ /**
+ * @returns whether a certain @a Feature is being supported by this device
+ */
+ bool hasFeature( Feature ) const;
+ /**
+ * @returns whether a given @a Key or Button is being held at the moment
+ */
+ bool isHeld( Key ) const;
+ /**
+ * @internal
+ * @returns a string containing a printable form of the global keymask
+ */
+ QString globalKeyMask() const;
private:
int _fd;
input_id _id;