summaryrefslogtreecommitdiff
path: root/core/obex/obexhandler.cpp
Unidiff
Diffstat (limited to 'core/obex/obexhandler.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/obex/obexhandler.cpp44
1 files changed, 28 insertions, 16 deletions
diff --git a/core/obex/obexhandler.cpp b/core/obex/obexhandler.cpp
index 28f9b5b..5d98ded 100644
--- a/core/obex/obexhandler.cpp
+++ b/core/obex/obexhandler.cpp
@@ -12,7 +12,10 @@ using namespace OpieObex;
12 12
13ObexHandler::ObexHandler() { 13ObexHandler::ObexHandler() {
14 m_wasRec = false; 14 m_wasRec[REC_IRDA] = false;
15 m_receiver[REC_IRDA] = 0l;
16 m_wasRec[REC_BLUETOOTH] = false;
17 m_receiver[REC_BLUETOOTH] = 0l;
15 m_sender = 0l; 18 m_sender = 0l;
16 m_receiver = 0l; 19 m_type = REC_IRDA; //FIXME: Just to init to something
17 QCopChannel* chan = new QCopChannel("QPE/Obex"); 20 QCopChannel* chan = new QCopChannel("QPE/Obex");
18 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ), 21 connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ),
@@ -21,5 +24,6 @@ ObexHandler::ObexHandler() {
21ObexHandler::~ObexHandler() { 24ObexHandler::~ObexHandler() {
22 delete m_sender; 25 delete m_sender;
23 delete m_receiver; 26 delete m_receiver[REC_IRDA];
27 delete m_receiver[REC_BLUETOOTH];
24} 28}
25void ObexHandler::doSend(const QString& str, const QString& desc) { 29void ObexHandler::doSend(const QString& str, const QString& desc) {
@@ -32,12 +36,12 @@ void ObexHandler::doSend(const QString& str, const QString& desc) {
32 m_sender->send( str, desc ); 36 m_sender->send( str, desc );
33} 37}
34void ObexHandler::doReceive(bool b) { 38void ObexHandler::doReceive(RecType type, bool b) {
35 if (m_receiver && b ) return; // we should enable receiver and it is on 39 if (m_receiver[type] && b ) return; // we should enable receiver and it is on
36 else if (!m_receiver && !b ) return; // we should disbale receiver and it is off 40 else if (!m_receiver[type] && !b ) return; // we should disbale receiver and it is off
37 else if (m_receiver && !b ) { 41 else if (m_receiver[type] && !b ) {
38 delete m_receiver; 42 delete m_receiver[type];
39 m_receiver=0; 43 m_receiver[type] = 0;
40 }else if (!m_receiver && b ) { 44 }else if (!m_receiver[type] && b ) {
41 m_receiver= new Receiver; 45 m_receiver[type] = new Receiver(type);
42 } 46 }
43} 47}
@@ -48,6 +52,8 @@ void ObexHandler::slotSent() {
48 QCopEnvelope e ("QPE/Obex", "done(QString)" ); 52 QCopEnvelope e ("QPE/Obex", "done(QString)" );
49 e << file; 53 e << file;
50 doReceive(m_wasRec ); 54 doReceive(REC_IRDA, m_wasRec[REC_IRDA]);
51 m_wasRec = false; 55 doReceive(REC_BLUETOOTH, m_wasRec[REC_BLUETOOTH]);
56 m_wasRec[REC_IRDA] = false;
57 m_wasRec[REC_BLUETOOTH] = false;
52} 58}
53void ObexHandler::irdaMessage( const QCString& msg, const QByteArray& data) { 59void ObexHandler::irdaMessage( const QCString& msg, const QByteArray& data) {
@@ -57,11 +63,17 @@ void ObexHandler::irdaMessage( const QCString& msg, const QByteArray& data) {
57 stream >> desc; 63 stream >> desc;
58 stream >> name; 64 stream >> name;
59 m_wasRec = (m_receiver != 0 ); 65 m_wasRec[REC_IRDA] = (m_receiver[REC_IRDA] != 0 );
60 doReceive( false ); 66 m_wasRec[REC_BLUETOOTH] = (m_receiver[REC_BLUETOOTH] != 0 );
67 doReceive(REC_IRDA, false);
68 doReceive(REC_BLUETOOTH, false);
61 doSend(name, desc); 69 doSend(name, desc);
62 }else if (msg == "receive(int)") { 70 }else if (msg == "receive(int)") {
63 int rec; 71 int rec;
64 stream >> rec; 72 stream >> rec;
65 doReceive(rec); 73 doReceive(REC_IRDA, rec);
74 }else if (msg == "btreceive(int)") {
75 int rec;
76 stream >> rec;
77 doReceive(REC_BLUETOOTH, rec);
66 } 78 }
67} 79}