summaryrefslogtreecommitdiff
Unidiff
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
@@ -56,25 +56,25 @@ BtObex::BtObex( QObject *parent, const char* name )
56 m_send=0; 56 m_send=0;
57 btManager = NULL; 57 btManager = NULL;
58}; 58};
59 59
60BtObex::~BtObex() { 60BtObex::~BtObex() {
61 delete btManager; 61 delete btManager;
62 delete m_rec; 62 delete m_rec;
63 delete m_send; 63 delete m_send;
64} 64}
65 65
66void BtObex::receive() { 66void BtObex::receive() {
67 ObexBase::receive(); 67 ObexBase::receive();
68 m_rec = new ObexServer(); 68 m_rec = new ObexServer(OBEX_TRANS_BLUETOOTH);
69 69
70 odebug << "BT OBEX do receive" << oendl; 70 odebug << "BT OBEX do receive" << oendl;
71 // TODO mbhaynie: No idea if this actually works -- maybe opd is better. 71 // TODO mbhaynie: No idea if this actually works -- maybe opd is better.
72 // connect to the necessary slots 72 // connect to the necessary slots
73 connect(m_rec, SIGNAL(processExited(Opie::Core::OProcess*) ), 73 connect(m_rec, SIGNAL(processExited(Opie::Core::OProcess*) ),
74 this, SLOT(slotExited(Opie::Core::OProcess*) ) ); 74 this, SLOT(slotExited(Opie::Core::OProcess*) ) );
75 75
76 connect(m_rec, SIGNAL(receivedStdout(Opie::Core::OProcess*, char*, int ) ), 76 connect(m_rec, SIGNAL(receivedStdout(Opie::Core::OProcess*, char*, int ) ),
77 this, SLOT(slotStdOut(Opie::Core::OProcess*, char*, int) ) ); 77 this, SLOT(slotStdOut(Opie::Core::OProcess*, char*, int) ) );
78 78
79 if(!m_rec->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { 79 if(!m_rec->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) {
80 emit done( false ); 80 emit done( false );
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
@@ -48,26 +48,25 @@ using namespace Opie::Core;
48Obex::Obex( QObject *parent, const char* name ) 48Obex::Obex( QObject *parent, const char* name )
49 : ObexBase(parent, name ) 49 : ObexBase(parent, name )
50{ 50{
51 m_rec = 0; 51 m_rec = 0;
52 m_send=0; 52 m_send=0;
53}; 53};
54Obex::~Obex() { 54Obex::~Obex() {
55 delete m_rec; 55 delete m_rec;
56 delete m_send; 56 delete m_send;
57} 57}
58void Obex::receive() { 58void Obex::receive() {
59 ObexBase::receive(); 59 ObexBase::receive();
60 m_rec = new OProcess(); 60 m_rec = new ObexServer(OBEX_TRANS_IRDA);
61 *m_rec << "irobex_palm3";
62 // connect to the necessary slots 61 // connect to the necessary slots
63 connect(m_rec, SIGNAL(processExited(Opie::Core::OProcess*) ), 62 connect(m_rec, SIGNAL(processExited(Opie::Core::OProcess*) ),
64 this, SLOT(slotExited(Opie::Core::OProcess*) ) ); 63 this, SLOT(slotExited(Opie::Core::OProcess*) ) );
65 64
66 connect(m_rec, SIGNAL(receivedStdout(Opie::Core::OProcess*, char*, int ) ), 65 connect(m_rec, SIGNAL(receivedStdout(Opie::Core::OProcess*, char*, int ) ),
67 this, SLOT(slotStdOut(Opie::Core::OProcess*, char*, int) ) ); 66 this, SLOT(slotStdOut(Opie::Core::OProcess*, char*, int) ) );
68 67
69 if(!m_rec->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { 68 if(!m_rec->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) {
70 emit done( false ); 69 emit done( false );
71 delete m_rec; 70 delete m_rec;
72 m_rec = 0; 71 m_rec = 0;
73 } 72 }
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
@@ -25,24 +25,25 @@
25 Boston, MA 02111-1307, USA. 25 Boston, MA 02111-1307, USA.
26 26
27*/ 27*/
28/* 28/*
29 * The Infrared OBEX handling class declaration 29 * The Infrared OBEX handling class declaration
30 */ 30 */
31 31
32#ifndef OpieObex_H 32#ifndef OpieObex_H
33#define OpieObex_H 33#define OpieObex_H
34 34
35#include "obexbase.h" 35#include "obexbase.h"
36#include <qobject.h> 36#include <qobject.h>
37#include "obexserver.h"
37 38
38namespace Opie {namespace Core {class OProcess;}} 39namespace Opie {namespace Core {class OProcess;}}
39class QCopChannel; 40class QCopChannel;
40namespace OpieObex { 41namespace OpieObex {
41 class Obex : public ObexBase { 42 class Obex : public ObexBase {
42 Q_OBJECT 43 Q_OBJECT
43 public: 44 public:
44 /** 45 /**
45 * Obex c'tor look 46 * Obex c'tor look
46 */ 47 */
47 Obex( QObject *parent, const char* name); 48 Obex( QObject *parent, const char* name);
48 /** 49 /**
@@ -75,25 +76,25 @@ namespace OpieObex {
75 void currentTry(unsigned int); 76 void currentTry(unsigned int);
76 /** 77 /**
77 * signal sent The file got beamed to the remote location 78 * signal sent The file got beamed to the remote location
78 */ 79 */
79 void sent(bool); 80 void sent(bool);
80 void done(bool); 81 void done(bool);
81 82
82 private: 83 private:
83 uint m_count; 84 uint m_count;
84 QString m_file; 85 QString m_file;
85 QString m_outp; 86 QString m_outp;
86 Opie::Core::OProcess *m_send; 87 Opie::Core::OProcess *m_send;
87 Opie::Core::OProcess *m_rec; 88 ObexServer* m_rec; //The OBEX server
88 bool m_receive : 1; 89 bool m_receive : 1;
89 void shutDownReceive(); 90 void shutDownReceive();
90 91
91private slots: 92private slots:
92 93
93 /** 94 /**
94 * send over palm obex 95 * send over palm obex
95 */ 96 */
96 97
97 //void send(const QString&); 98 //void send(const QString&);
98 99
99 // the process exited 100 // the process exited
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
@@ -39,27 +39,28 @@
39#include <stdlib.h> 39#include <stdlib.h>
40#include <stdio.h> 40#include <stdio.h>
41#include <fcntl.h> 41#include <fcntl.h>
42#include <qapplication.h> 42#include <qapplication.h>
43#include <opie2/oprocctrl.h> 43#include <opie2/oprocctrl.h>
44#include <qstring.h> 44#include <qstring.h>
45#include <qfile.h> 45#include <qfile.h>
46 46
47using namespace Opie::Core; 47using namespace Opie::Core;
48using namespace Opie::Core::Internal; 48using namespace Opie::Core::Internal;
49using namespace OpieObex; 49using namespace OpieObex;
50 50
51ObexServer::ObexServer() : 51ObexServer::ObexServer(int trans) :
52 OProcess(tr("ObexServer"), 0, "ObexServer") 52 OProcess(tr("ObexServer"), 0, "ObexServer")
53{ 53{
54 transport = trans;
54 m_obex = NULL; 55 m_obex = NULL;
55} 56}
56 57
57ObexServer::~ObexServer() 58ObexServer::~ObexServer()
58{ 59{
59 stop(); 60 stop();
60} 61}
61 62
62/** 63/**
63 * Function handles the file received 64 * Function handles the file received
64 * @param name the file name 65 * @param name the file name
65 * @param data the file data 66 * @param data the file data
@@ -320,37 +321,40 @@ errout:
320 sdp_list_free(proto[2], 0); 321 sdp_list_free(proto[2], 0);
321 sdp_list_free(apseq, 0); 322 sdp_list_free(apseq, 0);
322 sdp_list_free(aproto, 0); 323 sdp_list_free(aproto, 0);
323 324
324 return lsession; 325 return lsession;
325} 326}
326 327
327int ObexServer::initObex(void) 328int ObexServer::initObex(void)
328{ 329{
329 int channel = 10; //Channel on which we do listen 330 int channel = 10; //Channel on which we do listen
330 if (m_obex) 331 if (m_obex)
331 return 0; 332 return 0;
332 m_obex = ::OBEX_Init(OBEX_TRANS_BLUETOOTH, obex_event, 0); 333 m_obex = ::OBEX_Init(transport, obex_event, 0);
333 if (!m_obex) { 334 if (!m_obex) {
334 printf("OBEX initialization error %d\n", errno); 335 printf("OBEX initialization error %d\n", errno);
335 return -1; 336 return -1;
336 } 337 }
338 if (transport == OBEX_TRANS_BLUETOOTH) {
337 ::BtOBEX_ServerRegister(m_obex, NULL, channel); 339 ::BtOBEX_ServerRegister(m_obex, NULL, channel);
338 m_session = addOpushSvc(channel, "OBEX push service"); 340 m_session = addOpushSvc(channel, "OBEX push service");
339 if (!m_session) { 341 if (!m_session) {
340 printf("OBEX registration error %d\n", errno); 342 printf("OBEX registration error %d\n", errno);
341 ::OBEX_Cleanup(m_obex); 343 ::OBEX_Cleanup(m_obex);
342 m_obex = NULL; 344 m_obex = NULL;
343 return -1; 345 return -1;
344 } 346 }
347 } else if (transport == OBEX_TRANS_IRDA)
348 ::IrOBEX_ServerRegister(m_obex, "OBEX");
345 return 0; 349 return 0;
346} 350}
347 351
348bool ObexServer::start(RunMode runmode, Communication comm) 352bool ObexServer::start(RunMode runmode, Communication comm)
349{ 353{
350 if ( runs ) 354 if ( runs )
351 { 355 {
352 return false; // cannot start a process that is already running 356 return false; // cannot start a process that is already running
353 // or if no executable has been assigned 357 // or if no executable has been assigned
354 } 358 }
355 run_mode = runmode; 359 run_mode = runmode;
356 status = 0; 360 status = 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
@@ -44,29 +44,31 @@ namespace Opie {
44 namespace Core { 44 namespace Core {
45 class OProcess; 45 class OProcess;
46 namespace Internal { 46 namespace Internal {
47 class OProcessController; 47 class OProcessController;
48 } 48 }
49 } 49 }
50}; 50};
51 51
52namespace Opie {namespace Core {class OProcess;}} 52namespace Opie {namespace Core {class OProcess;}}
53namespace OpieObex { 53namespace OpieObex {
54 class ObexServer : public Opie::Core::OProcess { 54 class ObexServer : public Opie::Core::OProcess {
55 Q_OBJECT 55 Q_OBJECT
56 private:
57 int transport; //The OBEX transport type
56 public: 58 public:
57 /** 59 /**
58 * ObexServer constructor 60 * ObexServer constructor
59 */ 61 */
60 ObexServer(); 62 ObexServer(int trans);
61 /** 63 /**
62 * 64 *
63 */ 65 */
64 ~ObexServer(); 66 ~ObexServer();
65 //Function starts the server process 67 //Function starts the server process
66 virtual bool start( RunMode runmode = NotifyOnExit, 68 virtual bool start( RunMode runmode = NotifyOnExit,
67 Communication comm = NoCommunication ); 69 Communication comm = NoCommunication );
68 //Stop the server process 70 //Stop the server process
69 int stop(); 71 int stop();
70 protected: //variables 72 protected: //variables
71 obex_t* m_obex; //Obex server handler 73 obex_t* m_obex; //Obex server handler
72 sdp_session_t* m_session; //SDP session handler; 74 sdp_session_t* m_session; //SDP session handler;