summaryrefslogtreecommitdiff
path: root/libopie2/opiecore/oinputsystem.h
Unidiff
Diffstat (limited to 'libopie2/opiecore/oinputsystem.h') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opiecore/oinputsystem.h108
1 files changed, 104 insertions, 4 deletions
diff --git a/libopie2/opiecore/oinputsystem.h b/libopie2/opiecore/oinputsystem.h
index 2bcdc3a..350656b 100644
--- a/libopie2/opiecore/oinputsystem.h
+++ b/libopie2/opiecore/oinputsystem.h
@@ -29,20 +29,120 @@
29#ifndef OINPUTSYSTEM_H 29#ifndef OINPUTSYSTEM_H
30#define OINPUTSYSTEM_H 30#define OINPUTSYSTEM_H
31 31
32/* QT */
32#include <qobject.h> 33#include <qobject.h>
34#include <qdict.h>
35
36/* STD */
37#include <linux/input.h>
33 38
34namespace Opie { 39namespace Opie {
35namespace Core { 40namespace Core {
36 41
37/** 42class OInputDevice;
38 * ...
39 *
40 */
41 43
44/**
45 * @brief A container class for all input devices
46 *
47 * This class provides access to all available input system devices of your computer.
48 *
49 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
50 */
42class OInputSystem : public QObject 51class OInputSystem : public QObject
43{ 52{
53 public:
54 typedef QDict<OInputDevice> DeviceMap;
55 typedef QDictIterator<OInputDevice> DeviceIterator;
56
57 /**
58 * @returns the number of available input devices
59 */
60 int count() const;
61 /**
62 * @returns a pointer to the (one and only) @ref OInputSystem instance.
63 */
64 static OInputSystem* instance();
65 /**
66 * @returns an iterator usable for iterating through all network interfaces.
67 */
68 DeviceIterator iterator() const;
69 /**
70 * @returns a pointer to the @ref OAudioInterface object for the specified @a interface or 0, if not found
71 * @see OAudioInterface
72 */
73 OInputDevice* device( const QString& interface ) const;
74 /**
75 * @internal Rebuild the internal interface database
76 * @note Sometimes it might be useful to call this from client code,
77 */
78 void synchronize();
79 /**
80 * @internal desctructor
81 */
82 ~OInputSystem();
83
84 protected:
85 OInputSystem();
86
87 static OInputSystem* _instance;
88 DeviceMap _devices;
89};
90
91
92class OInputDevice : public QObject
93{
94 public:
95
96 enum EventType
97 {
98 Synchronous = EV_SYN,
99 Keyboard = EV_KEY,
100 Relative = EV_REL,
101 Absolute = EV_ABS,
102 Miscellaneous = EV_MSC,
103 Led = EV_LED,
104 Sound = EV_SND,
105 AutoRepeat = EV_REP,
106 ForceFeedback = EV_FF,
107 PowerManagement = EV_PWR,
108 ForceFeedbackStatus = EV_FF_STATUS,
109 };
110
111 enum Bus
112 {
113 PCI = BUS_PCI,
114 ISAPNP = BUS_ISAPNP,
115 HIL = BUS_HIL,
116 BLUETOOTH = BUS_BLUETOOTH,
117 ISA = BUS_ISA,
118 I8042 = BUS_I8042,
119 XTKBD = BUS_XTKBD,
120 RS232 = BUS_RS232,
121 GAMEPORT = BUS_GAMEPORT,
122 PARPORT = BUS_PARPORT,
123 AMIGA = BUS_AMIGA,
124 ADB = BUS_ADB,
125 I2C = BUS_I2C,
126 HOST = BUS_HOST,
127 };
128
129 public:
130 OInputDevice( QObject* parent, const char* name = 0 );
131 ~OInputDevice();
132
133 public:
134 QString identity() const;
135 QString path() const;
136 QString uniq() const;
137
138 private:
139 int _fd;
140 input_id _id;
141
44}; 142};
143
45} 144}
46} 145}
47 146
48#endif // OINPUTSYSTEM_H 147#endif // OINPUTSYSTEM_H
148