diff -r 000000000000 -r b497e44ab2fc dcmofw/dcmoserver/src/dcmogenericcontrol.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dcmofw/dcmoserver/src/dcmogenericcontrol.cpp Thu Dec 17 09:07:52 2009 +0200 @@ -0,0 +1,262 @@ +/* +* 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: DCMO GenericControl implementation +* +*/ + +#include +#include +#include "dcmogenericcontrol.h" +#include "dcmoserver.h" +#include "dcmoconst.h" +#include "dcmodebug.h" + +const TInt KBufferSize = 30; +// ---------------------------------------------------------------------------------------- +// CDCMOGenericControl::CDCMOGenericControl() +// ---------------------------------------------------------------------------------------- + +CDCMOGenericControl::CDCMOGenericControl() + { + RDEBUG("CDCMOGenericControl::CDCMOGenericControl"); + } + +// ---------------------------------------------------------------------------------------- +// CDCMOGenericControl::~CDCMOGenericControl() +// ---------------------------------------------------------------------------------------- +CDCMOGenericControl::~CDCMOGenericControl() +{ + RDEBUG("CDCMOGenericControl::CDCMOGenericControl Destructor"); +} + +// ---------------------------------------------------------------------------------------- +// CDCMOGenericControl::~CDCMOGenericControl() +// ---------------------------------------------------------------------------------------- +TInt CDCMOGenericControl::GetGroupValueL(TDes& aStrValue) +{ + RDEBUG("CDCMOGenericControl::GetGroupValueL(): begin"); + TInt ret(-1); + if(aStrValue.Match(KDCMOHardware()) == KErrNone ) + ret = 0; + else if( aStrValue.Match(KDCMOIO()) == KErrNone ) + ret = 1; + else if( aStrValue.Match(KDCMOConnectivity()) == KErrNone ) + ret = 2; + else if( aStrValue.Match(KDCMOSoftware()) == KErrNone ) + ret = 3; + else if( aStrValue.Match(KDCMOService()) == KErrNone ) + ret = 4; + + RDEBUG("CDCMOGenericControl::GetGroupValueL(): end"); + return ret; +} + +// ---------------------------------------------------------------------------------------- +// CDCMOGenericControl::GetIntAttributeL(TInt aCategotyNumber, TDCMONode aId, TInt& aValue) +// ---------------------------------------------------------------------------------------- +TDCMOStatus CDCMOGenericControl::GetIntAttributeL(TInt aCategotyNumber, TDCMONode aId, TInt& aValue) +{ + RDEBUG("CDCMOGenericControl::GetIntAttributeL(): begin"); + TDCMOStatus err(EDcmoFail); + TInt reterr(-1); + switch(aId) + { + case EGroup: + { + RDEBUG("CDCMOGenericControl::GetIntAttributeL(): In Group"); + TBuf group; + CRepository * centrep = CRepository::NewLC( KCRUidDCMOServer ); + TUint32 centrepKey = aCategotyNumber + KDCMOGroupNumber; + reterr = centrep->Get( centrepKey, group ); + CleanupStack::PopAndDestroy( centrep ); + aValue = GetGroupValueL(group); + } + break; + + case EAttached: + { + RDEBUG("CDCMOGenericControl::GetIntAttributeL(): In Attached"); + aValue = 1; // Attached + reterr = KErrNone; + } + break; + case EEnabled: + { + RDEBUG("CDCMOGenericControl::GetIntAttributeL(): In Enabled"); + CRepository * centrep = CRepository::NewLC( KCRUidDCMOServer ); + TUint32 centrepKey = aCategotyNumber + KDCMOMainKeyNumber; + TInt centrepMainKey, centrepActualKey; + reterr = centrep->Get( centrepKey, centrepMainKey ); + centrepKey = aCategotyNumber + KDCMOActualKeyNumber; + reterr = centrep->Get( centrepKey, centrepActualKey ); + TUid uidValue = {centrepMainKey}; + CRepository* centrep1 = CRepository::NewLC( uidValue ); + reterr = centrep1->Get( centrepActualKey, aValue ); + if( !aCategotyNumber ) // for Camera + { + if(aValue == 0) + { + aValue = 1; + } + else if(aValue == 1) + { + aValue = 0; + } + } + CleanupStack::PopAndDestroy( centrep1 ); + CleanupStack::PopAndDestroy( centrep ); + } + break; + + case EDenyUserEnable: + { + RDEBUG("CDCMOGenericControl::GetIntAttributeL(): In DenyUserEnable"); + aValue = 1; // DenyUserEnable + reterr = KErrNone; + } + break; + case ENotifyUser: + { + RDEBUG("CDCMOGenericControl::GetIntAttributeL(): In NotifyUser"); + aValue = 1; // NotifyUser + reterr = KErrNone; + } + break; + default : + { + RDEBUG("CDCMOGenericControl::GetIntAttributeL(): Not Found"); + err = EDcmoNotFound; + } + } + if(reterr == KErrNone) + err = EDcmoSuccess; + RDEBUG("CDCMOGenericControl::GetIntAttributeL(): end"); + return err; +} + +// ---------------------------------------------------------------------------------------- +// CDCMOGenericControl::GetStrAttributeL(TInt aCategotyNumber, TDCMONode aId, TDes& aStrValue) +// ---------------------------------------------------------------------------------------- +TDCMOStatus CDCMOGenericControl::GetStrAttributeL(TInt aCategotyNumber, TDCMONode aId, TDes& aStrValue) +{ + RDEBUG("CDCMOGenericControl::GetStrAttributeL(): begin"); + TDCMOStatus err(EDcmoFail); + TInt reterr(-1); + switch(aId) + { + case EProperty: + { + RDEBUG("CDCMOGenericControl::GetStrAttributeL(): In Property"); + CRepository * centrep = CRepository::NewLC( KCRUidDCMOServer ); + TUint32 centrepKey = aCategotyNumber + KDCMOPropertyNumber; + reterr = centrep->Get( centrepKey, aStrValue ); + CleanupStack::PopAndDestroy( centrep ); + } + break; + + case EDescription: + { + RDEBUG("CDCMOGenericControl::GetStrAttributeL(): In Description"); + CRepository * centrep = CRepository::NewLC( KCRUidDCMOServer ); + TUint32 centrepKey = aCategotyNumber + KDCMODescriptionNumber; + reterr = centrep->Get( centrepKey, aStrValue ); + CleanupStack::PopAndDestroy( centrep ); + } + break; + default : + { + RDEBUG("CDCMOGenericControl::GetStrAttributeL(): Not Found"); + err = EDcmoNotFound; + } + + } + if(reterr == KErrNone) + err = EDcmoSuccess; + + RDEBUG("CDCMOGenericControl::GetStrAttributeL(): end"); + return err; +} + +// ---------------------------------------------------------------------------------------- +// CDCMOGenericControl::SetIntAttributeL(TInt aCategotyNumber, TDCMONode aId, TInt aValue) +// ---------------------------------------------------------------------------------------- +TDCMOStatus CDCMOGenericControl::SetIntAttributeL(TInt aCategotyNumber, TDCMONode aId, TInt aValue) +{ + RDEBUG("CDCMOGenericControl::SetIntAttributeL(): begin"); + TDCMOStatus err(EDcmoFail); + TInt reterr(-1); + switch(aId) + { + case EDenyUserEnable: + { + RDEBUG("CDCMOGenericControl::SetIntAttributeL(): In DenyUserEnable"); + err = EDcmoNotSupported; + } + break; + case ENotifyUser: + { + RDEBUG("CDCMOGenericControl::SetIntAttributeL(): In NotifyUser"); + err = EDcmoNotSupported; + } + break; + case EEnable: + { + RDEBUG("CDCMOGenericControl::SetIntAttributeL(): In Enable"); + if((aValue == 0)|| (aValue == 1)) + { + CRepository * centrep = CRepository::NewLC( KCRUidDCMOServer ); + TUint32 centrepKey = aCategotyNumber + KDCMOMainKeyNumber; + TInt centrepMainKey, centrepActualKey; + reterr = centrep->Get( centrepKey, centrepMainKey ); + centrepKey = aCategotyNumber + KDCMOActualKeyNumber; + reterr = centrep->Get( centrepKey, centrepActualKey ); + TUid uidValue = {centrepMainKey}; + CRepository * centrep1 = CRepository::NewLC( uidValue ); + if( aCategotyNumber == 0) // this is only if the category is Camera + { + if(aValue == 0) + aValue = 1; + else if (aValue == 1) + aValue = 0; + } + reterr = centrep1->Set( centrepActualKey, aValue ); + CleanupStack::PopAndDestroy( centrep1 ); + CleanupStack::PopAndDestroy( centrep ); + } + } + break; + default : + { + RDEBUG("CDCMOGenericControl::SetIntAttributeL(): Not Found"); + err = EDcmoNotFound; + } + } + if(reterr == KErrNone) + err = EDcmoSuccess; + + RDEBUG("CDCMOGenericControl::SetIntAttributeL(): end"); + return err; +} + +// ---------------------------------------------------------------------------------------- +// CDCMOGenericControl::SetStrAttributeL(TInt /*aCategotyNumber*/, TDCMONode /*aId*/, const TDes& /*aStrValue*/) +// ---------------------------------------------------------------------------------------- +TDCMOStatus CDCMOGenericControl::SetStrAttributeL(TInt /*aCategotyNumber*/, TDCMONode /*aId*/, const TDes& /*aStrValue*/) +{ + RDEBUG("CDCMOGenericControl::SetStrAttributeL(): begin"); + TDCMOStatus err(EDcmoFail); + err = EDcmoNotSupported; + RDEBUG("CDCMOGenericControl::SetStrAttributeL(): end"); + return err; +}