mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidersetobjectpropvalue.cpp
changeset 25 d881023c13eb
parent 0 a2952bb97e68
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidersetobjectpropvalue.cpp	Fri Apr 16 15:28:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidersetobjectpropvalue.cpp	Mon May 03 12:58:40 2010 +0300
@@ -16,6 +16,8 @@
 */
 
 
+#include <mtp/cmtptypearray.h>
+
 #include "cabstractmediamtpdataprovidersetobjectpropvalue.h"
 #include "abstractmediamtpdataproviderconst.h"
 #include "mmmtpdplogger.h"
@@ -49,7 +51,7 @@
 //
 void CAbstractMediaMtpDataProviderSetObjectPropValue::ConstructL()
     {
-
+    // Do nothing
     }
 
 // -----------------------------------------------------------------------------
@@ -60,9 +62,9 @@
 CAbstractMediaMtpDataProviderSetObjectPropValue::CAbstractMediaMtpDataProviderSetObjectPropValue( MMTPDataProviderFramework& aFramework,
     MMTPConnection& aConnection,
     MMmMtpDpConfig& aDpConfig ) :
-    CSetObjectPropValue( aFramework, aConnection, aDpConfig )
+        CSetObjectPropValue( aFramework, aConnection, aDpConfig )
     {
-
+    // Do nothing
     }
 
 // -----------------------------------------------------------------------------
@@ -72,7 +74,7 @@
 //
 CAbstractMediaMtpDataProviderSetObjectPropValue::~CAbstractMediaMtpDataProviderSetObjectPropValue()
     {
-
+    // Do nothing
     }
 
 // -----------------------------------------------------------------------------
@@ -81,9 +83,22 @@
 // invalid propcode
 // -----------------------------------------------------------------------------
 //
-TBool CAbstractMediaMtpDataProviderSetObjectPropValue::IsSpecificPropCodeReadOnly( TUint16 /*aPropCode*/ ) const
+TBool CAbstractMediaMtpDataProviderSetObjectPropValue::IsSpecificPropCodeReadOnly( TUint16 aPropCode ) const
     {
-    return EFalse;
+    TBool ret = EFalse;
+    switch ( aPropCode )
+        {
+        case EMTPObjectPropCodeRepresentativeSampleFormat:
+        case EMTPObjectPropCodeRepresentativeSampleSize:
+        case EMTPObjectPropCodeRepresentativeSampleHeight:
+        case EMTPObjectPropCodeRepresentativeSampleWidth:
+            ret = ETrue;
+            break;
+        default:
+            ret = EFalse;
+            break;
+        }
+    return ret;
     }
 
 // -----------------------------------------------------------------------------
@@ -92,10 +107,24 @@
 // invalid propcode
 // -----------------------------------------------------------------------------
 //
-void CAbstractMediaMtpDataProviderSetObjectPropValue::ReceiveDataSpecificObjectPropertyL( TUint16 /*aPropCode*/ )
+void CAbstractMediaMtpDataProviderSetObjectPropValue::ReceiveDataSpecificObjectPropertyL( TUint16 aPropCode )
     {
-    PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderSetObjectPropValue::ReceiveDataSpecificObjectPropertyL leave with KErrNotSupported" ) );
-    User::Leave( KErrNotSupported );
+    PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderSetObjectPropValue::ReceiveDataSpecificObjectPropertyL" ) );
+    if ( aPropCode == EMTPObjectPropCodeRepresentativeSampleData )
+        {
+        delete iMTPTypeArray;
+        iMTPTypeArray = NULL;
+
+        iMTPTypeArray = CMTPTypeArray::NewL( EMTPTypeAUINT8 );
+        ReceiveDataL( *iMTPTypeArray );
+        }
+    else
+        {
+        PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderSetObjectPropValue::ReceiveDataSpecificObjectPropertyL leave with KErrNotSupported" ) );
+        // Do nothing now.
+        // May need add implementation here for further extension.
+        User::Leave( KErrNotSupported );
+        }
     }
 
 // -----------------------------------------------------------------------------
@@ -104,12 +133,26 @@
 // invalid propcode
 // -----------------------------------------------------------------------------
 //
-TMTPResponseCode CAbstractMediaMtpDataProviderSetObjectPropValue::ServiceSpecificObjectPropertyL( TUint16 /*aPropCode*/ )
+TMTPResponseCode CAbstractMediaMtpDataProviderSetObjectPropValue::ServiceSpecificObjectPropertyL( TUint16 aPropCode )
     {
-    PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderSetObjectPropValue::ServiceSpecificObjectPropertyL leave with KErrNotSupported" ) );
-    User::Leave( KErrNotSupported );
+    PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderSetObjectPropValue::ServiceSpecificObjectPropertyL" ) );
+    TMTPResponseCode responseCode = EMTPRespCodeOK;
 
-    return EMTPRespCodeOK;
+    if ( aPropCode == EMTPObjectPropCodeRepresentativeSampleData )
+        {
+        responseCode = ServiceMetaDataToWrapperL( aPropCode,
+            *iMTPTypeArray,
+            *iObjectInfo );
+        }
+    else
+        {
+        PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderSetObjectPropValue::ServiceSpecificObjectPropertyL leave with KErrNotSupported" ) );
+        // Do nothing now.
+        // May need add implementation here for further extension.
+        User::Leave( KErrNotSupported );
+        }
+    PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderSetObjectPropValue::ServiceSpecificObjectPropertyL" ) );
+    return responseCode;
     }
 
 // end of file