diff -r d240f0a77280 -r 780c925249c1 mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidersetobjectpropvalue.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidersetobjectpropvalue.cpp Mon Mar 15 12:42:31 2010 +0200 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidersetobjectpropvalue.cpp Wed Mar 31 22:26:09 2010 +0300 @@ -16,6 +16,8 @@ */ +#include + #include "cabstractmediamtpdataprovidersetobjectpropvalue.h" #include "abstractmediamtpdataproviderconst.h" #include "mmmtpdplogger.h" @@ -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,14 +107,24 @@ // invalid propcode // ----------------------------------------------------------------------------- // -void CAbstractMediaMtpDataProviderSetObjectPropValue::ReceiveDataSpecificObjectPropertyL( TUint16 /*aPropCode*/ ) +void CAbstractMediaMtpDataProviderSetObjectPropValue::ReceiveDataSpecificObjectPropertyL( TUint16 aPropCode ) { - PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderSetObjectPropValue::ReceiveDataSpecificObjectPropertyL leave with KErrNotSupported" ) ); + PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderSetObjectPropValue::ReceiveDataSpecificObjectPropertyL" ) ); + if ( aPropCode == EMTPObjectPropCodeRepresentativeSampleData ) + { + delete iMTPTypeArray; + iMTPTypeArray = NULL; - // Do nothing now. - // May need add implementation here for further extension. - - User::Leave( KErrNotSupported ); + 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 ); + } } // ----------------------------------------------------------------------------- @@ -108,15 +133,26 @@ // invalid propcode // ----------------------------------------------------------------------------- // -TMTPResponseCode CAbstractMediaMtpDataProviderSetObjectPropValue::ServiceSpecificObjectPropertyL( TUint16 /*aPropCode*/ ) +TMTPResponseCode CAbstractMediaMtpDataProviderSetObjectPropValue::ServiceSpecificObjectPropertyL( TUint16 aPropCode ) { - PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderSetObjectPropValue::ServiceSpecificObjectPropertyL leave with KErrNotSupported" ) ); + PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderSetObjectPropValue::ServiceSpecificObjectPropertyL" ) ); + TMTPResponseCode responseCode = EMTPRespCodeOK; - // Do nothing now. - // May need add implementation here for further extension. - User::Leave( KErrNotSupported ); - - 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