mpviewplugins/mpdetailsviewplugin/inc/mpquerymanager.h
changeset 29 8192e5b5c935
child 32 c163ef0b758d
equal deleted inserted replaced
25:3ec52facab4d 29:8192e5b5c935
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: Music Player Query Manager.
       
    15 *
       
    16 */
       
    17 #ifndef MPQUERYMANAGER_H_
       
    18 #define MPQUERYMANAGER_H_
       
    19 
       
    20 #include <QPixmap>
       
    21 #include <QNetworkReply>
       
    22 #include <QDomDocument>
       
    23 #include <QMap>
       
    24 
       
    25 #include "mpviewbase.h"
       
    26 
       
    27 class QNetworkAccessManager;
       
    28 
       
    29 /*!
       
    30   MpQueryManager class is responsible for performing music player
       
    31   related network queries, including retrieving the URL for the
       
    32   music.
       
    33 
       
    34   It emits searchUrlRetrieved signal when it has received the
       
    35   URL.
       
    36 */
       
    37 class MpQueryManager : public QObject
       
    38 {
       
    39     Q_OBJECT
       
    40 
       
    41 public:
       
    42     MpQueryManager();
       
    43     ~MpQueryManager();
       
    44 
       
    45 public:
       
    46     void clearNetworkReplies();
       
    47     void queryLocalMusicStore( QString mArtist,QString mAlbum,QString mTitle );
       
    48     void queryInspireMeItems( QString mArtist,QString mAlbum,QString mTitle );
       
    49     void clearRecommendations();
       
    50 
       
    51     QStringList recommendationSongs();
       
    52     QStringList recommendationArtists();
       
    53     QStringList recommendationAlbumArtsLink();
       
    54     QMap<QString, QPixmap>  recommendationAlbumArtsMap();
       
    55     int &albumArtsReadyCount();
       
    56 
       
    57     void insertMapItem( const QString &uri, const QPixmap &pixmap );
       
    58 
       
    59 private slots:
       
    60     void retrieveInformationFinished( QNetworkReply* reply );
       
    61     void retrieveInformationNetworkError( QNetworkReply::NetworkError error );
       
    62     void retrieveInformationSslErrors( const QList<QSslError> &error );
       
    63     void DownloadFinished( QNetworkReply* reply );
       
    64 
       
    65 private:
       
    66     void constructRequest( QString &uri );
       
    67     // retrieve URI from Ovi music server
       
    68     void retrieveInformation( const QString &urlEncoded );
       
    69 
       
    70     void composeAlbumCover( QPixmap albumart );
       
    71     QString keyValues( QStringList keys, QStringList values ) const;
       
    72     void handleParsedXML();
       
    73 
       
    74     bool writeImageToFile( const QByteArray &aImageData, const QString &aImageFileName );
       
    75 
       
    76 signals:
       
    77     void networkError();
       
    78     void setAlbumArt( const QString &albumArtUri, const QString &albumArtName );
       
    79     void searchUrlRetrieved( const QString& url );
       
    80 
       
    81 private:
       
    82 
       
    83     QNetworkAccessManager   *mManager;
       
    84     QNetworkAccessManager   *mDownloadManager;
       
    85 
       
    86     int                     mDownloadedAlbumArts;
       
    87 
       
    88     QList<QNetworkReply *>  mReplys;
       
    89 
       
    90     QDomDocument            mDomDocument;
       
    91 
       
    92 
       
    93     QString                 mArtist;
       
    94     QString                 mAlbum;
       
    95     QString                 mTitle;
       
    96 
       
    97     QStringList          mRecommendationAlbumArtsName;
       
    98 
       
    99     QStringList          mRecommendationSongs;
       
   100     QStringList          mRecommendationArtists;
       
   101     QStringList          mRecommendationAlbumArtsLink;
       
   102     QMap<QString, QPixmap>  mRecommendationAlbumArtsMap;
       
   103     int                     mAlbumArtsReadyCount;
       
   104 
       
   105 
       
   106 };
       
   107 #endif /* MPQUERYMANAGER_H_ */