diff -r 000000000000 -r c9bc50fca66e usbmgmt/usbmgrtest/t_charging_emu/src/tpropertybatterycharging.cpp --- /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 //Publish & Subscribe header + +#include +#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 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); + + } + + +