mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovidersetobjectpropvalue.cpp
--- 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