~ubuntu-branches/ubuntu/lucid/lastfm/lucid

« back to all changes in this revision

Viewing changes to src/libFingerprint/FingerprintCollector.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Devid Filoni
  • Date: 2008-07-14 16:46:20 UTC
  • mfrom: (1.1.7 upstream) (3.1.1 lenny)
  • Revision ID: james.westby@ubuntu.com-20080714164620-67hoz9fs177wpgmr
Tags: 1:1.5.1.31879.dfsg-1ubuntu1
* Merge from Debian unstable (LP: #248100), remaining changes:
  - debian/rules: add dh_icons call
  + debian/control:
    - switch iceweasel to firefox in Recommends field
    - modify debhelper version to >= 5.0.51~
    - modify Maintainer to Ubuntu MOTU Developers

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
#include "WebService/SubmitFullFingerprintRequest.h"
24
24
#include "Settings.h"
25
 
 
 
25
#include "logger.h"
26
26
#include "FingerprintExtractor.h"
27
27
 
28
 
#include <QDebug>
29
28
#include <QApplication>
30
29
 
31
 
FingerprintCollector::FingerprintCollector( int numberOfThreads,
32
 
                                            QObject* parent ) :
33
 
    QObject( parent )
 
30
 
 
31
FingerprintCollector::FingerprintCollector( int numberOfThreads, QObject* parent )
 
32
                     : QObject( parent )
34
33
{
35
34
    for( int i = 0; i < numberOfThreads; i++ )
36
35
    {
46
45
    m_serversBusyCounter = m_networkFailCounter = 0;
47
46
}
48
47
 
 
48
 
49
49
FingerprintCollector::~FingerprintCollector()
50
50
{
51
51
}
52
52
 
 
53
 
53
54
FingerprintReturnInfo
54
55
FingerprintCollector::fingerprint( QList<TrackInfo> scrobbledTracks )
55
56
{
138
139
    return retinfo;
139
140
}
140
141
 
141
 
void FingerprintCollector::onThreadFinished( Fingerprinter2* fingerprinter )
 
142
 
 
143
void
 
144
FingerprintCollector::onThreadFinished( Fingerprinter2* fingerprinter )
142
145
{
143
146
    if ( fingerprinter->data().size() == 0 )
144
147
    {
162
165
    fingerprinter->reset();
163
166
}
164
167
 
165
 
void FingerprintCollector::onFingerprintSent(Request* req)
 
168
 
 
169
void
 
170
FingerprintCollector::onFingerprintSent( Request* req )
166
171
{
167
172
    SubmitFullFingerprintRequest* submitreq = dynamic_cast<SubmitFullFingerprintRequest*>( req );
168
173
    Q_ASSERT(submitreq);
169
174
 
170
175
    QMutexLocker emitLocker( &m_networkErrorEmitMutex );
171
 
    if ( req->failed() ) {
 
176
    if ( req && req->failed() )
 
177
    {
172
178
        qDebug() << "Network error: " << submitreq->errorMessage();
 
179
 
173
180
        if ( req->aborted() )
174
181
            emit networkError( FingerprintCollector::RequestAborted, QString() );
175
 
        else if ( req->responseHeaderCode() == 400 ) {
 
182
 
 
183
        else if ( req->responseHeaderCode() == 400 )
 
184
        {
176
185
            emit cantFingerprintTrack( submitreq->track(), tr( "Getting bad request with this track, skipping." ) );
177
186
            emit networkError( FingerprintCollector::BadRequest, submitreq->errorMessage() );
178
 
        } else
 
187
        }
 
188
        else
179
189
            emit networkError( FingerprintCollector::OtherError, submitreq->errorMessage() );
180
190
 
181
191
        // Removed this because it caused several result signals to be emitted which led to
206
216
    m_ongoingRequests.removeAt( m_ongoingRequests.indexOf( submitreq->track().path() ) );
207
217
}
208
218
 
209
 
bool FingerprintCollector::tryStartThreads()
 
219
 
 
220
bool
 
221
FingerprintCollector::tryStartThreads()
210
222
{
211
223
    QMutexLocker locker_q( &m_queueMutex );
212
224
    QMutexLocker locker_try( &m_tryStartMutex );
275
287
    return ret;
276
288
}
277
289
 
278
 
void FingerprintCollector::stop()
 
290
 
 
291
void
 
292
FingerprintCollector::stop()
279
293
{
280
294
    QMutexLocker locker_q( &m_queueMutex );
281
295
    QMutexLocker locker_pr( &m_ongoingRequestsMutex );
286
300
        emit stopped( true );
287
301
}
288
302
 
289
 
void FingerprintCollector::pause()
 
303
 
 
304
void
 
305
FingerprintCollector::pause()
290
306
{
291
307
    m_stop = true;
292
308
    if ( isStopped() )
293
309
        emit stopped( !m_queue.isEmpty() );
294
310
}
295
311
 
296
 
void FingerprintCollector::resume()
 
312
 
 
313
void
 
314
FingerprintCollector::resume()
297
315
{
298
316
    m_stop = false;
299
317
 
302
320
    emit resumed();
303
321
}
304
322
 
305
 
bool FingerprintCollector::isStopped()
 
323
 
 
324
bool
 
325
FingerprintCollector::isStopped()
306
326
{
307
327
    foreach( Fingerprinter2* fingerprinter, m_fingerprinters )
308
328
    {