videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsalbums.cpp
changeset 35 3738fe97f027
parent 34 bbb98528c666
child 36 8aed59de29f9
equal deleted inserted replaced
34:bbb98528c666 35:3738fe97f027
   154     cmd->iClient    = &aClient;
   154     cmd->iClient    = &aClient;
   155     cmd->iAlbumList = aAlbumList;
   155     cmd->iAlbumList = aAlbumList;
   156     iMdsDb.iCmdQueue->ExecuteCmdL( cmd ); //owneship moves
   156     iMdsDb.iCmdQueue->ExecuteCmdL( cmd ); //owneship moves
   157     CleanupStack::Pop( cmd );
   157     CleanupStack::Pop( cmd );
   158     }
   158     }
   159     
   159 
       
   160 // ---------------------------------------------------------------------------
       
   161 // CVcxMyVideosMdsAlbums::GetAlbumL
       
   162 // ---------------------------------------------------------------------------
       
   163 //
       
   164 CMPXMedia* CVcxMyVideosMdsAlbums::GetAlbumL( TUint32 aId )
       
   165     {
       
   166     CMdEObject* object = iMdsDb.ObjectL( aId, EFalse /* is not video, is album */);
       
   167 
       
   168     if ( !object )
       
   169         {
       
   170         MPX_DEBUG2("CVcxMyVideosMdsAlbums:: mds id %d not found from mds", aId);
       
   171         return NULL;
       
   172         }
       
   173         
       
   174     CleanupStack::PushL( object ); // 1->
       
   175 
       
   176     CMPXMedia* album = CMPXMedia::NewL( );
       
   177     CleanupStack::PushL( album ); // 2->
       
   178 
       
   179     Object2MediaL( *object, *album );
       
   180 
       
   181     CleanupStack::Pop( album );            // <-2
       
   182     CleanupStack::PopAndDestroy( object ); // <-1
       
   183 
       
   184     return album;
       
   185     }
       
   186 
   160 // ---------------------------------------------------------------------------
   187 // ---------------------------------------------------------------------------
   161 // CVcxMyVideosMdsAlbums::DoGetAlbumsL
   188 // CVcxMyVideosMdsAlbums::DoGetAlbumsL
   162 // ---------------------------------------------------------------------------
   189 // ---------------------------------------------------------------------------
   163 //
   190 //
   164 void CVcxMyVideosMdsAlbums::DoGetAlbumsL( CMPXMedia* aAlbumList,
   191 void CVcxMyVideosMdsAlbums::DoGetAlbumsL( CMPXMedia* aAlbumList,
   336     CMdEProperty* property = NULL;
   363     CMdEProperty* property = NULL;
   337 
   364 
   338     // ID
   365     // ID
   339     TMPXItemId mpxId;
   366     TMPXItemId mpxId;
   340     mpxId.iId1 = aObject.Id();
   367     mpxId.iId1 = aObject.Id();
   341     mpxId.iId2 = 2;
   368     mpxId.iId2 = KVcxMvcMediaTypeAlbum;
   342     aAlbum.SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, mpxId );
   369     aAlbum.SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, mpxId );
   343     
   370     
   344     // TITLE
   371     // TITLE
   345     if ( aObject.Property( *iMdsDb.iTitlePropertyDef, property, 0 ) != KErrNotFound )
   372     if ( aObject.Property( *iMdsDb.iTitlePropertyDef, property, 0 ) != KErrNotFound )
   346         {
   373         {
   775     
   802     
   776     MPX_DEBUG1("CVcxMyVideosMdsAlbums::AddAlbumL() exit");
   803     MPX_DEBUG1("CVcxMyVideosMdsAlbums::AddAlbumL() exit");
   777     }
   804     }
   778 
   805 
   779 // ---------------------------------------------------------------------------
   806 // ---------------------------------------------------------------------------
       
   807 // CVcxMyVideosMdsAlbums::SetAlbumL
       
   808 // ---------------------------------------------------------------------------
       
   809 //
       
   810 void CVcxMyVideosMdsAlbums::SetAlbumL( CMPXMedia& aVideo )
       
   811     {
       
   812     MPX_DEBUG1("CVcxMyVideosMdsDb::SetAlbumL() start");
       
   813 
       
   814     if ( !iMdsDb.iMdsSession )
       
   815         {
       
   816         MPX_DEBUG2("CVcxMyVideosMdsAlbums:: no mds session(%d), leaving", iMdsDb.iMdsError);
       
   817         User::Leave( iMdsDb.iMdsError );
       
   818         }
       
   819 
       
   820     TMPXItemId mpxId = TVcxMyVideosCollectionUtil::IdL( aVideo );
       
   821 
       
   822     MPX_DEBUG2("CVcxMyVideosMdsAlbums::SetAlbumL updating object %d ", mpxId.iId1);
       
   823     
       
   824     CMdEObject* object =
       
   825             iMdsDb.iMdsSession->OpenObjectL( mpxId.iId1, *iAlbumObjectDef );
       
   826     if ( !object )
       
   827         {
       
   828         // No object with this ID was found!
       
   829         MPX_DEBUG1("CVcxMyVideosMdsAlbums::SetAlbumL no object found");
       
   830         User::Leave( KErrNotFound );
       
   831         }
       
   832     else
       
   833         {
       
   834         MPX_DEBUG1("CVcxMyVideosMdsAlbums::SetAlbumL object found");
       
   835         
       
   836         if ( object->OpenForModifications() )
       
   837             {
       
   838             CleanupStack::PushL( object ); // 1->
       
   839             
       
   840             Media2ObjectL( aVideo, *object );
       
   841             
       
   842             iMdsDb.iMdsSession->CommitObjectL( *object );
       
   843 
       
   844             CleanupStack::PopAndDestroy( object );
       
   845             }
       
   846         else
       
   847             {
       
   848             // Object is already locked!
       
   849             MPX_DEBUG1("CVcxMyVideosMdsAlbums::SetAlbumL object was locked!");
       
   850             delete object;
       
   851             User::Leave( KErrInUse );
       
   852             }
       
   853         }
       
   854 
       
   855     MPX_DEBUG1("CVcxMyVideosMdsDb::SetAlbumL() exit");
       
   856     }
       
   857 
       
   858 // ---------------------------------------------------------------------------
   780 // CVcxMyVideosMdsAlbums::RemoveAlbumsL
   859 // CVcxMyVideosMdsAlbums::RemoveAlbumsL
   781 // ---------------------------------------------------------------------------
   860 // ---------------------------------------------------------------------------
   782 //
   861 //
   783 void CVcxMyVideosMdsAlbums::RemoveAlbumsL( CMPXMedia* aMpxCmd, MVcxMyVideosMdsAlbumsObserver& aClient )
   862 void CVcxMyVideosMdsAlbums::RemoveAlbumsL( CMPXMedia* aMpxCmd, MVcxMyVideosMdsAlbumsObserver& aClient )
   784     {
   863     {