summaryrefslogtreecommitdiff
path: root/noncore/tools/remote/lirchandler.cpp
Side-by-side diff
Diffstat (limited to 'noncore/tools/remote/lirchandler.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/tools/remote/lirchandler.cpp25
1 files changed, 24 insertions, 1 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
@@ -1,53 +1,53 @@
/*
Opie-Remote. emulates remote controls on an iPaq (and maybe a Zaurus) in Opie.
Copyright (C) 2007 Paul Eggleton & Thomas Stephens
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later
version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/types.h>
-#include <sys/un.h>
#include <unistd.h>
#include <errno.h>
#include <qstring.h>
#include <qmessagebox.h>
#include <qobject.h>
#include <opie2/oprocess.h>
+#include <qpe/qcopenvelope_qws.h>
#include "lirchandler.h"
#define PACKET_SIZE 256
#define TIMEOUT 3
#define LIRCD_SOCKET "/dev/lircd"
#define LIRCD_SERVICECMD "/etc/init.d/lircd"
using namespace Opie::Core;
LircHandler::LircHandler(void)
{
fd = 0;
addr.sun_family=AF_UNIX;
strcpy(addr.sun_path, LIRCD_SOCKET);
}
bool LircHandler::connectLirc(void)
{
fd = socket(AF_UNIX, SOCK_STREAM, 0);
if(fd == -1)
{
QMessageBox mb(QObject::tr("Error"),
QObject::tr("Unable to create socket"),
@@ -247,24 +247,47 @@ int LircHandler::sendIR(const char *lircaction)
done=true;
}
}
::close(fd);
return 1;
}
else
return 0;
}
bool LircHandler::startLircd(void)
{
return (system(LIRCD_SERVICECMD " start") == 0);
}
bool LircHandler::stopLircd(void)
{
return (system(LIRCD_SERVICECMD " stop") == 0);
}
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()");
+}