From b742daec72bbef07039b785dcadca9dca9a0dc1c Mon Sep 17 00:00:00 2001
From: korovkin <korovkin>
Date: Tue, 24 Oct 2006 20:39:01 +0000
Subject: IR OBEX is handled by OPIE OBEX functions, not by external utility.

---
diff --git a/core/obex/btobex.cpp b/core/obex/btobex.cpp
index 212a084..4e078b0 100644
--- a/core/obex/btobex.cpp
+++ b/core/obex/btobex.cpp
@@ -65,7 +65,7 @@ BtObex::~BtObex() {
 
 void BtObex::receive()  {
     ObexBase::receive();
-    m_rec = new ObexServer();
+    m_rec = new ObexServer(OBEX_TRANS_BLUETOOTH);
 
     odebug << "BT OBEX do receive" << oendl;
     // TODO mbhaynie: No idea if this actually works -- maybe opd is better.
diff --git a/core/obex/obex.cpp b/core/obex/obex.cpp
index 95c561a..e4a3c31 100644
--- a/core/obex/obex.cpp
+++ b/core/obex/obex.cpp
@@ -57,8 +57,7 @@ Obex::~Obex() {
 }
 void Obex::receive()  {
     ObexBase::receive();
-    m_rec = new OProcess();
-    *m_rec << "irobex_palm3";
+    m_rec = new ObexServer(OBEX_TRANS_IRDA);
     // connect to the necessary slots
     connect(m_rec,  SIGNAL(processExited(Opie::Core::OProcess*) ),
             this,  SLOT(slotExited(Opie::Core::OProcess*) ) );
diff --git a/core/obex/obex.h b/core/obex/obex.h
index 36ff29a..b948ce4 100644
--- a/core/obex/obex.h
+++ b/core/obex/obex.h
@@ -34,6 +34,7 @@
 
 #include "obexbase.h"
 #include <qobject.h>
+#include "obexserver.h"
 
 namespace Opie {namespace Core {class OProcess;}}
 class QCopChannel;
@@ -84,7 +85,7 @@ namespace OpieObex {
       QString m_file;
       QString m_outp;
       Opie::Core::OProcess *m_send;
-      Opie::Core::OProcess *m_rec;
+      ObexServer* m_rec; //The OBEX server
       bool m_receive : 1;
       void shutDownReceive();
 
diff --git a/core/obex/obexserver.cpp b/core/obex/obexserver.cpp
index 95196de..25d8224 100644
--- a/core/obex/obexserver.cpp
+++ b/core/obex/obexserver.cpp
@@ -48,9 +48,10 @@ using namespace Opie::Core;
 using namespace Opie::Core::Internal;
 using namespace OpieObex;
 
-ObexServer::ObexServer() : 
+ObexServer::ObexServer(int trans) : 
     OProcess(tr("ObexServer"), 0, "ObexServer")
 {
+    transport = trans;
     m_obex = NULL;
 }
 
@@ -329,19 +330,22 @@ int ObexServer::initObex(void)
     int channel = 10; //Channel on which we do listen
     if (m_obex)
         return 0;
-    m_obex = ::OBEX_Init(OBEX_TRANS_BLUETOOTH, obex_event, 0);
+    m_obex = ::OBEX_Init(transport, obex_event, 0);
     if (!m_obex) {
         printf("OBEX initialization error %d\n", errno);
         return -1;
     }
-    ::BtOBEX_ServerRegister(m_obex, NULL, channel);
-    m_session = addOpushSvc(channel, "OBEX push service");
-    if (!m_session) {
-        printf("OBEX registration error %d\n", errno);
-        ::OBEX_Cleanup(m_obex);
-        m_obex = NULL;
-        return -1;
-    }    
+    if (transport == OBEX_TRANS_BLUETOOTH) {
+	::BtOBEX_ServerRegister(m_obex, NULL, channel);
+	m_session = addOpushSvc(channel, "OBEX push service");
+	if (!m_session) {
+	    printf("OBEX registration error %d\n", errno);
+	    ::OBEX_Cleanup(m_obex);
+	    m_obex = NULL;
+	    return -1;
+	}
+    } else if (transport == OBEX_TRANS_IRDA)
+	::IrOBEX_ServerRegister(m_obex, "OBEX");
     return 0;
 }
 
diff --git a/core/obex/obexserver.h b/core/obex/obexserver.h
index 8567105..28577e2 100644
--- a/core/obex/obexserver.h
+++ b/core/obex/obexserver.h
@@ -53,11 +53,13 @@ namespace Opie {namespace Core {class OProcess;}}
 namespace OpieObex {
     class ObexServer : public Opie::Core::OProcess {
         Q_OBJECT
+    private:
+	int transport; //The OBEX transport type
     public:
         /**
          * ObexServer constructor
          */
-        ObexServer();
+        ObexServer(int trans);
         /**
          *
          */
--
cgit v0.9.0.2