--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataprovidergetobjectpropdesc.cpp Fri Apr 16 15:28:14 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,716 +0,0 @@
-/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description: Implement the operation: GetObjectPropDesc
-*
-*/
-
-#include <mtp/cmtptypeobjectpropdesc.h>
-#include <mtp/mtpprotocolconstants.h>
-#include <mtp/cmtptypestring.h>
-
-#include "cmediamtpdataprovidergetobjectpropdesc.h"
-#include "mediamtpdataproviderconst.h"
-#include "mmmtpdplogger.h"
-#include "mmmtpdpdefs.h"
-
-const TUint32 KMTPDescriptionLen = 0x00000200;
-
-// -----------------------------------------------------------------------------
-// CMediaMtpDataProviderGetObjectPropDesc::NewL
-// Two-phase construction method
-// -----------------------------------------------------------------------------
-//
-MMmRequestProcessor* CMediaMtpDataProviderGetObjectPropDesc::NewL( MMTPDataProviderFramework& aFramework,
- MMTPConnection& aConnection,
- MMmMtpDpConfig& aDpConfig )
- {
- CMediaMtpDataProviderGetObjectPropDesc* self =
- new ( ELeave ) CMediaMtpDataProviderGetObjectPropDesc( aFramework,
- aConnection,
- aDpConfig );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CMediaMtpDataProviderGetObjectPropDesc::ConstructL
-// Two-phase construction method
-// -----------------------------------------------------------------------------
-//
-void CMediaMtpDataProviderGetObjectPropDesc::ConstructL()
- {
- CGetObjectPropDesc::ConstructL();
- }
-
-// -----------------------------------------------------------------------------
-// CMediaMtpDataProviderGetObjectPropDesc::~CMediaMtpDataProviderGetObjectPropDesc
-// Destructor
-// -----------------------------------------------------------------------------
-//
-CMediaMtpDataProviderGetObjectPropDesc::~CMediaMtpDataProviderGetObjectPropDesc()
- {
-
- }
-
-// -----------------------------------------------------------------------------
-// CMediaMtpDataProviderGetObjectPropDesc::CMediaMtpDataProviderGetObjectPropDesc
-// Standard c++ constructor
-// -----------------------------------------------------------------------------
-//
-CMediaMtpDataProviderGetObjectPropDesc::CMediaMtpDataProviderGetObjectPropDesc( MMTPDataProviderFramework& aFramework,
- MMTPConnection& aConnection,
- MMmMtpDpConfig& aDpConfig ) :
- CGetObjectPropDesc( aFramework, aConnection, aDpConfig )
- {
-
- }
-
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceSpecificObjectPropertyL(TUint16 aPropCode)
- {
- switch (aPropCode)
- {
- // format specific
- case EMTPObjectPropCodeArtist: // Artist
- case EMTPObjectPropCodeTrack: // Track
- case EMTPObjectPropCodeGenre: // Genre
- case EMTPObjectPropCodeUseCount: // Use Count
- case EMTPObjectPropCodeAlbumName: // Album Name
- case EMTPObjectPropCodeAlbumArtist: // Album Artist
- case EMTPObjectPropCodeOriginalReleaseDate: // Original Release Date
- case EMTPObjectPropCodeComposer: // Composer
- case EMTPObjectPropCodeParentalRating:
- iObjectProperty = CMTPTypeObjectPropDesc::NewL( aPropCode );
- break;
-
- // Number of Channels (m)
- case EMTPObjectPropCodeNumberOfChannels:
- ServiceNumberOfChannelsL();
- break;
-
- // Sample Rate (HAS MINIMUM AND MAX VALUE)
- case EMTPObjectPropCodeSampleRate:
- ServiceCodeSampleRateL();
- break;
-
- // Audio Wave Codec (MAY REQUIRED LIMITED NUMBER TO BE PRODUCED)
- case EMTPObjectPropCodeAudioWAVECodec:
- ServiceCodeWaveCodecL();
- break;
-
- // Audio Bit Rate (MAY REQUIRED LIMITED NUMBER TO BE PRODUCED)
- case EMTPObjectPropCodeAudioBitRate:
- ServiceCodeAudioBitrateL();
- break;
-
- // Duration
- case EMTPObjectPropCodeDuration:
- ServiceDurationL();
- break;
-
- // Description
- case EMTPObjectPropCodeDescription:
- ServiceDescriptionL();
- break;
-
- case EMTPObjectPropCodeWidth:
- ServiceRangeFormDescriptionL( aPropCode,
- EMTPMinWidth,
- EMTPMaxWidth,
- EMTPStepWidth );
- break;
-
- case EMTPObjectPropCodeHeight:
- ServiceRangeFormDescriptionL( aPropCode,
- EMTPMinHeight,
- EMTPMaxHeight,
- EMTPStepHeight );
- break;
-
- case EMTPObjectPropCodeScanType:
- ServiceScanTypeDescriptionL();
- break;
-
- case EMTPObjectPropCodeVideoFourCCCodec:
- ServiceVideoFourCCCodecL();
- break;
-
- case EMTPObjectPropCodeVideoBitRate:
- ServiceRangeFormDescriptionL( aPropCode,
- EMTPWMVMinBitrate,
- EMTPWMVMaxBitrate,
- EMTPVideoBitrateStep,
- ETrue );
- break;
-
- case EMTPObjectPropCodeFramesPerThousandSeconds:
- ServiceRangeFormDescriptionL( aPropCode,
- EMTPMinFramesPerThousandSeconds,
- EMTPMaxFramesPerThousandSeconds,
- EMTPStepFramesPerThousandSeconds );
- break;
-
- case EMTPObjectPropCodeKeyFrameDistance:
- ServiceRangeFormDescriptionL( aPropCode,
- EMTPMinKeyFrameDistance,
- EMTPMaxKeyFrameDistance,
- EMTPStepKeyFrameDistance );
- break;
-
- case EMTPObjectPropCodeEncodingProfile:
- ServiceEncodingProfileDescriptionL();
- break;
-
- case EMTPObjectPropCodeDRMStatus:
- ServiceDRMStatusL();
- break;
-
- case EMTPExtObjectPropCodeOmaDrmStatus:
- ServiceOMADRMStatusL();
- break;
-
- default:
- User::Leave( KErrNotSupported );
- break;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CMediaMtpDataProviderGetObjectPropDesc::ServiceDescriptionL()
-// Create Description and create new ObjectPropDesc
-// -----------------------------------------------------------------------------
-//
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceDescriptionL()
- {
- TMTPTypeUint32 uint32Data( KMTPDescriptionLen );
-
- // Althrough iObjectProperty is released in ServiceL(),
- // release it here maybe a more safer way
- if ( iObjectProperty != NULL )
- {
- delete iObjectProperty;
- iObjectProperty = NULL;
- }
-
- iObjectProperty = CMTPTypeObjectPropDesc::NewL( EMTPObjectPropCodeDescription,
- CMTPTypeObjectPropDesc::ELongStringForm,
- &uint32Data );
- }
-
-// -----------------------------------------------------------------------------
-// CMediaMtpDataProviderGetObjectPropDesc::ServiceNumberOfChannelsL
-// Create list of possible Channel numbers and create new ObjectPropDesc
-// -----------------------------------------------------------------------------
-//
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceNumberOfChannelsL()
- {
- PRINT( _L( "MM MTP => CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeSampleRateL" ) );
-
- CMTPTypeObjectPropDescEnumerationForm* expectedForm = CMTPTypeObjectPropDescEnumerationForm::NewL( EMTPTypeUINT16 );
- CleanupStack::PushL( expectedForm ); // + expectedForm
-
- TUint16 values[] =
- {
- EMTPChannelMono,
- EMTPChannelStereo
- };
-
- TInt numValues = sizeof ( values ) / sizeof ( values[0] ) ;
-
- for ( TInt i = 0; i < numValues; i++ )
- {
- TMTPTypeUint16 data( values[i] );
- expectedForm->AppendSupportedValueL( data );
- }
-
- // Althrough iObjectProperty is released in ServiceL(),
- // release it here maybe a more safer way :)
- if ( iObjectProperty != NULL )
- {
- delete iObjectProperty;
- iObjectProperty = NULL;
- }
-
- iObjectProperty = CMTPTypeObjectPropDesc::NewL( EMTPObjectPropCodeNumberOfChannels, *expectedForm );
- CleanupStack::PopAndDestroy( expectedForm ); // - expectedForm
-
- PRINT( _L( "MM MTP <= CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeSampleRateL" ) );
- }
-
-// -----------------------------------------------------------------------------
-// CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeSampleRateL
-// Create list of possible Sample rate list and create new ObjectPropDesc
-// -----------------------------------------------------------------------------
-//
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeSampleRateL()
- {
- // if some format does not support the sample rate,
- // here still need an instance of CMTPTypeObjectPropDesc.
- PRINT( _L( "MM MTP => CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeSampleRateL" ) );
-
- CMTPTypeObjectPropDescEnumerationForm* expectedForm =
- CMTPTypeObjectPropDescEnumerationForm::NewLC( EMTPTypeUINT32 ); // + expectedForm
-
- TUint32 values[] =
- {
- EMTPSampleRate8K ,
- EMTPSampleRate16K,
- EMTPSampleRate22_05K,
- EMTPSampleRate24K,
- EMTPSampleRate32K,
- EMTPSampleRate44_1K,
- EMTPSampleRate48K
- };
-
- TInt numValues = sizeof( values ) / sizeof( values[0] ) ;
-
- for ( TInt i = 0; i < numValues; i++ )
- {
- TMTPTypeUint32 data( values[i] );
- expectedForm->AppendSupportedValueL( data );
- }
-
- // Althrough iObjectProperty is released in ServiceL(),
- // release it here maybe a more safer way :)
- if ( iObjectProperty != NULL )
- {
- delete iObjectProperty;
- iObjectProperty = NULL;
- }
-
- iObjectProperty = CMTPTypeObjectPropDesc::NewL( EMTPObjectPropCodeSampleRate, CMTPTypeObjectPropDesc::EEnumerationForm, expectedForm );
- CleanupStack::PopAndDestroy( expectedForm ); // - expectedForm
-
- PRINT( _L( "MM MTP <= CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeSampleRateL" ) );
- }
-
-// -----------------------------------------------------------------------------
-// CMediaMtpDataProviderGetObjectPropDesc::ServiceWaveCodecL
-// Create list of possible bitrate types and create new ObjectPropDesc
-// -----------------------------------------------------------------------------
-//
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeWaveCodecL()
- {
- PRINT1( _L( "MM MTP => CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeWaveCodecL, format = 0x%x" ), iFormatCode );
-
- CMTPTypeObjectPropDescEnumerationForm* form =
- CMTPTypeObjectPropDescEnumerationForm::NewLC( EMTPTypeUINT32 ); // + form
-
- switch (iFormatCode)
- {
- case EMTPFormatCodeWMA:
- case EMTPFormatCodeWMV:
- case EMTPFormatCodeASF:
- {
- PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeWaveCodecL format = 0x%x" ), iFormatCode );
- TMTPTypeUint32 data( EMTPAudioWAVECodecWMA );
- form->AppendSupportedValueL( data );
- }
- break;
-
- case EMTPFormatCodeMP3:
- {
- PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeWaveCodecL format = 0x%x" ), iFormatCode );
- TMTPTypeUint32 data( EMTPAudioWAVECodecMP3 );
- form->AppendSupportedValueL( data );
- }
- break;
-
- case EMTPFormatCodeMP4Container:
- case EMTPFormatCode3GPContainer:
- case EMTPFormatCodeAAC:
- {
- PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeWaveCodecL format = 0x%x" ), iFormatCode );
- TMTPTypeUint32 data( EMTPAudioWAVECodecAAC );
- form->AppendSupportedValueL( data );
- }
- break;
-
- case EMTPFormatCodeWAV:
- {
- PRINT1( _L("MM MTP <> CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeWaveCodecL format = 0x%x"), iFormatCode );
- TMTPTypeUint32 data( EMTPAudioWAVECodecPCM );
- form->AppendSupportedValueL( data );
- }
- break;
-
- default:
- {
- PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeWaveCodecL leave because of invalid formatcode = 0x%x" ), iFormatCode );
- User::Leave(KErrNotSupported);
- }
- break;
- }
-
- // Althrough iObjectProperty is released in ServiceL(),
- // release it here maybe a more safer way :)
- if ( iObjectProperty != NULL )
- {
- delete iObjectProperty;
- iObjectProperty = NULL;
- }
-
- iObjectProperty = CMTPTypeObjectPropDesc::NewL( EMTPObjectPropCodeAudioWAVECodec, *form );
- CleanupStack::PopAndDestroy( form ); // - form
-
- PRINT( _L( "MM MTP <= CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeWaveCodecL" ) );
- }
-
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeAudioBitrateL()
- {
- PRINT1( _L("MM MTP => CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeAudioBitrate, format = 0x%x"), iFormatCode );
-
- switch (iFormatCode)
- {
- case EMTPFormatCodeWMA:
- case EMTPFormatCodeWMV:
- case EMTPFormatCodeASF:
- {
- ServiceRangeFormDescriptionL( EMTPObjectPropCodeAudioBitRate,
- EMTPWMAMinBitrate,
- EMTPWMAMaxBitrate,
- EMTPAudioBitrateStep );
- }
- break;
-
- case EMTPFormatCodeMP3:
- {
- ServiceRangeFormDescriptionL( EMTPObjectPropCodeAudioBitRate,
- EMTPMP3MinBitrate,
- EMTPMP3MaxBitrate,
- EMTPAudioBitrateStep );
- }
- break;
-
- case EMTPFormatCodeAAC:
- {
- ServiceRangeFormDescriptionL( EMTPObjectPropCodeAudioBitRate,
- EMTPAACMinBitrate,
- EMTPAACMaxBitrate,
- EMTPAudioBitrateStep );
- }
- break;
-
- case EMTPFormatCodeWAV:
- {
- ServiceRangeFormDescriptionL( EMTPObjectPropCodeAudioBitRate,
- EMTPPCMMinBitrate,
- EMTPPCMMaxBitrate,
- EMTPAudioBitrateStep );
- }
- break;
-
- case EMTPFormatCodeMP4Container:
- case EMTPFormatCode3GPContainer:
- {
- ServiceRangeFormDescriptionL( EMTPObjectPropCodeAudioBitRate,
- EMTPAACPlusMinBitrate,
- EMTPAACPlusMaxBitrate,
- EMTPAudioBitrateStep );
- }
- break;
-
- default:
- {
- PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeAudioBitRateL leave because of invalid formatcode = 0x%x" ), iFormatCode );
- User::Leave( KErrNotSupported );
- }
- }
-
- PRINT( _L( "MM MTP <= CMediaMtpDataProviderGetObjectPropDesc::ServiceCodeAudioBitRateL" ) );
- }
-
-// -----------------------------------------------------------------------------
-// CGetObjectPropDesc::ServiceDurationL()
-// Create list of Duration types and create new ObjectPropDesc
-// -----------------------------------------------------------------------------
-//
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceDurationL()
- {
-
- PRINT( _L( "MM MTP => CMediaMtpDataProviderGetObjectPropDesc::ServiceDurationL" ) );
-
- CMTPTypeObjectPropDescRangeForm* form = CMTPTypeObjectPropDescRangeForm::NewLC( EMTPTypeUINT32 ); // + form
-
- // Set expected values
- form->SetUint32L( CMTPTypeObjectPropDescRangeForm::EMinimumValue, EMTPMinDuration );
- form->SetUint32L( CMTPTypeObjectPropDescRangeForm::EMaximumValue, EMTPMaxDuration );
- form->SetUint32L( CMTPTypeObjectPropDescRangeForm::EStepSize, EMTPDurationStep );
-
- // Althrough iObjectProperty is released in ServiceL(),
- // release it here maybe a more safer way
- if ( iObjectProperty != NULL )
- {
- delete iObjectProperty;
- iObjectProperty = NULL;
- }
-
- iObjectProperty = CMTPTypeObjectPropDesc::NewL( EMTPObjectPropCodeDuration, *form );
- CleanupStack::PopAndDestroy( form ); // - form
-
- PRINT( _L( "MM MTP <= CMediaMtpDataProviderGetObjectPropDesc::ServiceDurationL" ) );
- }
-
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceScanTypeDescriptionL()
- {
- CMTPTypeObjectPropDescEnumerationForm* expectedForm =
- CMTPTypeObjectPropDescEnumerationForm::NewL( EMTPTypeUINT16 );
- CleanupStack::PushL( expectedForm ); // + expectedForm
-
- TUint16 values[] =
- {
- EMTPScanTypeProgressive
- };
-
- TInt numValues = sizeof ( values ) / sizeof ( values[0] ) ;
- for ( TInt i = 0; i < numValues; i++ )
- {
- TMTPTypeUint16 data( values[i] );
- expectedForm->AppendSupportedValueL( data );
- }
-
- // Althrough iObjectProperty is released in ServiceL(),
- // release it here maybe a more safer way :)
- if ( iObjectProperty != NULL )
- {
- delete iObjectProperty;
- iObjectProperty = NULL;
- }
-
- iObjectProperty = CMTPTypeObjectPropDesc::NewL( EMTPObjectPropCodeScanType, *expectedForm );
- CleanupStack::PopAndDestroy( expectedForm ); // - expectedForm
- }
-
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceVideoFourCCCodecL()
- {
- switch( iFormatCode )
- {
- case EMTPFormatCodeWMV:
- case EMTPFormatCodeASF:
- {
- CMTPTypeObjectPropDescEnumerationForm* expectedForm =
- CMTPTypeObjectPropDescEnumerationForm::NewL( EMTPTypeUINT32 );
- CleanupStack::PushL( expectedForm ); // + expectedForm
-
- TUint32 values[] =
- {
- EMTPVideoFourCCCodecWMV3
- };
-
- TInt numValues = sizeof ( values ) / sizeof ( values[0] ) ;
- for ( TInt i = 0; i < numValues; i++ )
- {
- TMTPTypeUint32 data( values[i] );
- expectedForm->AppendSupportedValueL( data );
- }
-
- // comment out asf fourcc for mp2a and mp4a, not sure if this is needed
- /*if ( iFormatCode == EMTPFormatCodeASF )
- {
- TUint32 additionalValues[] =
- {
- EMTPVideoFourCCCodecMP2A,
- EMTPVideoFourCCCodecMP4A
- };
-
- for ( TInt j = 0; i < sizeof(additionalValues) / sizeof(additionalValues[0]) )
- {
- TMTPTypeUint32 data( additionalValues[i] );
- expectedForm->AppendSupportedValueL( data );
- }
- }*/
-
- // Althrough iObjectProperty is released in ServiceL(),
- // release it here maybe a more safer way :)
- if ( iObjectProperty != NULL )
- {
- delete iObjectProperty;
- iObjectProperty = NULL;
- }
-
- iObjectProperty = CMTPTypeObjectPropDesc::NewL( EMTPObjectPropCodeVideoFourCCCodec, *expectedForm );
- CleanupStack::PopAndDestroy( expectedForm ); // - expectedForm
- }
- break;
-
- default:
- {
- PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropDesc::ServiceVideoFourCCCodecL leave because of invalid formatcode = 0x%x" ), iFormatCode );
- User::Leave( KErrNotSupported );
- }
- break;
- }
- }
-
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceVideoBitrateL()
- {
- switch( iFormatCode )
- {
- case EMTPFormatCodeWMV:
- case EMTPFormatCodeASF:
- {
- ServiceRangeFormDescriptionL( EMTPObjectPropCodeAudioBitRate,
- EMTPWMVMinBitrate,
- EMTPWMVMaxBitrate,
- EMTPVideoBitrateStep,
- ETrue );
- }
- break;
-
- default:
- {
- PRINT1( _L( "MM MTP <> CMediaMtpDataProviderGetObjectPropDesc::ServiceVideoBitrateL leave because of invalid formatcode = 0x%x" ), iFormatCode );
- User::Leave( KErrNotSupported );
- }
- break;
- }
- }
-
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceEncodingProfileDescriptionL()
- {
- CMTPTypeObjectPropDescEnumerationForm* expectedForm =
- CMTPTypeObjectPropDescEnumerationForm::NewLC( EMTPTypeString ); // + expectedForm
-
- CMTPTypeString* string = CMTPTypeString::NewLC( _L( "SP@LL" ) );
- expectedForm->AppendSupportedValueL( *string );
- string->SetL(_L("SP@ML"));
- expectedForm->AppendSupportedValueL( *string );
- string->SetL(_L("MP@LL"));
- expectedForm->AppendSupportedValueL( *string );
-
- CMTPTypeObjectPropDesc::TPropertyInfo propertyInfo;
- propertyInfo.iDataType = EMTPTypeString;
- propertyInfo.iFormFlag = CMTPTypeObjectPropDesc::EEnumerationForm;
- propertyInfo.iGetSet = CMTPTypeObjectPropDesc::EReadWrite;
- iObjectProperty = CMTPTypeObjectPropDesc::NewL( EMTPObjectPropCodeEncodingProfile,
- propertyInfo,
- expectedForm );
-
- CleanupStack::PopAndDestroy( string );
- CleanupStack::PopAndDestroy( expectedForm ); // - expectedForm
- }
-
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceRangeFormDescriptionL( TUint16 aPropCode,
- TUint32 aMinValue,
- TUint32 aMaxValue,
- TUint32 aStepValue,
- TBool aIsReadOnly )
- {
- CMTPTypeObjectPropDescRangeForm* form =
- CMTPTypeObjectPropDescRangeForm::NewLC( EMTPTypeUINT32 ); // + form
-
- // Set expected values
- form->SetUint32L( CMTPTypeObjectPropDescRangeForm::EMinimumValue, aMinValue );
- form->SetUint32L( CMTPTypeObjectPropDescRangeForm::EMaximumValue, aMaxValue );
- form->SetUint32L( CMTPTypeObjectPropDescRangeForm::EStepSize, aStepValue );
-
- // Althrough iObjectProperty is released in ServiceL(),
- // release it here maybe a more safer way
- if ( iObjectProperty != NULL )
- {
- delete iObjectProperty;
- iObjectProperty = NULL;
- }
-
- CMTPTypeObjectPropDesc::TPropertyInfo propertyInfo;
- propertyInfo.iDataType = EMTPTypeUINT32;
- propertyInfo.iFormFlag = CMTPTypeObjectPropDesc::ERangeForm;
- propertyInfo.iGetSet = !aIsReadOnly;
- iObjectProperty = CMTPTypeObjectPropDesc::NewL( aPropCode, propertyInfo, form );
-
- CleanupStack::PopAndDestroy( form ); // - form
- }
-
-// -----------------------------------------------------------------------------
-// CGetObjectPropDesc::ServiceDRMStatusL
-// Create list of possible DRM status and create new ObjectPropDesc
-// -----------------------------------------------------------------------------
-//
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceDRMStatusL()
- {
- CMTPTypeObjectPropDescEnumerationForm* expectedForm =
- CMTPTypeObjectPropDescEnumerationForm::NewL( EMTPTypeUINT16 );
- CleanupStack::PushL( expectedForm ); // + expectedForm
-
- TUint16 values[] =
- {
- EMTPDrmNoProtection,
- EMTPDrmProtection,
- EMTPDrmReserveForMTP,
- EMTPDrmVenderExtension
- };
-
- TInt numValues = sizeof ( values ) / sizeof ( values[0] ) ;
- for ( TInt i = 0; i < numValues; i++ )
- {
- TMTPTypeUint16 data( values[i] );
- expectedForm->AppendSupportedValueL( data );
- }
-
- // Althrough iObjectProperty is released in ServiceL(),
- // release it here maybe a more safer way :)
- if ( iObjectProperty != NULL )
- {
- delete iObjectProperty;
- iObjectProperty = NULL;
- }
-
- iObjectProperty = CMTPTypeObjectPropDesc::NewL( EMTPObjectPropCodeDRMStatus, *expectedForm );
- CleanupStack::PopAndDestroy( expectedForm ); // - expectedForm
- }
-
-// -----------------------------------------------------------------------------
-// CMediaMtpDataProviderGetObjectPropDesc::ServiceOMADRMStatusL
-// Create list of possible OMA DRM status and create new ObjectPropDesc
-// -----------------------------------------------------------------------------
-//
-void CMediaMtpDataProviderGetObjectPropDesc::ServiceOMADRMStatusL()
- {
- CMTPTypeObjectPropDescEnumerationForm* expectedForm =
- CMTPTypeObjectPropDescEnumerationForm::NewL( EMTPTypeUINT8 );
- CleanupStack::PushL( expectedForm ); // + expectedForm
-
- TUint8 values[] =
- {
- EMTPOMADrmNoProtection,
- EMTPOMADrmProtection,
- };
-
- TInt numValues = sizeof ( values ) / sizeof ( values[0] ) ;
- for ( TInt i = 0; i < numValues; i++ )
- {
- TMTPTypeUint8 data( values[i] );
- expectedForm->AppendSupportedValueL( data );
- }
-
- // Althrough iObjectProperty is released in ServiceL(),
- // release it here maybe a more safer way :)
- if ( iObjectProperty != NULL )
- {
- delete iObjectProperty;
- iObjectProperty = NULL;
- }
-
- CMTPTypeObjectPropDesc::TPropertyInfo propertyInfo;
- propertyInfo.iDataType = EMTPTypeUINT8;
- propertyInfo.iFormFlag = CMTPTypeObjectPropDesc::EEnumerationForm;
-
- iObjectProperty = CMTPTypeObjectPropDesc::NewL( EMTPExtObjectPropCodeOmaDrmStatus,
- propertyInfo,
- expectedForm );
- CleanupStack::PopAndDestroy( expectedForm ); // - expectedForm
- }
-
-// end of file