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
@@ -11,16 +11,20 @@ using namespace OpieObex;
11/* TRANSLATOR OpieObex::ObexHandler */ 11/* TRANSLATOR OpieObex::ObexHandler */
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&) ),
19 this, SLOT(irdaMessage(const QCString&,const QByteArray&) ) ); 22 this, SLOT(irdaMessage(const QCString&,const QByteArray&) ) );
20} 23}
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) {
26 delete m_sender; 30 delete m_sender;
@@ -31,14 +35,14 @@ void ObexHandler::doSend(const QString& str, const QString& desc) {
31 this, SLOT(slotSent() ) ); 35 this, SLOT(slotSent() ) );
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}
44void ObexHandler::slotSent() { 48void ObexHandler::slotSent() {
@@ -47,8 +51,10 @@ void ObexHandler::slotSent() {
47 m_sender = 0; 51 m_sender = 0;
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) {
54 QDataStream stream( data, IO_ReadOnly ); 60 QDataStream stream( data, IO_ReadOnly );
@@ -56,12 +62,18 @@ void ObexHandler::irdaMessage( const QCString& msg, const QByteArray& data) {
56 QString name, desc; 62 QString name, desc;
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}