mpdata/src/mpplaybackdata.cpp
branchGCC_SURGE
changeset 44 eff9df3d9c98
parent 32 c163ef0b758d
child 43 0f32e550d9d8
child 48 af3740e3753f
equal deleted inserted replaced
30:b95ddb5a0d10 44:eff9df3d9c98
    13 *
    13 *
    14 * Description: Playback Data provider for playback view.
    14 * Description: Playback Data provider for playback view.
    15 *
    15 *
    16 */
    16 */
    17 
    17 
    18 #include <qicon>
    18 #include <QIcon>
    19 #include <qstring>
    19 #include <QString>
    20 #include <qpixmap>
    20 #include <QPixmap>
    21 #include <qpainter>
    21 #include <QPainter>
    22 #include <hbicon.h>
    22 #include <hbicon.h>
    23 #include <thumbnailmanager_qt.h>
    23 #include <thumbnailmanager_qt.h>
    24 
    24 
    25 #include "mpplaybackdata.h"
    25 #include "mpplaybackdata.h"
    26 #include "mptrace.h"
    26 #include "mptrace.h"
    72 
    72 
    73 /*!
    73 /*!
    74     Constructs a new MpPlaybackData.
    74     Constructs a new MpPlaybackData.
    75  */
    75  */
    76 MpPlaybackData::MpPlaybackData( QObject *parent )
    76 MpPlaybackData::MpPlaybackData( QObject *parent )
    77     : QObject(parent),
    77     : QObject( parent ),
    78       mThumbnailManager(0),
    78       mThumbnailManager( new ThumbnailManager( this ) ),
    79       mReqId(KUndefined),
    79       mReqId( KUndefined ),
    80       mDuration(0),
    80       mDuration(0),
    81       mPosition(0),
    81       mPosition(0),
    82       mAlbumArt(),
    82       mAlbumId(0),
    83       mPlaybackState(Stopped)
    83       mId(0),
       
    84       mAlbumArt( "qtg_large_music_album" ),
       
    85       mDefaultAlbumArt( "qtg_large_music_album" ),
       
    86       mPlaybackState( NotPlaying ),
       
    87       mRealAudio( false )
    84 {
    88 {
    85     TX_ENTRY
    89     TX_ENTRY
    86     mThumbnailManager = new ThumbnailManager(this);
    90     mThumbnailManager->setQualityPreference( ThumbnailManager::OptimizeForQuality );
    87     mThumbnailManager->setQualityPreference(ThumbnailManager::OptimizeForQuality);
    91     mThumbnailManager->setThumbnailSize( ThumbnailManager::ThumbnailLarge );
    88     mThumbnailManager->setThumbnailSize(ThumbnailManager::ThumbnailLarge);
    92     connect( mThumbnailManager, SIGNAL( thumbnailReady(QPixmap, void *, int, int ) ),
    89     connect( mThumbnailManager, SIGNAL(thumbnailReady(QPixmap, void *, int, int)),
    93              this, SLOT(thumbnailReady( QPixmap, void *, int, int ) ) );
    90              this, SLOT(thumbnailReady(QPixmap, void *, int, int)) );
       
    91 
       
    92     //TODO: Change to final resource when available
       
    93     mDefaultAlbumArt =  new HbIcon("qtg_large_music");
       
    94     TX_EXIT
    94     TX_EXIT
    95 }
    95 }
    96 
    96 
    97 /*!
    97 /*!
    98  Constructs a new MpPlaybackData.
    98  Constructs a new MpPlaybackData.
   173 */
   173 */
   174 bool MpPlaybackData::setArtist( const QString& artist )
   174 bool MpPlaybackData::setArtist( const QString& artist )
   175 {
   175 {
   176     TX_ENTRY_ARGS( "artist = " << artist )
   176     TX_ENTRY_ARGS( "artist = " << artist )
   177     bool change = false;
   177     bool change = false;
   178     if ( artist != mArtist ) {
   178     // data is different or mArtist was not set befor or it was reset.
   179         change = true;
   179     // When artist is empty and mArtist is empty mArtist should be unknown text.
   180         mArtist = artist;
   180     if ( artist != mArtist || mArtist.isNull()) {
       
   181         change = true;
       
   182         if ( artist.isEmpty() ){
       
   183             mArtist = hbTrId( "txt_mus_other_unknown3" );      
       
   184         }
       
   185         else {
       
   186             mArtist = artist;
       
   187         }
   181     }
   188     }
   182     TX_EXIT
   189     TX_EXIT
   183     return change;
   190     return change;
   184 }
   191 }
   185 
   192 
   197 */
   204 */
   198 bool MpPlaybackData::setAlbum( const QString& album )
   205 bool MpPlaybackData::setAlbum( const QString& album )
   199 {
   206 {
   200     TX_ENTRY_ARGS( "album = " << album )
   207     TX_ENTRY_ARGS( "album = " << album )
   201     bool change = false;
   208     bool change = false;
   202     if ( album != mAlbum ) {
   209     // data is different or mAlbum was not set befor or it was reset.
   203         change = true;
   210     // when album is empty and mAlbum is empty mAlbum should be unknown text.
   204         mAlbum = album;
   211     if ( album != mAlbum || mAlbum.isNull() ) {
       
   212         change = true;
       
   213         if ( album.isEmpty() ){
       
   214             mAlbum = hbTrId( "txt_mus_other_unknown4" );
       
   215         }
       
   216         else{
       
   217             mAlbum = album;            
       
   218         }
   205     }
   219     }
   206     TX_EXIT
   220     TX_EXIT
   207     return change;
   221     return change;
   208 }
   222 }
   209 
   223 
   273  Returns the song album art on \a icon.
   287  Returns the song album art on \a icon.
   274 */
   288 */
   275 void MpPlaybackData::albumArt( HbIcon& icon ) const
   289 void MpPlaybackData::albumArt( HbIcon& icon ) const
   276 {
   290 {
   277     TX_ENTRY
   291     TX_ENTRY
   278     if ( mAlbumArt->isNull() ) {
   292     icon = mAlbumArt ;
   279         icon = HbIcon();
   293     TX_EXIT
   280      }
   294 }
   281      else {
   295 
   282         icon = *mAlbumArt ;
   296 /*!
   283      }
   297  Sets the song's album \a id, returns true if the value is new.
   284     TX_EXIT
   298 */
       
   299 bool MpPlaybackData::setAlbumId( int id )
       
   300 {
       
   301     bool change = false;
       
   302     if (mAlbumId != id) {
       
   303         mAlbumId = id;
       
   304         change = true;
       
   305     }
       
   306     return change;
       
   307 }
       
   308 
       
   309 /*!
       
   310  Returns the id of the album to which the song belongs.
       
   311 */
       
   312 int MpPlaybackData::albumId()
       
   313 {
       
   314     return mAlbumId;
       
   315 }
       
   316 
       
   317 /*!
       
   318  Sets the song's \a id, returns true if the value is new.
       
   319 */
       
   320 bool MpPlaybackData::setId( int id )
       
   321 {
       
   322     bool change = false;
       
   323     if (mId != id) {
       
   324         mId = id;
       
   325         change = true;
       
   326     }
       
   327     return change;
       
   328 }
       
   329 
       
   330 /*!
       
   331  Returns the id the song.
       
   332 */
       
   333 int MpPlaybackData::id()
       
   334 {
       
   335     return mId;
       
   336 }
       
   337 /*!
       
   338 Set Real Audio \a mode.
       
   339 */
       
   340 bool MpPlaybackData::setRealAudio( bool mode )
       
   341 {
       
   342     TX_ENTRY
       
   343     bool change = false;
       
   344     if (mRealAudio != mode) {
       
   345         mRealAudio = mode;
       
   346         change = true;
       
   347     }
       
   348     TX_EXIT
       
   349     return change;
       
   350 }
       
   351 
       
   352 /*!
       
   353  Returns the mode of Real Audio.
       
   354 */
       
   355 bool MpPlaybackData::realAudio()
       
   356 {
       
   357     return mRealAudio;
   285 }
   358 }
   286 
   359 
   287 /*!
   360 /*!
   288  Sets the playback \a state.
   361  Sets the playback \a state.
   289 */
   362 */
   312 void MpPlaybackData::commitPlaybackInfo()
   385 void MpPlaybackData::commitPlaybackInfo()
   313 {
   386 {
   314     TX_ENTRY
   387     TX_ENTRY
   315     emit playbackInfoChanged();
   388     emit playbackInfoChanged();
   316     TX_EXIT
   389     TX_EXIT
       
   390 }
       
   391 
       
   392 /*!
       
   393  Resets the data, currently called when source is removed.
       
   394 */
       
   395 void MpPlaybackData::resetData()
       
   396 {
       
   397     mDuration = 0;
       
   398     mPosition = 0;
       
   399     mTitle = QString();
       
   400     mAlbum = QString();
       
   401     mArtist = QString();
       
   402     mUri = QString();
       
   403     mAlbumId = 0;
       
   404     mId = 0;
       
   405     mAlbumArt = HbIcon();
       
   406     mRealAudio = false;
       
   407     
       
   408     emit durationChanged();
       
   409     emit positionChanged();
       
   410     emit albumArtReady();
       
   411     emit playbackInfoChanged();
   317 }
   412 }
   318 
   413 
   319 /*!
   414 /*!
   320  Slot to handle the album art thumb.
   415  Slot to handle the album art thumb.
   321 */
   416 */
   343         else {
   438         else {
   344             qicon = QIcon( pixmap );
   439             qicon = QIcon( pixmap );
   345         }
   440         }
   346         
   441         
   347         
   442         
   348         mAlbumArt = new HbIcon(qicon);
   443         mAlbumArt = HbIcon(qicon);
   349         
   444         
   350         emit albumArtReady();
   445         emit albumArtReady();
   351     }
   446     }
   352     else {
   447     else {
   353         mReqId = KUndefined;
   448         mReqId = KUndefined;