author | zecke <zecke> | 2003-02-16 15:49:02 (UTC) |
---|---|---|
committer | zecke <zecke> | 2003-02-16 15:49:02 (UTC) |
commit | 30a098530260176ac20d75ba6cb7abfb3d998c13 (patch) (side-by-side diff) | |
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 @@ +#include <qcopchannel_qws.h> + +#include <qpe/qcopenvelope_qws.h> + +#include "obexsend.h" +#include "receiver.h" +#include "obexhandler.h" + +using namespace OpieObex; + +ObexHandler::ObexHandler() { + m_wasRec = false; + m_sender = 0l; + m_receiver = 0l; + 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; +} +void ObexHandler::doSend(const QString& str, const QString& desc) { + delete m_sender; + m_sender = new SendWidget; + m_sender->raise(); + m_sender->showMaximized(); + connect(m_sender, SIGNAL(done() ), + 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::slotSent() { + QString file = m_sender->file(); + delete m_sender; + m_sender = 0; + QCopEnvelope e ("QPE/Obex", "done(QString)" ); + e << file; + doReceive(m_wasRec ); + m_wasRec = false; +} +void ObexHandler::irdaMessage( const QCString& msg, const QByteArray& data) { + QDataStream stream( data, IO_ReadOnly ); + if ( msg == "send(QString,QString,QString)" ) { + QString name, desc; + stream >> name; + stream >> desc; + m_wasRec = (m_receiver != 0 ); + doReceive( false ); + doSend(name, desc); + }else if (msg == "receive(int)") { + int rec; + stream >> rec; + doReceive(rec); + } +} |