summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/oinputsystem.cpp1
1 files changed, 1 insertions, 0 deletions
diff --git a/libopie2/opiecore/oinputsystem.cpp b/libopie2/opiecore/oinputsystem.cpp
index f9078d6..7397814 100644
--- a/libopie2/opiecore/oinputsystem.cpp
+++ b/libopie2/opiecore/oinputsystem.cpp
@@ -134,88 +134,89 @@ OInputDevice::~OInputDevice()
134} 134}
135 135
136 136
137QString OInputDevice::identity() const 137QString OInputDevice::identity() const
138{ 138{
139 char buf[BUFSIZE] = "<unknown>"; 139 char buf[BUFSIZE] = "<unknown>";
140 ::ioctl( _fd, EVIOCGNAME(sizeof buf), buf ); 140 ::ioctl( _fd, EVIOCGNAME(sizeof buf), buf );
141 return buf; 141 return buf;
142} 142}
143 143
144 144
145QString OInputDevice::path() const 145QString OInputDevice::path() const
146{ 146{
147 char buf[BUFSIZE] = "<unknown>"; 147 char buf[BUFSIZE] = "<unknown>";
148 ::ioctl( _fd, EVIOCGPHYS(sizeof buf), buf ); 148 ::ioctl( _fd, EVIOCGPHYS(sizeof buf), buf );
149 return buf; 149 return buf;
150} 150}
151 151
152 152
153QString OInputDevice::uniq() const 153QString OInputDevice::uniq() const
154{ 154{
155 char buf[BUFSIZE] = "<unknown>"; 155 char buf[BUFSIZE] = "<unknown>";
156 ::ioctl( _fd, EVIOCGUNIQ(sizeof buf), buf ); 156 ::ioctl( _fd, EVIOCGUNIQ(sizeof buf), buf );
157 return buf; 157 return buf;
158} 158}
159 159
160 160
161bool OInputDevice::hasFeature( Feature bit ) const 161bool OInputDevice::hasFeature( Feature bit ) const
162{ 162{
163 BIT_MASK( features, EV_MAX ); 163 BIT_MASK( features, EV_MAX );
164 164
165 if( ioctl( _fd, EVIOCGBIT( 0, EV_MAX ), features) < 0 ) 165 if( ioctl( _fd, EVIOCGBIT( 0, EV_MAX ), features) < 0 )
166 { 166 {
167 perror( "EVIOCGBIT" ); 167 perror( "EVIOCGBIT" );
168 return false; 168 return false;
169 } 169 }
170 else 170 else
171 return BIT_TEST( features, bit ); 171 return BIT_TEST( features, bit );
172} 172}
173 173
174 174
175bool OInputDevice::isHeld( Key bit ) const 175bool OInputDevice::isHeld( Key bit ) const
176{ 176{
177 BIT_MASK( keys, KEY_MAX ); 177 BIT_MASK( keys, KEY_MAX );
178 178
179 if( ioctl( _fd, EVIOCGKEY( sizeof(keys) ), keys ) < 0 ) 179 if( ioctl( _fd, EVIOCGKEY( sizeof(keys) ), keys ) < 0 )
180 { 180 {
181 perror( "EVIOCGKEY" ); 181 perror( "EVIOCGKEY" );
182 return false; 182 return false;
183 } 183 }
184 else 184 else
185 { 185 {
186 return BIT_TEST( keys, bit ); 186 return BIT_TEST( keys, bit );
187 } 187 }
188} 188}
189 189
190 190
191QString OInputDevice::globalKeyMask() const 191QString OInputDevice::globalKeyMask() const
192{ 192{
193 BIT_MASK( keys, KEY_MAX ); 193 BIT_MASK( keys, KEY_MAX );
194 194
195 if( ioctl( _fd, EVIOCGKEY( sizeof(keys) ), keys ) < 0 ) 195 if( ioctl( _fd, EVIOCGKEY( sizeof(keys) ), keys ) < 0 )
196 { 196 {
197 perror( "EVIOCGKEY" ); 197 perror( "EVIOCGKEY" );
198 return QString::null;
198 } 199 }
199 else 200 else
200 { 201 {
201 QString keymask; 202 QString keymask;
202 for ( int i = 0; i < KEY_MAX; ++i ) 203 for ( int i = 0; i < KEY_MAX; ++i )
203 { 204 {
204 if ( BIT_TEST( keys, i ) ) keymask.append( QString().sprintf( "%0d, ", i ) ); 205 if ( BIT_TEST( keys, i ) ) keymask.append( QString().sprintf( "%0d, ", i ) );
205 } 206 }
206 return keymask; 207 return keymask;
207 208
208 } 209 }
209} 210}
210 211
211 212
212bool OInputDevice::isValid( const QString& path ) 213bool OInputDevice::isValid( const QString& path )
213{ 214{
214 char buf[BUFSIZE] = "<unknown>"; 215 char buf[BUFSIZE] = "<unknown>";
215 int fd = ::open( (const char*) path, O_RDONLY ); 216 int fd = ::open( (const char*) path, O_RDONLY );
216 if ( fd < 0 ) return false; 217 if ( fd < 0 ) return false;
217 int res = ::ioctl( fd, EVIOCGNAME(sizeof buf), buf ); 218 int res = ::ioctl( fd, EVIOCGNAME(sizeof buf), buf );
218 ::close( fd ); 219 ::close( fd );
219 return res >= 0; 220 return res >= 0;
220} 221}
221 222