summaryrefslogtreecommitdiff
path: root/core/obex/obexhandler.cpp
Side-by-side diff
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;
/* TRANSLATOR OpieObex::ObexHandler */
ObexHandler::ObexHandler() {
- m_wasRec = false;
+ m_wasRec[REC_IRDA] = false;
+ m_receiver[REC_IRDA] = 0l;
+ m_wasRec[REC_BLUETOOTH] = false;
+ m_receiver[REC_BLUETOOTH] = 0l;
m_sender = 0l;
- m_receiver = 0l;
+ m_type = REC_IRDA; //FIXME: Just to init to something
QCopChannel* chan = new QCopChannel("QPE/Obex");
connect(chan, SIGNAL(received(const QCString&,const QByteArray&) ),
this, SLOT(irdaMessage(const QCString&,const QByteArray&) ) );
}
ObexHandler::~ObexHandler() {
delete m_sender;
- delete m_receiver;
+ delete m_receiver[REC_IRDA];
+ delete m_receiver[REC_BLUETOOTH];
}
void ObexHandler::doSend(const QString& str, const QString& desc) {
delete m_sender;
@@ -31,14 +35,14 @@ void ObexHandler::doSend(const QString& str, const QString& desc) {
this, SLOT(slotSent() ) );
m_sender->send( str, desc );
}
-void ObexHandler::doReceive(bool b) {
- if (m_receiver && b ) return; // we should enable receiver and it is on
- else if (!m_receiver && !b ) return; // we should disbale receiver and it is off
- else if (m_receiver && !b ) {
- delete m_receiver;
- m_receiver=0;
- }else if (!m_receiver && b ) {
- m_receiver= new Receiver;
+void ObexHandler::doReceive(RecType type, bool b) {
+ if (m_receiver[type] && b ) return; // we should enable receiver and it is on
+ else if (!m_receiver[type] && !b ) return; // we should disbale receiver and it is off
+ else if (m_receiver[type] && !b ) {
+ delete m_receiver[type];
+ m_receiver[type] = 0;
+ }else if (!m_receiver[type] && b ) {
+ m_receiver[type] = new Receiver(type);
}
}
void ObexHandler::slotSent() {
@@ -47,8 +51,10 @@ void ObexHandler::slotSent() {
m_sender = 0;
QCopEnvelope e ("QPE/Obex", "done(QString)" );
e << file;
- doReceive(m_wasRec );
- m_wasRec = false;
+ doReceive(REC_IRDA, m_wasRec[REC_IRDA]);
+ doReceive(REC_BLUETOOTH, m_wasRec[REC_BLUETOOTH]);
+ m_wasRec[REC_IRDA] = false;
+ m_wasRec[REC_BLUETOOTH] = false;
}
void ObexHandler::irdaMessage( const QCString& msg, const QByteArray& data) {
QDataStream stream( data, IO_ReadOnly );
@@ -56,12 +62,18 @@ void ObexHandler::irdaMessage( const QCString& msg, const QByteArray& data) {
QString name, desc;
stream >> desc;
stream >> name;
- m_wasRec = (m_receiver != 0 );
- doReceive( false );
+ m_wasRec[REC_IRDA] = (m_receiver[REC_IRDA] != 0 );
+ m_wasRec[REC_BLUETOOTH] = (m_receiver[REC_BLUETOOTH] != 0 );
+ doReceive(REC_IRDA, false);
+ doReceive(REC_BLUETOOTH, false);
doSend(name, desc);
}else if (msg == "receive(int)") {
int rec;
stream >> rec;
- doReceive(rec);
+ doReceive(REC_IRDA, rec);
+ }else if (msg == "btreceive(int)") {
+ int rec;
+ stream >> rec;
+ doReceive(REC_BLUETOOTH, rec);
}
}