summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show 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.cpp8
-rw-r--r--core/obex/obexserver.h4
5 files changed, 13 insertions, 7 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
@@ -64,9 +64,9 @@ 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.
// connect to the necessary slots
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
@@ -56,10 +56,9 @@ Obex::~Obex() {
delete m_send;
}
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
@@ -33,8 +33,9 @@
#define OpieObex_H
#include "obexbase.h"
#include <qobject.h>
+#include "obexserver.h"
namespace Opie {namespace Core {class OProcess;}}
class QCopChannel;
namespace OpieObex {
@@ -83,9 +84,9 @@ namespace OpieObex {
uint m_count;
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();
private slots:
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
@@ -47,11 +47,12 @@
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;
}
ObexServer::~ObexServer()
@@ -328,21 +329,24 @@ 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;
}
+ 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;
}
bool ObexServer::start(RunMode runmode, Communication comm)
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
@@ -52,13 +52,15 @@ namespace Opie {
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);
/**
*
*/
~ObexServer();