summaryrefslogtreecommitdiff
path: root/core/obex/btobex.cpp
Side-by-side diff
Diffstat (limited to 'core/obex/btobex.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--core/obex/btobex.cpp60
1 files changed, 46 insertions, 14 deletions
diff --git a/core/obex/btobex.cpp b/core/obex/btobex.cpp
index a5bfe5f..212a084 100644
--- a/core/obex/btobex.cpp
+++ b/core/obex/btobex.cpp
@@ -1,3 +1,33 @@
+/*
+               =. This file is part of the OPIE Project
+             .=l. Copyright (c) 2002 Maximilian Reiss <max.reiss@gmx.de>
+           .>+-=
+ _;:,     .>    :=|. This library is free software; you can
+.> <,   >  .   <= redistribute it and/or modify it under
+:=1 )Y*s>-.--   : the terms of the GNU Library General Public
+.="- .-=="i,     .._ License as published by the Free Software
+ - .   .-<_>     .<> Foundation; version 2 of the License.
+     ._= =}       :
+    .%+i>       _;_.
+    .i_,=:_.      -<s. This library is distributed in the hope that
+     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
+    : ..    .:,     . . . without even the implied warranty of
+    =_        +     =;=| MERCHANTABILITY or FITNESS FOR A
+  _.=:.       :    :=>: PARTICULAR PURPOSE. See the GNU
+..}^=.=       =       ; Library General Public License for more
+++=   -.     .     .: details.
+ :     =  ...= . :.=-
+ -.   .:....=;==+<; You should have received a copy of the GNU
+  -_. . .   )=.  = Library General Public License along with
+   --        :-= this library; see the file COPYING.LIB.
+ If not, write to the Free Software Foundation,
+ Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+*/
+/*
+ * The Bluetooth OBEX manipulating class implementation
+ */
#include "btobex.h"
#include <manager.h>
@@ -20,16 +50,10 @@ using namespace Opie::Core;
using namespace OpieTooth;
BtObex::BtObex( QObject *parent, const char* name )
- : QObject(parent, name )
+ : ObexBase(parent, name )
{
m_rec = 0;
m_send=0;
- m_count = 0;
- m_receive = false;
- connect( this, SIGNAL(error(int) ), // for recovering to receive
- SLOT(slotError() ) );
- connect( this, SIGNAL(sent(bool) ),
- SLOT(slotError() ) );
btManager = NULL;
};
@@ -40,12 +64,11 @@ BtObex::~BtObex() {
}
void BtObex::receive() {
- m_receive = true;
- m_outp = QString::null;
- m_rec = new OProcess();
+ ObexBase::receive();
+ m_rec = new ObexServer();
+ odebug << "BT OBEX do receive" << oendl;
// TODO mbhaynie: No idea if this actually works -- maybe opd is better.
- *m_rec << "obexftpd" << "-b";
// connect to the necessary slots
connect(m_rec, SIGNAL(processExited(Opie::Core::OProcess*) ),
this, SLOT(slotExited(Opie::Core::OProcess*) ) );
@@ -61,10 +84,8 @@ void BtObex::receive() {
}
void BtObex::send( const QString& fileName, const QString& bdaddr) {
+ ObexBase::send(fileName, bdaddr);
// if currently receiving stop it send receive
- m_count = 0;
- m_file = fileName;
- m_bdaddr = bdaddr;
if (m_send != 0) {
if (m_send->isSending())
return;
@@ -150,6 +171,10 @@ void BtObex::sendNow(){
connect(m_send, SIGNAL(status(QCString&)),
this, SLOT(slotPushStatus(QCString&) ) );
+ /*
+ * FIXME: this delay is made because some cell phones understands an error
+ * later.
+ */
::sleep(4);
// now start it
result = m_send->send(m_bdaddr, m_port, m_file, m_dst);
@@ -171,12 +196,15 @@ void BtObex::slotExited(OProcess* proc ){
<< proc->exitStatus() << oendl;
if (proc == m_rec ) // receive process
received();
+
}
void BtObex::slotStdOut(OProcess* proc, char* buf, int len){
if ( proc == m_rec ) { // only receive
QByteArray ar( len );
memcpy( ar.data(), buf, len );
m_outp.append( ar );
+ QCString str(buf, len);
+ odebug << str << oendl;
}
}
@@ -207,6 +235,7 @@ void BtObex::received() {
if (m_rec->normalExit() ) {
if ( m_rec->exitStatus() == 0 ) { // we got one
QString filename = parseOut();
+ odebug << "OBEX " << filename << " received" << oendl;
emit receivedFile( filename );
}
}else{
@@ -240,10 +269,13 @@ QString BtObex::parseOut(){
* when sent is done slotError is called we will start receive again
*/
void BtObex::slotError() {
+ ObexBase::slotError();
if ( m_receive )
receive();
};
void BtObex::setReceiveEnabled( bool receive ) {
+ odebug << "BT OBEX setReceiveEnabled " << receive << oendl;
+ ObexBase::setReceiveEnabled(receive);
if ( !receive ) { //
m_receive = false;
shutDownReceive();