summaryrefslogtreecommitdiff
path: root/core/obex/obex.cpp
Side-by-side diff
Diffstat (limited to 'core/obex/obex.cpp') (more/less context) (show whitespace changes)
-rw-r--r--core/obex/obex.cpp49
1 files changed, 37 insertions, 12 deletions
diff --git a/core/obex/obex.cpp b/core/obex/obex.cpp
index 36634ec..95c561a 100644
--- a/core/obex/obex.cpp
+++ b/core/obex/obex.cpp
@@ -1,79 +1,102 @@
+/*
+               =. 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 Infrared OBEX handling class implementation
+ */
#include "obex.h"
/* OPIE */
#include <opie2/oprocess.h>
#include <opie2/odebug.h>
/* QT */
#include <qfileinfo.h>
using namespace OpieObex;
using namespace Opie::Core;
/* TRANSLATOR OpieObex::Obex */
Obex::Obex( 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() ) );
};
Obex::~Obex() {
delete m_rec;
delete m_send;
}
void Obex::receive() {
- m_receive = true;
- m_outp = QString::null;
+ ObexBase::receive();
m_rec = new OProcess();
*m_rec << "irobex_palm3";
// connect to the necessary slots
connect(m_rec, SIGNAL(processExited(Opie::Core::OProcess*) ),
this, SLOT(slotExited(Opie::Core::OProcess*) ) );
connect(m_rec, SIGNAL(receivedStdout(Opie::Core::OProcess*, char*, int ) ),
this, SLOT(slotStdOut(Opie::Core::OProcess*, char*, int) ) );
if(!m_rec->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) {
emit done( false );
delete m_rec;
m_rec = 0;
}
}
-void Obex::send( const QString& fileName) { // if currently receiving stop it send receive
- m_count = 0;
- m_file = fileName;
+// if currently receiving stop it send receive
+void Obex::send(const QString& fileName, const QString& addr) {
+ ObexBase::send(fileName, addr);
if (m_rec != 0 ) {
if (m_rec->isRunning() ) {
emit error(-1 );
delete m_rec;
m_rec = 0;
}else{
emit error( -1 ); // we did not delete yet but it's not running slotExited is pending
return;
}
}
sendNow();
}
void Obex::sendNow(){
if ( m_count >= 25 ) { // could not send
emit error(-1 );
emit sent(false);
return;
}
// OProcess inititialisation
m_send = new OProcess();
m_send->setWorkingDirectory( QFileInfo(m_file).dirPath(true) );
*m_send << "irobex_palm3";
@@ -144,44 +167,46 @@ void Obex::sendEnd() {
m_send = 0;
}
}
QString Obex::parseOut( ){
QString path;
QStringList list = QStringList::split("\n", m_outp);
QStringList::Iterator it;
for (it = list.begin(); it != list.end(); ++it ) {
if ( (*it).startsWith("Wrote" ) ) {
int pos = (*it).findRev('(' );
if ( pos > 0 ) {
path = (*it).remove( pos, (*it).length() - pos );
path = path.mid(6 );
path = path.stripWhiteSpace();
}
}
}
return path;
}
/**
* when sent is done slotError is called we will start receive again
*/
void Obex::slotError() {
+ ObexBase::slotError();
if ( m_receive )
receive();
};
void Obex::setReceiveEnabled( bool receive ) {
+ ObexBase::setReceiveEnabled(receive);
if ( !receive ) { //
m_receive = false;
shutDownReceive();
}
}
void Obex::shutDownReceive() {
if (m_rec != 0 ) {
if (m_rec->isRunning() ) {
emit error(-1 );
delete m_rec;
m_rec = 0;
}
}
}