-rw-r--r-- | core/obex/obexhandler.cpp | 44 |
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 | ||
13 | ObexHandler::ObexHandler() { | 13 | ObexHandler::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() { | |||
21 | ObexHandler::~ObexHandler() { | 24 | ObexHandler::~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 | } |
25 | void ObexHandler::doSend(const QString& str, const QString& desc) { | 29 | void 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 | } |
34 | void ObexHandler::doReceive(bool b) { | 38 | void 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 | } |
53 | void ObexHandler::irdaMessage( const QCString& msg, const QByteArray& data) { | 59 | void 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 | } |