From 97b2152a21890f05a2217dddfcba6c820c00aa24 Mon Sep 17 00:00:00 2001 From: paule Date: Tue, 06 Feb 2007 04:51:37 +0000 Subject: Start lircd on application start, and stop it on quit --- (limited to 'noncore') 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 #include #include #include -#include #include #include @@ -27,6 +26,7 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #include #include #include +#include #include "lirchandler.h" @@ -268,3 +268,26 @@ bool LircHandler::isLircdRunning(void) { return (OProcess::processPID("lircd") != 0); } + +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 @@ -17,6 +17,8 @@ Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA #ifndef LIRCHANDLER_H #define LIRCHANDLER_H +#include + class LircHandler { private: @@ -33,6 +35,9 @@ public: bool startLircd(void); bool stopLircd(void); bool isLircdRunning(void); + bool setupModules(void); + bool cleanupModules(void); + void disableIrDA(void); }; #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 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(); - - } - - return a.exec(); + QPEApplication a( argc, argv ); + + LircHandler lh; + + 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); + } + + MainView w; + a.setMainWidget( &w ); + QPEApplication::showWidget( &w ); + int result = a.exec(); + + lh.stopLircd(); + lh.cleanupModules(); + + return result; } -- cgit v0.9.0.2