From 17e2261e91566967406f616c288db963c6b39620 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Mon, 29 Nov 2010 02:30:25 +0100 Subject: [PATCH] * Show RX transfers in TransferView, too. --- src/database/databasecommand_loadfile.cpp | 5 +++-- src/database/databasecommand_loadfile.h | 2 +- src/network/controlconnection.cpp | 1 + src/network/filetransferconnection.cpp | 12 +++++++----- src/network/filetransferconnection.h | 6 +++--- src/network/servent.cpp | 2 +- 6 files changed, 16 insertions(+), 12 deletions(-) diff --git a/src/database/databasecommand_loadfile.cpp b/src/database/databasecommand_loadfile.cpp index 8a5cfe5c5..2542eda70 100644 --- a/src/database/databasecommand_loadfile.cpp +++ b/src/database/databasecommand_loadfile.cpp @@ -1,6 +1,7 @@ #include "databasecommand_loadfile.h" #include "databaseimpl.h" +#include "tomahawk/collection.h" DatabaseCommand_LoadFile::DatabaseCommand_LoadFile( const QString& id, QObject* parent ) @@ -11,7 +12,7 @@ DatabaseCommand_LoadFile::DatabaseCommand_LoadFile( const QString& id, QObject* void -DatabaseCommand_LoadFile::exec(DatabaseImpl* dbi) +DatabaseCommand_LoadFile::exec( DatabaseImpl* dbi ) { QVariantMap r; // file ids internally are really ints, at least for now: @@ -25,5 +26,5 @@ DatabaseCommand_LoadFile::exec(DatabaseImpl* dbi) r = dbi->file( fid ); } while( false ); - emit result( r ); + emit result( Tomahawk::result_ptr( new Tomahawk::Result( r, Tomahawk::collection_ptr() ) ) ); } diff --git a/src/database/databasecommand_loadfile.h b/src/database/databasecommand_loadfile.h index aca186109..f4d596ea7 100644 --- a/src/database/databasecommand_loadfile.h +++ b/src/database/databasecommand_loadfile.h @@ -18,7 +18,7 @@ public: virtual QString commandname() const { return "loadfile"; } signals: - void result( QVariantMap ); + void result( const Tomahawk::result_ptr result ); private: QString m_id; diff --git a/src/network/controlconnection.cpp b/src/network/controlconnection.cpp index d88d72f4f..e4075b74b 100644 --- a/src/network/controlconnection.cpp +++ b/src/network/controlconnection.cpp @@ -233,6 +233,7 @@ ControlConnection::onPingTimer() { if ( m_pingtimer_mark.elapsed() >= TCP_TIMEOUT * 1000 ) { + qDebug() << "Timeout reached! Shutting down connection to" << m_source->friendlyName(); shutdown( false ); } diff --git a/src/network/filetransferconnection.cpp b/src/network/filetransferconnection.cpp index 0a12f4cf1..0e6f3c330 100644 --- a/src/network/filetransferconnection.cpp +++ b/src/network/filetransferconnection.cpp @@ -16,7 +16,7 @@ using namespace Tomahawk; -FileTransferConnection::FileTransferConnection( Servent* s, ControlConnection* cc, QString fid, unsigned int size ) +FileTransferConnection::FileTransferConnection( Servent* s, ControlConnection* cc, QString fid, const Tomahawk::result_ptr& result ) : Connection( s ) , m_cc( cc ) , m_fid( fid ) @@ -24,11 +24,12 @@ FileTransferConnection::FileTransferConnection( Servent* s, ControlConnection* c , m_badded( 0 ) , m_bsent( 0 ) , m_allok( false ) + , m_result( result ) , m_transferRate( 0 ) { qDebug() << Q_FUNC_INFO; - BufferIODevice* bio = new BufferIODevice( size ); + BufferIODevice* bio = new BufferIODevice( result->size() ); m_iodev = QSharedPointer( bio ); // device audio data gets written to m_iodev->open( QIODevice::ReadWrite ); @@ -126,21 +127,22 @@ FileTransferConnection::setup() if( m_type == RECEIVING ) { qDebug() << "in RX mode"; + emit updated(); return; } qDebug() << "in TX mode, fid:" << m_fid; DatabaseCommand_LoadFile* cmd = new DatabaseCommand_LoadFile( m_fid ); - connect( cmd, SIGNAL( result( QVariantMap ) ), SLOT( startSending( QVariantMap ) ) ); + connect( cmd, SIGNAL( result( Tomahawk::result_ptr ) ), SLOT( startSending( Tomahawk::result_ptr ) ) ); TomahawkApp::instance()->database()->enqueue( QSharedPointer( cmd ) ); } void -FileTransferConnection::startSending( const QVariantMap& f ) +FileTransferConnection::startSending( const Tomahawk::result_ptr& result ) { - m_result = Tomahawk::result_ptr( new Tomahawk::Result( f, collection_ptr() ) ); + m_result = result; qDebug() << "Starting to transmit" << m_result->url(); QSharedPointer io = TomahawkApp::instance()->getIODeviceForUrl( m_result ); diff --git a/src/network/filetransferconnection.h b/src/network/filetransferconnection.h index 2fd4713c9..1badf186d 100644 --- a/src/network/filetransferconnection.h +++ b/src/network/filetransferconnection.h @@ -23,7 +23,7 @@ public: }; // RX: - explicit FileTransferConnection( Servent* s, ControlConnection* cc, QString fid, unsigned int size ); + explicit FileTransferConnection( Servent* s, ControlConnection* cc, QString fid, const Tomahawk::result_ptr& result ); // TX: explicit FileTransferConnection( Servent* s, ControlConnection* cc, QString fid ); @@ -50,9 +50,9 @@ protected slots: virtual void handleMsg( msg_ptr msg ); private slots: - void startSending( const QVariantMap& ); + void startSending( const Tomahawk::result_ptr& ); void sendSome(); - void showStats(qint64 tx, qint64 rx); + void showStats( qint64 tx, qint64 rx ); private: QSharedPointer m_iodev; diff --git a/src/network/servent.cpp b/src/network/servent.cpp index f851521fb..1ee4fd030 100644 --- a/src/network/servent.cpp +++ b/src/network/servent.cpp @@ -575,7 +575,7 @@ Servent::remoteIODeviceFactory( const result_ptr& result ) return sp; ControlConnection* cc = s->controlConnection(); - FileTransferConnection* ftc = new FileTransferConnection( this, cc, fileId, result->size() ); + FileTransferConnection* ftc = new FileTransferConnection( this, cc, fileId, result ); createParallelConnection( cc, ftc, QString( "FILE_REQUEST_KEY:%1" ).arg( fileId ) ); return ftc->iodevice(); }