author | paule <paule> | 2007-02-06 04:51:37 (UTC) |
---|---|---|
committer | paule <paule> | 2007-02-06 04:51:37 (UTC) |
commit | 97b2152a21890f05a2217dddfcba6c820c00aa24 (patch) (unidiff) | |
tree | 55b859fbea71840f15368ec7b4b9e2de2c4f9879 /noncore | |
parent | a505f79190d4d14a7c9595af3e9b78d9c613da21 (diff) | |
download | opie-97b2152a21890f05a2217dddfcba6c820c00aa24.zip opie-97b2152a21890f05a2217dddfcba6c820c00aa24.tar.gz opie-97b2152a21890f05a2217dddfcba6c820c00aa24.tar.bz2 |
Start lircd on application start, and stop it on quit
-rw-r--r-- | noncore/tools/remote/lirchandler.cpp | 25 | ||||
-rw-r--r-- | noncore/tools/remote/lirchandler.h | 5 | ||||
-rw-r--r-- | noncore/tools/remote/remote.cpp | 40 |
3 files changed, 51 insertions, 19 deletions
diff --git a/noncore/tools/remote/lirchandler.cpp b/noncore/tools/remote/lirchandler.cpp index 263b740..ec1e275 100644 --- a/noncore/tools/remote/lirchandler.cpp +++ b/noncore/tools/remote/lirchandler.cpp | |||
@@ -19,7 +19,6 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
19 | #include <string.h> | 19 | #include <string.h> |
20 | #include <sys/socket.h> | 20 | #include <sys/socket.h> |
21 | #include <sys/types.h> | 21 | #include <sys/types.h> |
22 | #include <sys/un.h> | ||
23 | #include <unistd.h> | 22 | #include <unistd.h> |
24 | #include <errno.h> | 23 | #include <errno.h> |
25 | 24 | ||
@@ -27,6 +26,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
27 | #include <qmessagebox.h> | 26 | #include <qmessagebox.h> |
28 | #include <qobject.h> | 27 | #include <qobject.h> |
29 | #include <opie2/oprocess.h> | 28 | #include <opie2/oprocess.h> |
29 | #include <qpe/qcopenvelope_qws.h> | ||
30 | 30 | ||
31 | #include "lirchandler.h" | 31 | #include "lirchandler.h" |
32 | 32 | ||
@@ -268,3 +268,26 @@ bool LircHandler::isLircdRunning(void) | |||
268 | { | 268 | { |
269 | return (OProcess::processPID("lircd") != 0); | 269 | return (OProcess::processPID("lircd") != 0); |
270 | } | 270 | } |
271 | |||
272 | bool LircHandler::setupModules(void) | ||
273 | { | ||
274 | // Remove IrDA modules which get in the way | ||
275 | system("rmmod ircomm-tty ircomm"); | ||
276 | // Load LIRC device driver | ||
277 | system("modprobe lirc_sir"); | ||
278 | return true; | ||
279 | } | ||
280 | |||
281 | bool LircHandler::cleanupModules(void) | ||
282 | { | ||
283 | // Unload LIRC device driver | ||
284 | system("rmmod lirc_sir"); | ||
285 | // Load IrDA drivers back in | ||
286 | system("modprobe ircomm-tty"); | ||
287 | return true; | ||
288 | } | ||
289 | |||
290 | void LircHandler::disableIrDA(void) | ||
291 | { | ||
292 | QCopEnvelope e("QPE/IrDaApplet", "disableIrda()"); | ||
293 | } | ||
diff --git a/noncore/tools/remote/lirchandler.h b/noncore/tools/remote/lirchandler.h index c7665cb..4e56b6b 100644 --- a/noncore/tools/remote/lirchandler.h +++ b/noncore/tools/remote/lirchandler.h | |||
@@ -17,6 +17,8 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
17 | #ifndef LIRCHANDLER_H | 17 | #ifndef LIRCHANDLER_H |
18 | #define LIRCHANDLER_H | 18 | #define LIRCHANDLER_H |
19 | 19 | ||
20 | #include <sys/un.h> | ||
21 | |||
20 | class LircHandler | 22 | class LircHandler |
21 | { | 23 | { |
22 | private: | 24 | private: |
@@ -33,6 +35,9 @@ public: | |||
33 | bool startLircd(void); | 35 | bool startLircd(void); |
34 | bool stopLircd(void); | 36 | bool stopLircd(void); |
35 | bool isLircdRunning(void); | 37 | bool isLircdRunning(void); |
38 | bool setupModules(void); | ||
39 | bool cleanupModules(void); | ||
40 | void disableIrDA(void); | ||
36 | }; | 41 | }; |
37 | 42 | ||
38 | #endif | 43 | #endif |
diff --git a/noncore/tools/remote/remote.cpp b/noncore/tools/remote/remote.cpp index 67fc57d..5b756cb 100644 --- a/noncore/tools/remote/remote.cpp +++ b/noncore/tools/remote/remote.cpp | |||
@@ -39,22 +39,26 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |||
39 | 39 | ||
40 | int main( int argc, char **argv ) | 40 | int main( int argc, char **argv ) |
41 | { | 41 | { |
42 | QPEApplication a( argc, argv ); | 42 | QPEApplication a( argc, argv ); |
43 | MainView w; | 43 | |
44 | a.setMainWidget( &w ); | 44 | LircHandler lh; |
45 | QPEApplication::showWidget( &w ); | 45 | |
46 | 46 | lh.disableIrDA(); | |
47 | LircHandler lh; | 47 | lh.setupModules(); |
48 | if(!lh.isLircdRunning()) { | 48 | lh.startLircd(); |
49 | QMessageBox mb("Error!", | 49 | if(!lh.isLircdRunning()) { |
50 | "Lircd is not running", | 50 | QMessageBox::critical(NULL, QObject::tr("Error"), |
51 | QMessageBox::NoIcon, | 51 | QObject::tr("Unable to start lircd"), |
52 | QMessageBox::Ok, | 52 | QMessageBox::Ok, QMessageBox::NoButton); |
53 | QMessageBox::NoButton, | 53 | } |
54 | QMessageBox::NoButton); | 54 | |
55 | mb.exec(); | 55 | MainView w; |
56 | 56 | a.setMainWidget( &w ); | |
57 | } | 57 | QPEApplication::showWidget( &w ); |
58 | 58 | int result = a.exec(); | |
59 | return a.exec(); | 59 | |
60 | lh.stopLircd(); | ||
61 | lh.cleanupModules(); | ||
62 | |||
63 | return result; | ||
60 | } | 64 | } |