summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show 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.cpp28
3 files changed, 45 insertions, 13 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
@@ -21,3 +21,2 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#include <sys/types.h>
-#include <sys/un.h>
#include <unistd.h>
@@ -29,2 +28,3 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#include <opie2/oprocess.h>
+#include <qpe/qcopenvelope_qws.h>
@@ -270 +270,24 @@ bool LircHandler::isLircdRunning(void)
}
+
+bool LircHandler::setupModules(void)
+{
+ // Remove IrDA modules which get in the way
+ system("rmmod ircomm-tty ircomm");
+ // Load LIRC device driver
+ system("modprobe lirc_sir");
+ return true;
+}
+
+bool LircHandler::cleanupModules(void)
+{
+ // Unload LIRC device driver
+ system("rmmod lirc_sir");
+ // Load IrDA drivers back in
+ system("modprobe ircomm-tty");
+ return true;
+}
+
+void LircHandler::disableIrDA(void)
+{
+ QCopEnvelope e("QPE/IrDaApplet", "disableIrda()");
+}
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
@@ -19,2 +19,4 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#include <sys/un.h>
+
class LircHandler
@@ -35,2 +37,5 @@ public:
bool isLircdRunning(void);
+ bool setupModules(void);
+ bool cleanupModules(void);
+ void disableIrDA(void);
};
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
@@ -42,19 +42,23 @@ int main( int argc, char **argv )
QPEApplication a( argc, argv );
- MainView w;
- a.setMainWidget( &w );
- QPEApplication::showWidget( &w );
LircHandler lh;
- if(!lh.isLircdRunning()) {
- QMessageBox mb("Error!",
- "Lircd is not running",
- QMessageBox::NoIcon,
- QMessageBox::Ok,
- QMessageBox::NoButton,
- QMessageBox::NoButton);
- mb.exec();
+ lh.disableIrDA();
+ lh.setupModules();
+ lh.startLircd();
+ if(!lh.isLircdRunning()) {
+ QMessageBox::critical(NULL, QObject::tr("Error"),
+ QObject::tr("Unable to start lircd"),
+ QMessageBox::Ok, QMessageBox::NoButton);
}
- return a.exec();
+ MainView w;
+ a.setMainWidget( &w );
+ QPEApplication::showWidget( &w );
+ int result = a.exec();
+
+ lh.stopLircd();
+ lh.cleanupModules();
+
+ return result;
}