mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderpropertysettingutility.cpp
branchRCL_3
changeset 11 780c925249c1
parent 8 bee149131e4b
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderpropertysettingutility.cpp	Mon Mar 15 12:42:31 2010 +0200
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderpropertysettingutility.cpp	Wed Mar 31 22:26:09 2010 +0300
@@ -17,6 +17,8 @@
 
 #include <mtp/cmtptypeobjectproplist.h>
 #include <mtp/mtpprotocolconstants.h>
+#include <mtp/mtpdatatypeconstants.h>
+#include <mtp/cmtptypearray.h>
 
 #include "cabstractmediamtpdataproviderpropertysettingutility.h"
 #include "mmmtpdplogger.h"
@@ -54,17 +56,40 @@
     // Do nothing
     }
 
-TMTPResponseCode CAbstractMediaMtpDataProviderPropertySettingUtility::SetSpecificObjectPropertyL( MMmMtpDpConfig& /*aDpConfig*/,
-    TUint16 /*aPropCode*/,
-    const CMTPObjectMetaData& /*aObject*/,
-    const CMTPTypeObjectPropListElement& /*aElement*/ )
+TMTPResponseCode CAbstractMediaMtpDataProviderPropertySettingUtility::SetSpecificObjectPropertyL( MMmMtpDpConfig& aDpConfig,
+    TUint16 aPropCode,
+    const CMTPObjectMetaData& aObject,
+    const CMTPTypeObjectPropListElement& aElement )
     {
     PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderPropertySettingUtility::SetSpecificObjectPropertyL" ) );
 
-    // Do nothing now.
-    // May need add implementation here for further extension.
+    TMTPResponseCode responseCode = EMTPRespCodeOK;
+
+    switch ( aPropCode )
+        {
+        case EMTPObjectPropCodeRepresentativeSampleData:
+            {
+            CMTPTypeArray*  desData = CMTPTypeArray::NewLC( EMTPTypeAUINT8 );
+            desData->SetByDesL( aElement.ArrayL( CMTPTypeObjectPropListElement::EValue ) );
+            responseCode = SetMetaDataToWrapper( aDpConfig, aPropCode, *desData, aObject );
+            CleanupStack::PopAndDestroy( desData );
+            }
+            break;
 
-    return EMTPRespCodeOK;
+        case EMTPObjectPropCodeRepresentativeSampleFormat:
+        case EMTPObjectPropCodeRepresentativeSampleSize: 
+        case EMTPObjectPropCodeRepresentativeSampleHeight:
+        case EMTPObjectPropCodeRepresentativeSampleWidth:
+            // no place to store, do nothing. reserve here for future usage
+            break;
+
+        default:
+            // Should not happen, property code should have been checked before set to store.
+            User::Leave( KErrNotSupported );
+        }
+
+    PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderPropertySettingUtility::SetSpecificObjectPropertyL" ) );
+    return responseCode;
     }
 
 // end of file