summaryrefslogtreecommitdiff
path: root/core/obex/obexhandler.cpp
authorzecke <zecke>2003-02-16 15:49:02 (UTC)
committer zecke <zecke>2003-02-16 15:49:02 (UTC)
commit30a098530260176ac20d75ba6cb7abfb3d998c13 (patch) (unidiff)
treeee5c08ca67fa00574414153921ab2de654c60421 /core/obex/obexhandler.cpp
parent7fab90d46144843d32e476ada8d0a5f40f50aa60 (diff)
downloadopie-30a098530260176ac20d75ba6cb7abfb3d998c13.zip
opie-30a098530260176ac20d75ba6cb7abfb3d998c13.tar.gz
opie-30a098530260176ac20d75ba6cb7abfb3d998c13.tar.bz2
disable snd in IrDaApplet it hangs on my machine..
Remove the hacky OBEX Implementation Add a more cleaned up more appealing (not yet working) version which will even be able to do OBEX over Bluetooth in the future -It handles receive better let's you choose what to do with custom files and created a DocLnk -Send lets you beam to multiple devices this needs the IrDa Applet to be present
Diffstat (limited to 'core/obex/obexhandler.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/obex/obexhandler.cpp65
1 files changed, 65 insertions, 0 deletions
diff --git a/core/obex/obexhandler.cpp b/core/obex/obexhandler.cpp
new file mode 100644
index 0000000..f71a233
--- a/dev/null
+++ b/core/obex/obexhandler.cpp
@@ -0,0 +1,65 @@
1#include <qcopchannel_qws.h>
2
3#include <qpe/qcopenvelope_qws.h>
4
5#include "obexsend.h"
6#include "receiver.h"
7#include "obexhandler.h"
8
9using namespace OpieObex;
10
11ObexHandler::ObexHandler() {
12 m_wasRec = false;
13 m_sender = 0l;
14 m_receiver = 0l;
15 QCopChannel* chan = new QCopChannel("QPE/Obex");
16 connect(chan, SIGNAL(received(const QCString&, const QByteArray& ) ),
17 this, SLOT(irdaMessage(const QCString&, const QByteArray& ) ) );
18}
19ObexHandler::~ObexHandler() {
20 delete m_sender;
21 delete m_receiver;
22}
23void ObexHandler::doSend(const QString& str, const QString& desc) {
24 delete m_sender;
25 m_sender = new SendWidget;
26 m_sender->raise();
27 m_sender->showMaximized();
28 connect(m_sender, SIGNAL(done() ),
29 this, SLOT(slotSent() ) );
30 m_sender->send( str, desc );
31}
32void ObexHandler::doReceive(bool b) {
33 if (m_receiver && b ) return; // we should enable receiver and it is on
34 else if (!m_receiver && !b ) return; // we should disbale receiver and it is off
35 else if (m_receiver && !b ) {
36 delete m_receiver;
37 m_receiver=0;
38 }else if (!m_receiver && b ) {
39 m_receiver= new Receiver;
40 }
41}
42void ObexHandler::slotSent() {
43 QString file = m_sender->file();
44 delete m_sender;
45 m_sender = 0;
46 QCopEnvelope e ("QPE/Obex", "done(QString)" );
47 e << file;
48 doReceive(m_wasRec );
49 m_wasRec = false;
50}
51void ObexHandler::irdaMessage( const QCString& msg, const QByteArray& data) {
52 QDataStream stream( data, IO_ReadOnly );
53 if ( msg == "send(QString,QString,QString)" ) {
54 QString name, desc;
55 stream >> name;
56 stream >> desc;
57 m_wasRec = (m_receiver != 0 );
58 doReceive( false );
59 doSend(name, desc);
60 }else if (msg == "receive(int)") {
61 int rec;
62 stream >> rec;
63 doReceive(rec);
64 }
65}