--- a/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsalbums.cpp Thu Apr 01 23:22:15 2010 +0300
+++ b/videocollection/mpxmyvideoscollection/src/vcxmyvideosmdsalbums.cpp Thu Apr 01 23:32:44 2010 +0300
@@ -156,7 +156,34 @@
iMdsDb.iCmdQueue->ExecuteCmdL( cmd ); //owneship moves
CleanupStack::Pop( cmd );
}
-
+
+// ---------------------------------------------------------------------------
+// CVcxMyVideosMdsAlbums::GetAlbumL
+// ---------------------------------------------------------------------------
+//
+CMPXMedia* CVcxMyVideosMdsAlbums::GetAlbumL( TUint32 aId )
+ {
+ CMdEObject* object = iMdsDb.ObjectL( aId, EFalse /* is not video, is album */);
+
+ if ( !object )
+ {
+ MPX_DEBUG2("CVcxMyVideosMdsAlbums:: mds id %d not found from mds", aId);
+ return NULL;
+ }
+
+ CleanupStack::PushL( object ); // 1->
+
+ CMPXMedia* album = CMPXMedia::NewL( );
+ CleanupStack::PushL( album ); // 2->
+
+ Object2MediaL( *object, *album );
+
+ CleanupStack::Pop( album ); // <-2
+ CleanupStack::PopAndDestroy( object ); // <-1
+
+ return album;
+ }
+
// ---------------------------------------------------------------------------
// CVcxMyVideosMdsAlbums::DoGetAlbumsL
// ---------------------------------------------------------------------------
@@ -338,7 +365,7 @@
// ID
TMPXItemId mpxId;
mpxId.iId1 = aObject.Id();
- mpxId.iId2 = 2;
+ mpxId.iId2 = KVcxMvcMediaTypeAlbum;
aAlbum.SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId, mpxId );
// TITLE
@@ -777,6 +804,58 @@
}
// ---------------------------------------------------------------------------
+// CVcxMyVideosMdsAlbums::SetAlbumL
+// ---------------------------------------------------------------------------
+//
+void CVcxMyVideosMdsAlbums::SetAlbumL( CMPXMedia& aVideo )
+ {
+ MPX_DEBUG1("CVcxMyVideosMdsDb::SetAlbumL() start");
+
+ if ( !iMdsDb.iMdsSession )
+ {
+ MPX_DEBUG2("CVcxMyVideosMdsAlbums:: no mds session(%d), leaving", iMdsDb.iMdsError);
+ User::Leave( iMdsDb.iMdsError );
+ }
+
+ TMPXItemId mpxId = TVcxMyVideosCollectionUtil::IdL( aVideo );
+
+ MPX_DEBUG2("CVcxMyVideosMdsAlbums::SetAlbumL updating object %d ", mpxId.iId1);
+
+ CMdEObject* object =
+ iMdsDb.iMdsSession->OpenObjectL( mpxId.iId1, *iAlbumObjectDef );
+ if ( !object )
+ {
+ // No object with this ID was found!
+ MPX_DEBUG1("CVcxMyVideosMdsAlbums::SetAlbumL no object found");
+ User::Leave( KErrNotFound );
+ }
+ else
+ {
+ MPX_DEBUG1("CVcxMyVideosMdsAlbums::SetAlbumL object found");
+
+ if ( object->OpenForModifications() )
+ {
+ CleanupStack::PushL( object ); // 1->
+
+ Media2ObjectL( aVideo, *object );
+
+ iMdsDb.iMdsSession->CommitObjectL( *object );
+
+ CleanupStack::PopAndDestroy( object );
+ }
+ else
+ {
+ // Object is already locked!
+ MPX_DEBUG1("CVcxMyVideosMdsAlbums::SetAlbumL object was locked!");
+ delete object;
+ User::Leave( KErrInUse );
+ }
+ }
+
+ MPX_DEBUG1("CVcxMyVideosMdsDb::SetAlbumL() exit");
+ }
+
+// ---------------------------------------------------------------------------
// CVcxMyVideosMdsAlbums::RemoveAlbumsL
// ---------------------------------------------------------------------------
//