summaryrefslogtreecommitdiff
Unidiff
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
@@ -20,5 +20,4 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
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>
@@ -28,4 +27,5 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
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"
@@ -269,2 +269,25 @@ bool LircHandler::isLircdRunning(void)
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
@@ -18,4 +18,6 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18#define LIRCHANDLER_H 18#define LIRCHANDLER_H
19 19
20#include <sys/un.h>
21
20class LircHandler 22class LircHandler
21{ 23{
@@ -34,4 +36,7 @@ public:
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
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
@@ -40,21 +40,25 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
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}