--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/usbmgmt/usbmgrtest/t_charging_emu/src/tpropertybatterycharging.cpp Tue Feb 02 02:02:59 2010 +0200
@@ -0,0 +1,163 @@
+/*
+* Copyright (c) 2008-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:
+*
+*/
+
+#include "tpropertybatterycharging.h"
+
+#include <e32property.h> //Publish & Subscribe header
+
+#include <centralrepository.h>
+#include "usbbatterycharging.h"
+#include"tbatterychargingdefinitions.h"
+
+
+LOCAL_C void ConsoleMainL();
+
+GLDEF_C TInt E32Main()
+ {
+ __UHEAP_MARK;
+ CTrapCleanup* cleanup=CTrapCleanup::New(); // get clean-up stack
+
+ TRAPD(error, ConsoleMainL() );
+
+ __ASSERT_ALWAYS(!error,User::Panic(_L("TPropertyBatteryCharging"), error));
+ delete cleanup; // destroy clean-up stack
+ __UHEAP_MARKEND;
+ return KErrNone;
+ }
+
+void ConsoleMainL()
+ {
+ CActiveScheduler* myScheduler = new(ELeave) CActiveScheduler;
+ CleanupStack::PushL(myScheduler);
+ CActiveScheduler::Install(myScheduler);
+
+ CPropertyBatteryCharging* propertyBatCharg = CPropertyBatteryCharging::NewL();
+ CleanupStack::PushL(propertyBatCharg);
+
+ RProcess::Rendezvous(KErrNone);
+
+ CActiveScheduler::Start();
+
+ CleanupStack::PopAndDestroy(2, myScheduler);
+ }
+
+CPropertyBatteryCharging* CPropertyBatteryCharging::NewL()
+/**
+ * Constructs a CDummyUsbDevice object.
+ *
+ * @return A new CDummyUsbDevice object
+ */
+ {
+ CPropertyBatteryCharging* r = new (ELeave) CPropertyBatteryCharging();
+ CleanupStack::PushL(r);
+ r->ConstructL();
+ CleanupStack::Pop();
+ return r;
+ }
+
+CPropertyBatteryCharging::~CPropertyBatteryCharging()
+/**
+ * Destructor.
+ */
+ {
+
+ delete iActiveWriteRepository;
+ delete iActiveReadChargingCurrent;
+ delete iRepository;
+ iProperty.Close();
+
+ }
+
+CPropertyBatteryCharging::CPropertyBatteryCharging()
+/**
+ * Constructor.
+ */
+ {
+
+ }
+
+void CPropertyBatteryCharging::ConstructL()
+/**
+ * Performs 2nd phase construction of the USB device.
+ */
+ {
+
+ iActiveWriteRepository = CActivePropertyWriteRepository::NewL(*this);
+ iActiveReadChargingCurrent = CActivePropertyReadChargingCurrent::NewL(*this);
+
+ iRepository = CRepository::NewL(KUsbBatteryChargingCentralRepositoryUid);
+
+ DefinePropertyL(KBattChargWriteRepositoryUid, KBattChargWriteRepositoryAckKey,RProperty::EInt);
+ DefinePropertyL(KBattChargReadPropertyCurrentUid,KBattChargReadCurrentChargingAckKey,RProperty::EByteArray);
+
+ iActiveWriteRepository->Request();
+ iActiveReadChargingCurrent->Request();
+
+ }
+
+void CPropertyBatteryCharging::DefinePropertyL(const TInt32 aCategory, TUint aKey,RProperty::TType eType)
+ {
+
+
+ _LIT_SECURITY_POLICY_PASS(KAlwaysPass);
+
+ TInt err = iProperty.Define(TUid::Uid(aCategory),
+ aKey,
+ eType,
+ KAlwaysPass,
+ KAlwaysPass
+ );
+ if ( err != KErrAlreadyExists )
+ {
+ User::LeaveIfError(err);
+ }
+ }
+
+
+void CPropertyBatteryCharging::MpsoPropertyReadChanged()
+ {
+
+ TInt current;
+ TInt err = RProperty::Get(KPropertyUidUsbBatteryChargingCategory,
+ KPropertyUidUsbBatteryChargingChargingCurrent, current);
+
+ TDataFromPropBattChargToTBatteryCharging toSend;
+ toSend.iCurrent=current;
+ toSend.iError=err;
+
+ TPckgBuf<TDataFromPropBattChargToTBatteryCharging> tmp(toSend);
+
+ err = iProperty.Set(TUid::Uid(KBattChargReadPropertyCurrentUid),
+ KBattChargReadCurrentChargingAckKey,
+ tmp);
+ ASSERT(!err);
+
+ }
+
+void CPropertyBatteryCharging::MpsoPropertyWriteChanged(const TInt aValue)
+ {
+ TInt err = iRepository->Set(KUsbBatteryChargingKeyEnabledUserSetting, aValue);
+
+ TInt error = iProperty.Set(TUid::Uid(KBattChargWriteRepositoryUid),
+ KBattChargWriteRepositoryAckKey,
+ err);
+ ASSERT(!error);
+
+ }
+
+
+