--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mtpdataproviders/mtpplaybackcontroldp/src/cmtpplaybackproperty.cpp Tue Aug 31 16:03:15 2010 +0300
@@ -0,0 +1,265 @@
+// Copyright (c) 2010 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:
+//
+
+/**
+ @file
+ @internalComponent
+*/
+
+#include "cmtpplaybackmap.h"
+#include "cmtpplaybackproperty.h"
+#include "mtpplaybackcontrolpanic.h"
+
+// Class constants.
+__FLOG_STMT(_LIT8(KComponent,"MTPPlaybackProperty");)
+
+const TInt32 KMTPDefaultPlaybackRate = 0;
+
+const TUint32 KMTPMaxPlaybackVolume = 100;
+const TUint32 KMTPMinPlaybackVolume = 0;
+const TUint32 KMTPDefaultPlaybackVolume = 40;
+const TUint32 KMTPCurrentPlaybackVolume = 40;
+const TUint32 KMTPVolumeStep = 1;
+
+const TUint32 KMTPDefaultPlaybackObject = 0;
+const TUint32 KMTPDefaultPlaybackIndex = 0;
+const TUint32 KMTPDefaultPlaybackPosition = 0;
+
+/**
+Two-phase constructor.
+@param aPlugin The data provider plugin
+@return a pointer to the created playback checker object
+*/
+CMTPPlaybackProperty* CMTPPlaybackProperty::NewL()
+ {
+ CMTPPlaybackProperty* self = new (ELeave) CMTPPlaybackProperty();
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+/**
+Destructor.
+*/
+CMTPPlaybackProperty::~CMTPPlaybackProperty()
+ {
+ __FLOG(_L8("~CMTPPlaybackProperty - Entry"));
+ delete iPlaybackVolumeData;
+ __FLOG(_L8("~CMTPPlaybackProperty - Exit"));
+ __FLOG_CLOSE;
+ }
+
+/**
+Constructor.
+*/
+CMTPPlaybackProperty::CMTPPlaybackProperty()
+ {
+ }
+
+/**
+Second-phase constructor.
+*/
+void CMTPPlaybackProperty::ConstructL()
+ {
+ __FLOG_OPEN(KMTPSubsystem, KComponent);
+ __FLOG(_L8("ConstructL - Entry"));
+ __FLOG(_L8("ConstructL - Exit"));
+ }
+
+void CMTPPlaybackProperty::GetDefaultPropertyValueL(TMTPDevicePropertyCode aProp, TInt32& aValue)
+ {
+ __FLOG(_L8("GetDefaultPropertyValueL - Entry"));
+
+ __ASSERT_ALWAYS((aProp == EMTPDevicePropCodePlaybackRate), User::Leave(KErrArgument));
+ aValue = KMTPDefaultPlaybackRate;
+
+ __FLOG(_L8("GetDefaultPropertyValueL - Exit"));
+ }
+
+void CMTPPlaybackProperty::GetDefaultPropertyValueL(TMTPDevicePropertyCode aProp, TUint32& aValue)
+ {
+ __FLOG(_L8("GetDefaultPropertyValueL - Entry"));
+ switch(aProp)
+ {
+ case EMTPDevicePropCodeVolume:
+ {
+ if(iPlaybackVolumeData != NULL)
+ {
+ aValue = iPlaybackVolumeData->DefaultVolume();
+ }
+ else
+ {
+ aValue = KMTPDefaultPlaybackVolume;
+ }
+ }
+ break;
+
+ case EMTPDevicePropCodePlaybackObject:
+ {
+ aValue = KMTPDefaultPlaybackObject;
+ }
+ break;
+
+ case EMTPDevicePropCodePlaybackContainerIndex:
+ {
+ aValue = KMTPDefaultPlaybackIndex;
+ }
+ break;
+
+ case EMTPDevicePropCodePlaybackPosition:
+ {
+ aValue = KMTPDefaultPlaybackPosition;
+ }
+ break;
+
+ default:
+ User::Leave(KErrArgument);
+ }
+ __FLOG(_L8("GetDefaultPropertyValueL - Exit"));
+ }
+
+void CMTPPlaybackProperty::GetDefaultVolSet(TMTPPbDataVolume& aValue)
+ {
+ if(iPlaybackVolumeData == NULL)
+ {
+ aValue.SetVolume(KMTPMaxPlaybackVolume,
+ KMTPMinPlaybackVolume,
+ KMTPDefaultPlaybackVolume,
+ KMTPCurrentPlaybackVolume,
+ KMTPVolumeStep);
+ }
+ else
+ {
+ aValue = (*iPlaybackVolumeData);
+ }
+ }
+
+void CMTPPlaybackProperty::SetDefaultVolSetL(const TMTPPbDataVolume& aValue)
+ {
+ if(iPlaybackVolumeData == NULL)
+ {
+ iPlaybackVolumeData = new (ELeave) TMTPPbDataVolume(aValue);
+ }
+ else
+ {
+ (*iPlaybackVolumeData) = aValue;
+ }
+ }
+
+void CMTPPlaybackProperty::GetDefaultPropertyValueL(TMTPPbCtrlData& aValue)
+ {
+ __FLOG(_L8("GetDefaultPropertyValueL - Entry"));
+ __ASSERT_DEBUG((aValue.iOptCode == EMTPOpCodeResetDevicePropValue), Panic(EMTPPBArgumentErr));
+
+ switch(aValue.iDevPropCode)
+ {
+ case EMTPDevicePropCodePlaybackRate:
+ {
+ TInt32 val;
+ GetDefaultPropertyValueL(aValue.iDevPropCode, val);
+ aValue.iPropValInt32.Set(val);
+ }
+ break;
+
+ case EMTPDevicePropCodeVolume:
+ case EMTPDevicePropCodePlaybackObject:
+ case EMTPDevicePropCodePlaybackContainerIndex:
+ case EMTPDevicePropCodePlaybackPosition:
+ {
+ TUint32 val;
+ GetDefaultPropertyValueL(aValue.iDevPropCode, val);
+ aValue.iPropValUint32.Set(val);
+ }
+ break;
+
+ default:
+ User::Leave(KErrArgument);
+ }
+ __FLOG(_L8("GetDefaultPropertyValueL - Exit"));
+ }
+
+TBool CMTPPlaybackProperty::IsDefaultPropertyValueL(const TMTPPbCtrlData& aValue) const
+ {
+ __FLOG(_L8("EqualToDefaultPropertyValueL - Entry"));
+
+ TInt result(EFalse);
+
+ switch(aValue.iDevPropCode)
+ {
+ case EMTPDevicePropCodePlaybackRate:
+ {
+ if(aValue.iPropValInt32.Value() == KMTPDefaultPlaybackRate)
+ {
+ result = ETrue;
+ }
+ }
+ break;
+
+ case EMTPDevicePropCodeVolume:
+ {
+ if(iPlaybackVolumeData == NULL)
+ {
+ if(aValue.iPropValUint32.Value() == KMTPDefaultPlaybackVolume)
+ {
+ result = ETrue;
+ }
+ }
+ else
+ {
+ if(aValue.iPropValUint32.Value() == iPlaybackVolumeData->DefaultVolume())
+ {
+ result = ETrue;
+ }
+ }
+ }
+ break;
+
+ case EMTPDevicePropCodePlaybackObject:
+ {
+ if(aValue.iPropValUint32.Value() == KMTPDefaultPlaybackObject)
+ {
+ result = ETrue;
+ }
+ }
+ break;
+
+ case EMTPDevicePropCodePlaybackContainerIndex:
+ {
+ if(aValue.iPropValUint32.Value() == KMTPDefaultPlaybackIndex)
+ {
+ result = ETrue;
+ }
+ }
+ break;
+
+ case EMTPDevicePropCodePlaybackPosition:
+ {
+ if(aValue.iPropValUint32.Value() == KMTPDefaultPlaybackPosition)
+ {
+ result = ETrue;
+ }
+ }
+ break;
+
+ default:
+ User::Leave(KErrArgument);
+ }
+
+ __FLOG(_L8("EqualToDefaultPropertyValueL - Exit"));
+
+ return result;
+ }
+