summaryrefslogtreecommitdiff
authorpaule <paule>2007-02-06 04:51:37 (UTC)
committer paule <paule>2007-02-06 04:51:37 (UTC)
commit97b2152a21890f05a2217dddfcba6c820c00aa24 (patch) (unidiff)
tree55b859fbea71840f15368ec7b4b9e2de2c4f9879
parenta505f79190d4d14a7c9595af3e9b78d9c613da21 (diff)
downloadopie-97b2152a21890f05a2217dddfcba6c820c00aa24.zip
opie-97b2152a21890f05a2217dddfcba6c820c00aa24.tar.gz
opie-97b2152a21890f05a2217dddfcba6c820c00aa24.tar.bz2
Start lircd on application start, and stop it on quit
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/remote/lirchandler.cpp25
-rw-r--r--noncore/tools/remote/lirchandler.h5
-rw-r--r--noncore/tools/remote/remote.cpp40
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
272bool 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
281bool 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
290void 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
20class LircHandler 22class LircHandler
21{ 23{
22private: 24private:
@@ -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
40int main( int argc, char **argv ) 40int 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}