summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/obex/btobex.cpp2
-rw-r--r--core/obex/obex.cpp3
-rw-r--r--core/obex/obex.h3
-rw-r--r--core/obex/obexserver.cpp24
-rw-r--r--core/obex/obexserver.h4
5 files changed, 21 insertions, 15 deletions
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
@@ -66,5 +66,5 @@ BtObex::~BtObex() {
void BtObex::receive() {
ObexBase::receive();
- m_rec = new ObexServer();
+ m_rec = new ObexServer(OBEX_TRANS_BLUETOOTH);
odebug << "BT OBEX do receive" << oendl;
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
@@ -58,6 +58,5 @@ 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*) ),
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
@@ -35,4 +35,5 @@
#include "obexbase.h"
#include <qobject.h>
+#include "obexserver.h"
namespace Opie {namespace Core {class OProcess;}}
@@ -85,5 +86,5 @@ namespace OpieObex {
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
@@ -49,7 +49,8 @@ using namespace Opie::Core::Internal;
using namespace OpieObex;
-ObexServer::ObexServer() :
+ObexServer::ObexServer(int trans) :
OProcess(tr("ObexServer"), 0, "ObexServer")
{
+ transport = trans;
m_obex = NULL;
}
@@ -330,17 +331,20 @@ int ObexServer::initObex(void)
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
@@ -54,9 +54,11 @@ namespace OpieObex {
class ObexServer : public Opie::Core::OProcess {
Q_OBJECT
+ private:
+ int transport; //The OBEX transport type
public:
/**
* ObexServer constructor
*/
- ObexServer();
+ ObexServer(int trans);
/**
*