mpviewplugins/mpdetailsviewplugin/inc/mpquerymanager.h
changeset 48 af3740e3753f
parent 32 c163ef0b758d
child 51 560ce2306a17
equal deleted inserted replaced
42:79c49924ae23 48:af3740e3753f
    15 *
    15 *
    16 */
    16 */
    17 #ifndef MPQUERYMANAGER_H_
    17 #ifndef MPQUERYMANAGER_H_
    18 #define MPQUERYMANAGER_H_
    18 #define MPQUERYMANAGER_H_
    19 
    19 
    20 #include <QPixmap>
       
    21 #include <QPointer>
    20 #include <QPointer>
    22 #include <QNetworkReply>
    21 #include <QNetworkReply>
    23 #include <QDomDocument>
    22 #include <QDomDocument>
    24 #include <QMap>
    23 #include <QMap>
       
    24 #include <HbIcon>
    25 
    25 
    26 #include "mpviewbase.h"
    26 #include "mpviewbase.h"
    27 
    27 
    28 class QNetworkAccessManager;
    28 class QNetworkAccessManager;
    29 class ThumbnailManager;
    29 class ThumbnailManager;
    43 public:
    43 public:
    44     MpQueryManager();
    44     MpQueryManager();
    45     ~MpQueryManager();
    45     ~MpQueryManager();
    46     
    46     
    47 public:
    47 public:
    48     void clearNetworkReplies();
    48     void reset();
    49     void queryLocalMusicStore( QString mArtist,QString mAlbum,QString mTitle );
    49     void queryLocalMusicStore( QString mArtist,QString mAlbum,QString mTitle );
    50     void queryInspireMeItems( QString mArtist,QString mAlbum,QString mTitle );
    50     void queryInspireMeItems( QString mArtist,QString mAlbum,QString mTitle );
    51     void clearRecommendations();
    51     void queryLocalMusicStore();
       
    52     bool isLocalMusicStore() const;
    52     
    53     
    53     QStringList recommendationSongs();
    54     int recommendationsCount() const;
    54     QStringList recommendationArtists();
    55     QString recommendedSong(int index) const;
    55     QStringList recommendationAlbumArtsLink();
    56     QString recommendedArtist(int index) const;
    56     QMap<QString, QPixmap>  recommendationAlbumArtsMap(); 
    57     HbIcon recommendedAlbumArt(int index) const;
    57     void insertMapItem( const QString &uri, const QPixmap &pixmap );    
       
    58 
    58 
    59 private slots:
    59 private slots:
    60     void retrieveInformationFinished( QNetworkReply* reply );
    60     void retrieveInformationFinished( QNetworkReply* reply );
    61     void retrieveInformationNetworkError( QNetworkReply::NetworkError error );
    61     void retrieveInformationNetworkError( QNetworkReply::NetworkError error );
    62     void retrieveInformationSslErrors( const QList<QSslError> &error );
    62     void retrieveInformationSslErrors( const QList<QSslError> &error );
    63     void DownloadFinished( QNetworkReply* reply );    
    63     void albumArtDownloaded( QNetworkReply* reply );    
    64     void setAlbumArtUri( const QString &albumArtUri, const QString &albumArtName );
    64     void setAlbumArtUri( const QString &albumArtUri, const QString &albumArtName );
    65     void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error );
    65     void thumbnailReady( const QPixmap pixmap, void *data, int id, int error );
    66                   
    66                   
    67 private:
    67 private:
       
    68     void clearThumbnails();
       
    69     void clearRecommendations();    
       
    70     void clearNetworkReplies();    
       
    71     void signalError();    
    68     void constructRequest( QString &uri );     
    72     void constructRequest( QString &uri );     
    69     // retrieve URI from Ovi music server
    73     // retrieve URI from Ovi music server
    70     void retrieveInformation( const QString &urlEncoded );
    74     void retrieveInformation( const QString &urlEncoded );
    71     
    75     
    72     void composeAlbumCover( QPixmap albumart );
       
    73     QString keyValues( QStringList keys, QStringList values ) const;
    76     QString keyValues( QStringList keys, QStringList values ) const;
    74     void handleParsedXML();
    77     void handleParsedXML();
    75 
    78 
    76     bool writeImageToFile( const QByteArray &aImageData, const QString &aImageFileName );
    79     bool writeImageToFile( const QByteArray &aImageData, const QString &aImageFileName );
    77     
    80     
    78 signals:
    81 signals:
    79     void networkError();  
    82     void inspireMeItemAlbumArtReady();
    80     void searchUrlRetrieved( const QString& url );
    83     void localMusicStoreRetrieved(bool storeUpdated);
    81     void recommendationAlbumArtsReady();
    84     void localMusicStoreRetrievalError();
    82 
    85     void inspireMeItemsRetrievalError();
       
    86     void inspireMeItemsMetadataRetrieved();
       
    87             
    83 private:    
    88 private:    
    84    
    89    
    85     QNetworkAccessManager   *mManager;
    90     QNetworkAccessManager   	*mManager;
    86     QNetworkAccessManager   *mDownloadManager;
    91     QNetworkAccessManager   	*mAlbumArtDownloader;
    87     
    92     
    88     int                     mDownloadedAlbumArts;
    93     int                     	mDownloadedAlbumArts;
    89   
    94   
    90     QList<QNetworkReply *>  mReplys;
    95     QList<QNetworkReply *>  	mReplys;
       
    96     QList<int>                  mThumbnailRequests;
    91     
    97     
    92     QDomDocument            mDomDocument;
    98     QDomDocument            	mDomDocument;
    93     ThumbnailManager        *mThumbnailManager; //owned    
    99     ThumbnailManager        	*mThumbnailManager; //owned    
    94     
   100     
    95     QString                 mArtist;
   101     QString                 	mArtist;
    96     QString                 mAlbum;
   102     QString                 	mAlbum;
    97     QString                 mTitle;
   103     QString                 	mTitle;
       
   104     QString                 	mMusicStore;
       
   105     QStringList          		mRecommendationAlbumArtsName;
    98     
   106     
    99     QStringList          mRecommendationAlbumArtsName;
   107     QStringList          		mRecommendationSongs;
   100     
   108     QStringList          		mRecommendationArtists;
   101     QStringList          mRecommendationSongs;
   109     QStringList          		mRecommendationAlbumArtsLink;
   102     QStringList          mRecommendationArtists;
   110     QMap<QString, HbIcon>  		mRecommendationAlbumArtsMap;
   103     QStringList          mRecommendationAlbumArtsLink;
   111     int                     	mAlbumArtsReadyCount;
   104     QMap<QString, QPixmap>  mRecommendationAlbumArtsMap;
   112     HbIcon                 		mDefaultRecommendationAlbumArt;
   105     int                     mAlbumArtsReadyCount;
       
   106     QPixmap                 mDefaultRecommendationAlbumArt;
       
   107        
   113        
       
   114     enum RequestType { NoRequest, InspireMeItemsMetadataRequest, InspireMeItemsAlbumArtRequest, LocalStoreRequest };
       
   115     RequestType         		mRequestType;
       
   116     int                         mRecommendationCount;
   108  
   117  
   109 };
   118 };
   110 #endif /* MPQUERYMANAGER_H_ */
   119 #endif /* MPQUERYMANAGER_H_ */
       
   120