author | zecke <zecke> | 2003-02-16 15:49:02 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-02-16 15:49:02 (UTC) |
commit | 30a098530260176ac20d75ba6cb7abfb3d998c13 (patch) (unidiff) | |
tree | ee5c08ca67fa00574414153921ab2de654c60421 /core/obex/obexhandler.cpp | |
parent | 7fab90d46144843d32e476ada8d0a5f40f50aa60 (diff) | |
download | opie-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
-rw-r--r-- | core/obex/obexhandler.cpp | 65 |
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 | |||
9 | using namespace OpieObex; | ||
10 | |||
11 | ObexHandler::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 | } | ||
19 | ObexHandler::~ObexHandler() { | ||
20 | delete m_sender; | ||
21 | delete m_receiver; | ||
22 | } | ||
23 | void 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 | } | ||
32 | void 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 | } | ||
42 | void 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 | } | ||
51 | void 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 | } | ||