diff -r 3ec52facab4d -r 8192e5b5c935 inc/mpsongdata.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inc/mpsongdata.h Thu May 27 12:49:57 2010 +0300 @@ -0,0 +1,133 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: Metadata of song for details view. +* +*/ + +#ifndef MPSONGDATA_H +#define MPSONGDATA_H + +#include +#include +#include + +//forward declartions +class ThumbnailManager; +class HbIcon; + +#if defined(BUILD_MPDATA_LIB) +#define MPDATA_EXPORT Q_DECL_EXPORT +#else +#define MPDATA_EXPORT Q_DECL_IMPORT +#endif + +//class declaration +class MPDATA_EXPORT MpSongData : public QObject +{ + Q_OBJECT + +public: + explicit MpSongData( QObject *parent=0 ); + virtual ~MpSongData(); + + bool setTitle( const QString &title ); + bool setAlbum( const QString &album ); + bool setArtist( const QString &artist ); + bool setComment( const QString &comment ); + void setAlbumArtUri( const QString &albumArtUri ); + bool setYear( int date ); + bool setGenre( const QString &genre ); + bool setComposer( const QString &compoer ); + bool setAlbumTrack( const QString &albumtrack ); + void setLink( const QString &link ); + bool setFileName( const QString &fileName ); + bool setMimeType( const QString &mimeType ); + bool setDuration( int duration ); + bool setBitRate( int bitRate); + bool setSampleRate( int sampleRate ); + bool setSize( int size ); + bool setModified( const QString &modified ); + bool setCopyright( const QString ©right ); + bool setMusicURL( const QString &musicURL ); + bool setDrmProtected( bool drmProtected ); + + // inform details view when basic information is ready to accelerate UI update + void commitPlaybackInfo(); + // inform details view when details information is ready + void commitSongDetailInfo(); + +public slots: + void thumbnailReady( const QPixmap& pixmap, void *data, int id, int error ); + + int reservedLength() const { return mLink.length() + mTitle.length() + mArtist.length(); } + + QString title() const; + QString album() const; + QString artist() const; + QString comment() const; + void albumArt( HbIcon& icon ) const; + QString year() const; + QString genre() const; + QString composer() const; + QString albumTrack() const; + QString link() const; + + QString fileName() const; + QString mimeType() const; + QString duration() const; + QString bitRate() const; + QString sampleRate() const; + QString size() const; + QString modified() const; + QString copyright() const; + QString musicURL() const; + bool isDrmProtected() const; + + QString albumArtBase64() const; + +signals: + void albumArtReady(); + void playbackInfoChanged(); + void songDetailInfoChanged(); + +private: + QString mTitle; + QString mAlbum; + QString mArtist; + QString mComment; + QString mComposer; + QString mGenre; + QString mYear; + QString mAlbumTrack; + HbIcon *mAlbumArt; + ThumbnailManager *mThumbnailManager; //owned + TInt mReqId; + QString currentAAUri; + HbIcon *mDefaultAlbumArt; + QString mLink; + QString mFileName; + QString mMimeType; + QString mDuration; + QString mBitRate; + QString mSampleRate; + QString mSize; + QString mModified; + QString mCopyright; + QString mMusicURL; + bool mDrmProtected; + + Q_DISABLE_COPY(MpSongData) +}; + +#endif // MPSONGDATA_H